Autor | Zpráva | ||
---|---|---|---|
Filips Profil |
#1 · Zasláno: 3. 2. 2008, 17:36:34
Ahoj, chtěl bych se zeptat jak docílím toho, že se mi vypíše více chyb najednou. Zatim mám ten formulář začatý. Takže pokud vyplním třeba špatně jméno tak se vyhodí že jsem zadal špatně jméno. Pokud zadám špatně více údajů, tak se vždy vypíše to co je výše (v tomto případě jméno). Pokud to opravím tak se vypíše třeba příjmení atp. Jene já chci, že když dám odeslat, tak se tam vyhodí: Zadali jste špatně: Jméno, Příjmení, Adresu (Třeba). Snad jste mne pochopili :-)
Tady je kód: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <title>Registrační formulář</title> </head> <body> <h1>Registrační formulář</h1> <?php $header = "From: " . $email."\nContent-Type: text/plain; charset=utf-8\n"; if(isset($_POST['jmeno'])) $jmeno = $_POST['jmeno']; if(isset($_POST['prijmeni'])) $prijmeni = $_POST['prijmeni']; if(isset($_POST['prezdivka'])) $prezdivka = $_POST['prezdivka']; if(isset($_POST['narozeni'])) $narozeni = $_POST['narozeni']; if(isset($_POST['ulice'])) $ulice = $_POST['ulice']; if(isset($_POST['mesto'])) $mesto = $_POST['mesto']; if(isset($_POST['pcs'])) $pcs = $_POST['pcs']; if(isset($_POST['tel'])) $tel = $_POST['tel']; if(isset($_POST['email'])) $email = $_POST['email']; if(isset($_POST['icq'])) $icq = $_POST['icq']; if(isset($_POST['spam'])) $spam = $_POST['spam']; if(isset($_POST['zprava'])) $zprava = $_POST['zprava']; if ( $email!="" and $zprava!="" and $spam=="5" ) { if(strlen($icq)==9){//kontrola na delku cisla icq musi byt 9 znaku, ale ne kazdy ma icq takze je to cele blbost kontrolovat to na icq if(strlen($jmeno)>=3){ if(strlen($prijmeni)>=3){ $zprava="Jméno: ".$jmeno."\nPříjmení: ".$prijmeni."\nPřezdívka: ".$prezdivka."\nDtaum narození: ".$narozeni."\n\nUlice: ".$ulice."\nMěsto: ".$mesto."\nPSČ: ".$pcs."\n\nTelefon: ".$tel."\nicq: ".$icq."\n\n".$zprava; if(mail("neco@neco.cz", Registrace, $zprava, $header )){ echo "<p><strong>Registrační formulář byl úspěšně odeslán</strong>.</p>"; } }else{ echo "Příliš krátké příjmení"; } }else{ echo "Špatně zadané jméno"; } }else{ echo "Špatně zadané ICQ!"; } }else{ echo "<p>Váš formulář se <strong>nepodařilo odeslat</strong> pravděpodobně jste nevyplnili všechny údaje, nebo jste zadali špatně odpověď na kontrolní otázku!</p>"; } ?> </body> </html> |
||
Str4wberry Profil |
#2 · Zasláno: 3. 2. 2008, 17:48:52
Odpovídám Filipsovi:
Jednoduše by šlo použít několik podmínek při neúspěšném odeslání: if (odeslano) { // mail } else { if (empty|strlen($_POST['jmeno'])) { echo "<p>Příliš krátké příjmení.</p>"; } if () { } } |
||
Filips Profil |
#3 · Zasláno: 3. 2. 2008, 19:21:27
Str4wberry
Srozumitelné určitě, ale jsem trochu víc lama a snažím se na tomhle naučit :-) Takže prosím ještě o radu. Tu podmínku odeslano vložím kam? To mě moc není jasné ještě. Zruším to if (strlen($icq.... a dám to místo toho nebo jak? Kdybys byl tak hodný a zapasoval mě to do toho mého kódu. Děkuji moc |
||
Str4wberry Profil |
#4 · Zasláno: 3. 2. 2008, 19:40:09
Odpovídám Filipsovi:
„Tu podmínku odeslano vložím kam?“ Zvolil jsem špatný název, což Tě zřejmě zmátlo. Místo toho tam bude kontrola údajů — tedy zřejmě: $email!="" and $zprava!="" and $spam=="5" |
||
Filips Profil |
#5 · Zasláno: 3. 2. 2008, 20:01:14
Str4wberry
Tak bohužel, ale nefunguje mi to... nevím teda jestli jsem tam nedal něco špatně. if ( $email!="" and $zprava!="" and $spam=="5" ) { if(strlen($jmeno)>=3){ $zprava="Jméno: ".$jmeno."\nPříjmení: ".$prijmeni."\nPřezdívka: ".$prezdivka."\nDtaum narození: ".$narozeni."\n\nUlice: ".$ulice."\nMěsto: ".$mesto."\nPSČ: ".$pcs."\n\nTelefon: ".$tel."\nicq: ".$icq."\n\n".$zprava; if(mail("fvymola@seznam.cz", Registrace, $zprava, $header )){ echo "<p><strong>Registrační formulář byl úspěšně odeslán</strong>.</p>"; } else { if (empty|strlen($_POST['jmeno'])) { echo "<p>Příliš krátké příjmení.</p>"; } } } |
||
Str4wberry Profil |
#6 · Zasláno: 3. 2. 2008, 21:04:36
Odpovídám Filipsovi:
„Tak bohužel, ale nefunguje mi to“ To je jasné. Ani to fungovat nemohlo. Já psal pseudokód; ne již hotové řešení. Všimni si řádky: if (empty|strlen($_POST['jmeno'])) |
||
Filips Profil |
#7 · Zasláno: 4. 2. 2008, 21:57:54
No i tak, stejně to nefunguje. A navíc jsem ani nepochopil jak by to mělo fungovat :-)
|
||
Jack Finger Profil |
#8 · Zasláno: 5. 2. 2008, 06:56:01 · Upravil/a: Jack Finger
Filips
příklad: if($_GET['action'] == 'new'){ $error = ''; if(empty($_POST['jmeno'])){ $error .= 'vyplň jméno<br>'; } if(empty($_POST['prijmeni'])){ $error .= 'vyplň příjmení<br>'; } if(empty($error)){ // zpracování ... } } if(!empty($error)){ // zpracování chyb, např: echo ' <font style="color:red;"> Nastaly následující chyby:<br> '.$error.' </font> '; } |
||
Časová prodleva: 16 let
|
0