Hol a hiba a sendmail. Php-ben?
Egy egyszerű formot szeretnék az oldalra tenni, amivel lehet a cégnek üzenni. Viszont azt szeretném, ha nem töltötte ki a mezőket, akkor írja ki, hogy nem töltött ki minden mezőt (esetleg melyiket nem töltötte ki).
Az alábbi kódban mit rontottam el, hogy ezt nem teszi, hanem mindig azt írja ki, hogy elküldte.
<?php
if (isset ($_POST['your_name']) && isset($_POST['email_address']) && isset($_POST['msg_object']) && isset($_POST['comment']))
{
$their_name = $_POST['your_name'];
$their_email = $_POST['email_address'];
$their_object = $_POST['msg_object'];
$their_comment = $_POST['comment'];
$headers =
'From: $their_email' . "\r\n" .
'Reply-To: webmaster@cegnev.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if (mail ('info@cegnev.hu', 'Jelentkezés (web)',
"Név: $their_name
Email: $their_email
Tárgy: $their_object
Hozzászólás: $their_comment" . date('d/m/Y H:i:s'),
$headers))
echo 'A levél elment.';
else
echo 'Hiba történt.';
}
else
echo 'Valamelyik mezőt üresen hagytad';
?>
Előre is Köszönöm.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
Na már valaki megelőzött. :-) Igen szóval az a baj, hogy az isset nem ellenőrzi a tartalmat. De azért az isset-et is használd, csak iktass még be egy strlen-es ellenőrzést a változókra.
második voltam
Köszönöm a válaszokat. Azt értem, hogy mit kellene módosítanom, de a 'hogyan'-nak kicsit gonban vagyok.
Sajnos a php programozásban még kezdő vagyok. S bevallom a fenti kódot is nagy nehezen szedtem össze :). Ezért kérhetnék egy kicsit részletesebb segítséget? Például konkrétan mit változtassak :D
Előre is köszönöm a segítségeteket.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
<?php
$hiba=0;
if (isset ($_POST['your_name']) && isset($_POST['email_address']) && isset($_POST['msg_object']) && isset($_POST['comment']))
{
if(strlen($_POST['your_name'])>0)
$their_name = $_POST['your_name'];
else $hiba=1;
... így a másik három változóra is.
} /*Itt zárd le az isset-es if ciklust*/
else{
echo 'Téves hivatkozás';
exit;
}
/*Új feltételt kezdünk:*/
if($hiba=0)
{
$headers =
'From: $their_email' . "\r\n" .
'Reply-To: webmaster@cegnev.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
if (mail ('info@cegnev.hu', 'Jelentkezés (web)',
"Név: $their_name
Email: $their_email
Tárgy: $their_object
Hozzászólás: $their_comment" . date('d/m/Y H:i:s'),
$headers))
echo 'A levél elment.';
else
echo 'Hiba történt.';
}
else
echo 'Valamelyik mezőt üresen hagytad';
?>
Szerintem így kb jó. Próbáld ki.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!