
PHP notice
Dobrý den,
Nejde mi jeden příklad z knízky, mám tento PHP kod(cast):
<?php
$jmeno=trim(htmlspecialchars(strip_tags($_POST['jmeno'])));
$telefon=trim(htmlspecialchars(strip_tags($_POST['telefon'])));
$email=trim(htmlspecialchars(strip_tags($_POST['email'])));
$predmet=trim(htmlspecialchars(strip_tags($_POST['predmet'])));
$zprava=trim(htmlspecialchars(strip_tags($_POST['zprava'])));
A prohlízec píse toto:
Notice: Undefined index: jmeno in C:\xampp\htdocs\kniha\03\kontakt.php on line 2
Notice: Undefined index: telefon in C:\xampp\htdocs\kniha\03\kontakt.php on line 3
Notice: Undefined index: email in C:\xampp\htdocs\kniha\03\kontakt.php on line 4
Notice: Undefined index: predmet in C:\xampp\htdocs\kniha\03\kontakt.php on line 5
Notice: Undefined index: zprava in C:\xampp\htdocs\kniha\03\kontakt.php on line 6
Jak se toho zbavím?
(Pouzivam XAMPP 1.8.2, defaut nastaveni)
Děkuji
A ten HTML formulář vypadá jak?
Zbytek
Musel jsem to trochu oriznout
Nejdriv si ujasni, co chces, aby ten program delal a jak toho dosahnout, z toho ti vyjde vse ostatni. Nauc se, jak funguje PHOP, jak HTML, co je server, co klient, jak to spolu souvisi ...
Kdyz to hodne zjednodusim: PHP se zpracovava na serveru, vysledkem je HTML kod, ktery se zobrazi klientovi v prohlizeci. Klient typicky neco nejak vyplni nebo naklika a odesle to serveru, kde ceka nejaky PHP kod, aby s tim neco udelal a vyplodil HMTL, ktere se zobrazi klientovi atd. atd. ...
PHP kod se zpracovava shora dolu (az na skoky, cykly, volani funkci a jine zajimavosti), pokud je v nem vlozen HTML, tak se proste vypise v tom danem miste.
Takze pokud chces porad dokola volat tu samou stranku, dokud ji uzivatel nevyplni spravne, tak postup bude asi takovyto:
1) podivam se, zda jsem vubec dostal v POST nejaka data, pokud ne (uzivateli zada o stranku poprve, jeste ji nevidel, ja ji generuju), tak jen vypisu vsechny <form> a <input> a tak s defaultnima hodnotama a SKONCIM
2) pokud mam v POST nejaka data, tak prekontroluju, zda jsou vsechna (jmeno, telefon ...), teprve pak muzu pouzivat $_POST["jmeno"] a podobne - pokud vsechna nemam, asi aplikuju bod 1) protoze kdovi jak na tuto stranku prisel
3) zkontroluju, zda $_POST["jmeno"] ma nejakou rozumnou hodnotu (treba aspon neprazdnou), obdobne dalsi polozky - pokud ne, vygeneruju chybovou hlasku a co nejlepe predvyplnim vstupni pole, jdu na 1)
4) pokud je vse v poradku, provedu pozadovanou akci (napriklad poslu email) a zaridim prechod na dalsi/jinou stranku