Autor Zpráva
Patrik16
Profil
prosím vás nefunguje my tento formulár viete my prosím povedať prečo?
php script:
<?

$prijemca = "dušansd@gmail.com";



if ($meno && $email && $predmet && $text){

mail("$prijemca", "$predmet", "$meno $priezvisko Vám posiela tento text $text", 
"from: $email");

echo "Váš <b>email bol</b> úspešne <b>odoslaný</b>!";

}

elseif (($meno && $email && $predmet && $text) == false){

echo "Váš <b>email nebol odoslaný</b>. <b>Nezadali ste všetky</b> povinné 
<b>údaje</b>.";

}

?>

html časť:

<form action="data.php" method="post">

<fieldset><legend>Formulár a email</legend> Meno: <input name="meno" type="text"
size="32" /><br />

Priezvisko: <input name="priezvisko" type="text" size="28" /><br />

E-mail: <input name="email" type="text" size="32" /><br />

Predmet: <input name="predmet" type="text" size="30" /><br />


<br>Text:<br>

<textarea name="text" rows="7" cols="30"></textarea><br>

<input name="odoslat" type="submit" value="Odoslať" />

</fieldset></form>


<br>

<font color="red">Všetky údaje sú povinné!</font>
breeta
Profil
A kde přebereš ty proměnné, nebo co ti napíše ten script za chybu?
milous
Profil
Patrik16:
proměnné najdeš v $_POST, ale dej si pozor, že je to uživatelský a neošetřený vstup. $meno atd nemáš nikde definované, takže bys tam měl mít něco jako:
$meno = $_POST['meno']; // znovu připomínám, že takový vstup není bezpečný

Používal bych otevírací značku <?php a pokud už za ukončovací značkou nic nepíšeš (např. nějaké html), tak bych nepoužíval ukončovací značku.
A k té podmínce
if ($meno && $email && $predmet && $text){
 
mail("$prijemca", "$predmet", "$meno $priezvisko Vám posiela tento text $text", 
"from: $email");
 
echo "Váš <b>email bol</b> úspešne <b>odoslaný</b>!";
 
}
 
elseif (($meno && $email && $predmet && $text) == false){

stačí napsat
if  ($meno && $email && $predmet && $text) {
  ..
} else {
  ..
}

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: