Autor Zpráva
jujklu
Profil
V textu mám následující formulář:
<form action="odeslat_navrh.php">
Váš mail: <input name="mail_odesilatele"><br>
Předmět: <input name="predmet"><br>
Kód: <textarea name="zprava"></textarea><br>
<input type=submit value="Odeslat">
</form>
v PHP:
<? if ( Mail("muj.mail@poskytovatel.cz", $predmet, $zprava, "From: " . $mail_odesilatele) )
echo "Mail byl odeslán";
else echo "Mail se nepodařilo odeslat"; ?>
E-maily však přicházejí prázdné, i když vyplním pole. Kde je chyba?


Jen dodávám, že po odeslání to vypíše:
Notice: Undefined variable: predmet in /3w/wz.cz/r/retro-web/odeslat_navrh.php on line 1

Notice: Undefined variable: zprava in /3w/wz.cz/r/retro-web/odeslat_navrh.php on line 1

Notice: Undefined variable: mail_odesilatele in /3w/wz.cz/r/retro-web/odeslat_navrh.php on line 1
Mail byl odeslán
lionel messi
Profil
jujklu:

Prečítaj si niečo o regsiter globals.
jujklu
Profil
Ano, již to funguje.
Kód je:
<? if ( Mail("tauchman00@seznam.cz", $_GET['predmet'], $_GET['zprava'], "From: " . $_GET['mail_odesilatele']) )
echo "Mail byl odeslán";
else echo "Mail se nepodařilo odeslat"; ?>
Děkuji za pomoc.
Chro.
Profil
Formulář, z kterého návštěvník může odeslat delší zprávu nejen na e-mail, ale např. i jako příspěvek do diskuze, bych neodesílal metodou GET jako součást URL, ale metodou POST. Délka URL, kterou dokážou prohlížeče zpracovat není nekonečná a pohybuje se do max. 2048 znaků, tuším. Navíc ta URL nevypadá hezky. Metoda GET má smysl kupř. při vyhledávání na webu, kdy adresu lze sdílet napříč internetem nebo uložit do záložek pro pozdější použití, něco jako
www.google.com/search?q=cena+zlata
Takže
<form action="skript.php" method="post">
a ve zpracujícím skriptu bude hodnota z formuláře dostupná v proměnné, příklad $_POST['predmet'].

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: