Probleme isset

Résolu
Blablablabla1 -  
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'essai de sécuriser un peu plus un formulaire de contact que j'ai créé. Seulement je ne comprends pas pourquoi malgré mon isset je parviens toujours à m'envoyer des mails vides avec le formulaire vide... En effet les instructions s'exécutent comme s'il y avait des valeurs :
if (isset($_POST['name']) AND isset($_POST['prenom']) AND isset($_POST['email']))

{

$mail='***@***';


$nombre = $_POST['name'];
$prenom = $_POST['prenom'];
$email = $_POST['email'];
$msg = $_POST['message'];


$message = "
name:".$nombre."
prenom:".$prenom."
email:".$email."
msg:".$msg."";

if (mail($mail,"Formulaire de contact MV",$message));
echo('<img src="http://blabla.fr/img/facteur.png" style="width: 164px; margin-top:180px; margin-bottom: 66px;"> <br/>Le facteur poste le message,<br/> merci ' . htmlspecialchars($_POST['prenom']). '' );
}
else
{
echo 'Oups, vous avez oublié de renseigner votre nom, votre prénom ou votre adresse mail.';
}
?>

Merci d'avance pour votre aide :).

2 réponses

ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
salut,

si tu envoies un formulaire, le isset va te renvoyer true étant donné que le champs existe dans ton formulaire. Il existe, mais il est vide.

En plus de l'isset, tu dois vérifier s'il n'est pas vide.
1
Blablablabla1
 
Salut !

Je me disais bien qu'il devait y avoir un truc dans ce genre ! Et comment fait-on cela svp :) ? Sinon je google mais bon

Merci bien !
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
tout simplement comme ceci :

if (isset($var) && $var != '' && isset($var2) && $var2 != '' && ...
0
Blablablabla1
 
J'essais ça, merci !
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
if(isset($var) && !empty($var))
est plus propre je pense :)
0
Blablablabla1
 
C'est comme ça que j'ai procédé mais en deux lignes distincte ;-), tout fonctionne parfaitement merci beaucoup à tous les deux :)
0
ThEBiShOp Messages postés 8411 Date d'inscription   Statut Contributeur Dernière intervention   1 566
 
oui, d'ailleurs il me semble que grâce à empty() on peut se passer de isset, à tester.
0