Autor Zpráva
Mistr
Profil
Přátelé,

ve stránce kont.html mám formulář mající kód:
<form action="formular.php" method="post">

Jméno: <input type="text" name="jmeno" size="20" />
Příjmení: <input type="text" name="prijmeni" size="20" />
Město: <input type="text" name="mesto" size="20" />
Telefon: <input type="text" name="telefon" size="20" maxlength="9" />
E-mail: <input type="text" name="email" size="30" value="@" />
<textarea name="vzkaz" cols="65" rows="6"></textarea>
<input type="submit" value="Odeslat" />
<input type="reset" value="Vymazat" /></form>


Ten se odvolává na PHP skript formular.php mající kód:
<?

$emailadr = "polakovi@centrum.cz"; //e-mailová adresa
$predmet = "Vzkaz z webu Česká móda"; //předmět zprávy

$zprava = "Jméno: ".$jmeno." ";
$zprava .= "Příjmení: ".$prijmeni." ";
$zprava .= "Město: ".$mesto." ";
$zprava .= "Telefon: ".$telefon." ";
$zprava .= "E-mail: ".$email." ";
$zprava .= "Vzkaz: ".$vzkaz;

if (Mail("$emailadr","$predmet","$zprava","From: $email")) {

require "index.html";

}
else
{
echo "Zprávu se nepodařilo odeslat";
}

?>

Když formulář odešlu, e-mailová zpráva skutečně po chvíli přijde. Ovšem hodnoty zadané do formuláře v ní nejsou. Obsahuje jen:
Jméno:

Příjmení:
Město:
Telefon:
E-mail:
Vzkaz:

A protože se v PHP příliš neorientuji, ptám se vás, znalkyň a znalců PHP, poradíte mi, prosím, co s tím?

Děkuji za radu.
Hugo
Profil
Uprav příslušné řádky tímto způsobem

$zprava = "Jméno: ".$_POST['jmeno']."

a mělo by to fungovat.
MzM
Profil
nebo si nastav register_globals on - což je horší varianta k tomu, co píše Hugo.
Hugo
Profil
MzM

A hlavně je to nepoužitelné od PHP6, takže je lepší pracovat s poli $_POST, $_GET, atd.
Mistr
Profil
Hugo
mělo by to fungovat
Ne mělo, ono to funguje! Díky.
Mistr
Profil
Ještě jeden dotaz:
E-mail příchozí z formuláře nemá vyplněnu kolonku Od:, takže nemohu dát normálně v poštovním programu Reply a psát odpověď.

Věděl by si někdo rady i s tímto problémem?

Děkuji za rady.
Hugo
Profil
if (Mail("$emailadr","$predmet","$zprava","From: $email \r\n
Reply-To: $mail"))
Mistr
Profil
Hugo
Nahradil jsem řádek if (Mail("$emailadr","$predmet","$zprava","From: $email")) Tebou navrženým

if (Mail("$emailadr","$predmet","$zprava","From: $email
Reply-To: $mail"))


avšak nefunguje to. Stále přichází e-mail ve tvaru:
Od: 

Komu: polakovi@centrum.cz
Datum: 22.05.2007 00:35
Předmět: Vzkaz z webu Česká móda

Jak zajistit, aby kolonka "Od" obsahovala e-mailovou adresu vyplněnou na webu do formuláře?

Děkuji.
Hugo
Profil
Mistr

Samozřejmě je opět nutné použít $_POST['email']. Nějak jsem na to zapomněl.
Mistr
Profil
Hugo
Tak mi to nějak nefunguje, mohu-li Tě s tím ještě otravovat. Můj skript v současné době vypadá takto:

<?
$emailadr = "polakovi@centrum.cz"; //Vaše e-mailová adresa
$predmet = "Vzkaz z webu Česká móda"; //Předmět zprávy
$odKoho = $_POST['email']; //E-mail ze kterého zpráva přišla

$zprava = "Jméno: ".$_POST['jmeno']." "; //Zde se slučuje text, zadaný ve formuláři
$zprava .= "Příjmení: ".$_POST['prijmeni']." "; //který se vám odešle, bližší popis viz.
$zprava .= "Město: ".$_POST['mesto']." "; //který se vám odešle, bližší popis viz.
$zprava .= "Telefon: ".$_POST['telefon']." "; //který se vám odešle, bližší popis viz.
$zprava .= "E-mail: ".$_POST['email']." "; //který se vám odešle, bližší popis viz.
$zprava .= "Vzkaz: ".$_POST['vzkaz']; //čtěte dále pod kódem



if (Mail("$emailadr","$predmet","$zprava","From: $odKoho
Reply-To: $odKoho")) {

require "index.html";

}
else
{
echo "Zprávu se nepodařilo odeslat";
}

?>

Můžeš se mi na to, prosím, ještě podívat a sdělit mi, kde mám ještě chybku?

Mockrát děkuji za Tvůj čas, který tomu věnuješ, i za Tvoji trpělivost.
Hugo
Profil

if (Mail($emailadr,$predmet,$zprava,"From: $odKoho
\r\n
Reply-To: $odKoho")) {


Takto mi to funguje.
Mistr
Profil
Jojo, funguje to. Jen strašně dlouho trvalo, než ten mail došel. A to mě zmátlo. Jindy to totiž docházelo prakticky hned.

Mockrát díky za rady a obdivuji trpělivost, kterou jsi se mnou měl.
Hugo
Profil
Mistr

Může to zdržovat sendmail, pokud je na serveru velká fronta neodeslaných mailů, nebo se to může zdržet někde na cestě.
krteczek
Profil
Mistrkontroluj jestli ti do odkoho nepíšou bcc, nebo jestli je to platná emailová adresa pomocí reguláru, dají se takhle posílat spamyna spoustu adres
Mistr
Profil
krteczek
A jak na to? Promiň, v PHP jsem celkem laik.
Aleš Janda
Profil
Mistr:

Tady je dobře popsané, jak se výše uvedený skript dá zneužít: http://www.chapadlo.cz/weblog/clanek/kontaktni-formular-jako-nastroj-s pamu
Mistr
Profil
Aleš Janda
Díky za odkaz.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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

0