Autor | Zpráva | ||
---|---|---|---|
kikinet Profil |
#1 · Zasláno: 15. 5. 2012, 21:52:11
Zdravím,
mohl by se někdo kouknout na php k formuláři? Při kliknutí na tlačítko odeslat mi to vypíše ,,Chyba serveru. Při načítání adresy http://alzbetasklarova.cz/formular.php narazily stránky na chybu. Na této adrese možná právě probíhá údržba stránek, nebo jsou stránky chybně nakonfigurovány." V hlavičce mám navíc ještě js, který jen vyhazuje alert na stejné podmínky jako php. V těle je potom samostatné php a formulář. Bohužel nevím proč mi to nejede. Tady je php <?php $to = "betkasklarova@seznam.cz"; $subject = "Jméno: ".$jmeno."/nE-mail: ".$mail."/n"$zprava; if($odeslano == true) {if(substr_count($mail, '@') >= 2) echo "Zadali jste neplatnou e-mailovou adresu"; elseif ($mail=="" || $jmeno=="" || $zprava=="") echo "Zkontrolujte prosím zda máte vyplněné všechny pole"; else echo "Zpráva byla úspěšně odeslána";} mail($to, $jmeno, $mail, $zprava) ?> <form action="formular.php" method="post" onSubmit="return validate(this)"> <table> <tr><td><b>Jméno:</b></td><td><input type="text" name="<?php echo $jmeno ?>" size="39"></td></tr> <tr><td><b>E-mail:</b></td><td><input type="text" name="<?php echo $mail ?>" size="39" value="@"></td></tr> <tr><td><b>Zpráva:</b></td><td><textarea name="<?php echo $zprava ?>" rows="8" cols="31"></textarea></td></tr> <tr><td></td><td align="right"><input type="submit" name="odeslano" value="Odeslat"></td></tr> </table> </form> Předem děkuju |
||
ShiraNai7 Profil |
#2 · Zasláno: 15. 5. 2012, 22:08:26
kikinet:
1) chyba syntaxe na radku 2: chybi tecka pred $zprava 2) radky 10 az 12: volani mail() by melo byt v poslednim else bloku, jinak se zavola pokazde bez ohledu na jakoukoliv predchozi validaci 3) nespolehat na register_globals |
||
Tori Profil |
#3 · Zasláno: 15. 5. 2012, 22:12:21
4) zalomení řádku se píše \n (máte opačné lomítko)
|
||
ShiraNai7 Profil |
#4 · Zasláno: 15. 5. 2012, 22:15:24
kikinet, Tori:
5) do předmětu emailu nepatří odřádkování (ani by tam nefungovalo) |
||
kikinet Profil |
ShiraNai7, Tori:
Tak jsem to teda opravila, ale dělá to pořád stejnou chybu :/ Pokud si otevřu jen ten samostatný soubor Kontakt.html kde je formulář s action=formular.php tak mi aspoň něco vypíše, ale na webových stránkách ne. Nehledě na to že pokud odešlu formulář (ať už prázdný nebo vyplněný) vypíše mi to: = 2) echo "Zadali jste neplatnou e-mailovou adresu"; elseif ($mail=="" || $jmeno=="" || $zprava=="") echo "Zkontrolujte prosím zda máte vyplněné všechny pole"; else (mail($to, $mess)) echo "Zpráva byla úspěšně odeslána";} ?> a ne samostatné echo. Nevíte co s tím? Opravené php pak vypadá takhle <?php $to = "betkasklarova@seznam.cz"; $mess = "Jméno: ".$jmeno."\nE-mail: ".$mail."\n".$zprava; if($odeslano == true) {if(substr_count($mail, '@') >= 2) echo "Zadali jste neplatnou e-mailovou adresu"; elseif ($mail=="" || $jmeno=="" || $zprava=="") echo "Zkontrolujte prosím zda máte vyplněné všechny pole" else (mail($to, $mess)) echo "Zpráva byla úspěšně odeslána";} ?> |
||
Jan Tvrdík Profil |
kikinet:
<?php $to = "betkasklarova@seznam.cz"; $mess = "Jméno: " . $jmeno . "\n" . "E-mail: " . $mail . "\n" . $zprava; if ($odeslano) { if (substr_count($mail, '@') != 1) echo "Zadali jste neplatnou e-mailovou adresu."; elseif ($mail == "" || $jmeno == "" || $zprava == "") echo "Zkontrolujte prosím zda máte vyplněné všechny pole."; elseif (mail($to, $mess)) echo "Zpráva byla úspěšně odeslána."; else echo "Zprávu se nepodařilo odeslat."; } |
||
kikinet Profil |
#7 · Zasláno: 16. 5. 2012, 16:27:30
Jan Tvrdík:
Ani takhle nic... Stránka kontakt mi normálně naběhne, ale při zaslání formuláře mi vypíše chybu. Nevím jak víc to upravit. Můžu vám tu maximálně dát ještě kompletní obsah toto souboru s PHP, ale nevím o co víc z toho budete chytřejší... :/ Formular.php <html> <head> ... <script></script> ... </head> <body> ... ... <p style="color: white; font-weight: bold"> <?php $to = "betkasklarova@seznam.cz"; $mess = "Jméno: ".$jmeno. "\n" .E-mail: ".$mail. "\n".$zprava; if($odeslano) { if(substr_count($mail, '@') != 1) echo "Zadali jste neplatnou e-mailovou adresu."; elseif ($mail=="" || $jmeno=="" || $zprava=="") echo "Zkontrolujte prosím zda máte vyplněné všechny pole."; elseif (mail($to, $mess)) echo "Zpráva byla úspěšně odeslána."; else echo "Zprávu se nepodařilo odeslat. Zkuste to prosím znovu." } ?> </p> <form action="formular.php" method="post" onSubmit="return validate(this)"> <table> <tr><td><b>Jméno:</b></td><td><input type="text" name="<?php echo $jmeno ?>" size="39"></td></tr> <tr><td><b>E-mail:</b></td><td><input type="text" name="<?php echo $mail ?>" size="39" value="@"></td></tr> <tr><td><b>Zpráva:</b></td><td><textarea name="<?php echo $zprava ?>" rows="8" cols="31"></textarea></td></tr> <tr><td></td><td align="right"><input type="submit" name="odeslano" value="Odeslat"></td></tr> </table> </form> ... ... ... </body> </html> |
||
Tori Profil |
#8 · Zasláno: 16. 5. 2012, 16:45:26 · Upravil/a: Tori
chybí uvozovka
$mess = "Jméno: ".$jmeno. "\n" ."E-mail: ".$mail. "\n".$zprava; A tohle taky není uplně ok: mail($to, $mess) - chybí jeden parametr s předmětem zprávy, mezi těmi dvěma.
|
||
kikinet Profil |
Tori:
Takže přidat $subject a začlenit do mail()? $subject = "WEB - zpráva od: " .$jmeno; (mail($to, $subject, $mess)) Tak žádná změna... Pořád mi to cháže chybu serveru |
||
Časová prodleva: 12 let
|
0