Verif si textarea vide
Posté : 27 janv. 2008, 16:06
Salut a tous !
J'avais un formulaire de mail qui fonctionnait a merveille, maissuite a une attaque de robot spam, je suis en train de reviser ma copie pour le securisé un peu plus...
En fait l'astuve je l'ai trouvé sur ce forum, mettre un textarea hidden, si il est remplit c'est q'un coui... de robot l'a remplit donc envois pas de mail.
Voila, mais le probleme c'est que ds mon code il sort tjs de la boucle maintenant car php trouve que mon textarea n'est pas vide et il est pourtant desesperement vide, meme apres verif avec var_dump $POST qui me le confirme. Et donc sort tjs de la boucle et plus d'envois de mail... là on peut dire que c'est efficace
))
J'ai essayé avec empty, isset mais idem ...
Voici mon code =>
ps : $_session spam contient le vrai texte noter par utilisateur, et $_session message, le textarea invisible qui ne peut etre remplit...
J'avais un formulaire de mail qui fonctionnait a merveille, maissuite a une attaque de robot spam, je suis en train de reviser ma copie pour le securisé un peu plus...
En fait l'astuve je l'ai trouvé sur ce forum, mettre un textarea hidden, si il est remplit c'est q'un coui... de robot l'a remplit donc envois pas de mail.
Voila, mais le probleme c'est que ds mon code il sort tjs de la boucle maintenant car php trouve que mon textarea n'est pas vide et il est pourtant desesperement vide, meme apres verif avec var_dump $POST qui me le confirme. Et donc sort tjs de la boucle et plus d'envois de mail... là on peut dire que c'est efficace
J'ai essayé avec empty, isset mais idem ...
Voici mon code =>
ps : $_session spam contient le vrai texte noter par utilisateur, et $_session message, le textarea invisible qui ne peut etre remplit...
//var_dump($_POST);
session_start();
if ($_POST["envoyer_x"] or $_POST["envoyer_y"] == 0 ) { //si appuis sur bouton envoyer
if (strlen($_SESSION["message"]) == 0 ) { //Si textarea vide alors => ok, sinon robot spam a remplit comme un c** le champ invisible
$_SESSION["mail"]=""; //réinitialisation du message
$_SESSION["email"] = strip_tags($_POST["email"]);
$_SESSION["spam"] = strip_tags($_POST["spam"]);
if ($_POST["email"] =="" and $_POST["spam"] =="") {
$_SESSION["mail"] = "Vous n'avez renseigné aucun champ !";
header("Location:index.php?page=contact");
}
if ($_POST["email"] =="") {
$_SESSION["mail"] = "Veuillez saisir votre email svp !";
header("Location:index.php?page=contact");
} else {
$point = strpos($_POST["email"],".");
$arobase = strpos($_POST["email"],"@");
if ($point=="" || $arobase=="") {
$_SESSION["mail"] ="Votre email doit comporter un <b>point</b> et un <b>'@'</b><br>";
header("Location:index.php?page=contact");
} else {
$_SESSION["email"]=$_POST["email"];
if ($_POST["spam"] =="") {
$_SESSION["mail"] = "Vous n'avez pas laissé de message !";
header("Location:index.php?page=contact");
} else {
$destinataire = "[email protected]";
$objet = "contact";
$headers = 'From: ' . $_SESSION["email"] . "\r\n" .
'Reply-To: ' . $_SESSION["$email"] . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($destinataire,$objet,$_SESSION["spam"],$headers);
$_SESSION["mail"]= "Votre message a bien été envoyer à"
header("Location:index.php?page=contact");
$_SESSION["email"] = "";
$_SESSION["spam"] = "";
$_SESSION["message"] = "";
}
}
}
} $_SESSION["message"] = "";
$_SESSION["mail"]="sortit de la boucle"; //debugage
exit;
} else {
$_SESSION["mail"]=="";
$_SESSION["email"] = $_POST["email"];
$_SESSION["spam"] = $_POST["spam"];
$_SESSION["mail"]= "Erreur lors de l'envois de votre message, veuillez ressayer";
header("Location:index.php?page=contact");
}