| 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: 13 let
|
|||
0