Salut à tous et... mes bons voeux par la même...
J'étais plutot satisfait de mon formulaire jusqu'à là, mais depuis le début de l'année je reçois
une tripotée de spam, un bot certainement, bien que j'ai un Captcha, des champs cachés etc...
Prenom : gHPhUpbYLSqpTyFDx
Nom : Justin
Profession : kvCtGWvBZFinPt
Adresse : buy acomplia online without a prescription <a href="http://brazil.mcneel.com/members/Acomplia-Buy-Online.aspx">buy generic acomplia online</a> acomplia buy online New York
Code Postal : nFJxWWVQ
Ville : rEGlGycrcRjINhURV
Pays : France
Telephone : eecaAwTBgb
Fax : rDLgNnejhzFbOxnO
Reduction SNCF : Oui
Repas : Oui
Email : JustinLNagel@text2re.com
Il me faut donc coder de manière à ce que certains champs remplissent les conditions d'envoi.
(enfin je pense...)
Exemple :
- interdire l'ajout d'url dans le champ "Adresse".
- obliger chiffres dans le champ "Telephone"
- etc...
J'aurais besoin d'un ptit coup de mains pour çà svp.
Voici le détail du code :
$email_webmaster = "monmail@fai.fr";
============================================================
if (isset($_POST["envoyer"])){// le formulaire a été soumis
$etat = "erreur";// Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
if (isset($_POST["adresse"])) {
$_POST["adresse"]=trim(stripslashes($_POST["adresse"]));
}
if (isset($_POST["phone"])) {
$_POST["phone"]=trim(stripslashes($_POST["phone"]));
}
if (isset($_POST["email"])) {
$_POST["email"]=trim(stripslashes($_POST["email"]));
}
if (isset($_SESSION['captcha']) && $_POST['captcha'] == $_SESSION['captcha']){
$_POST["captcha"]=trim(stripslashes($_POST["captcha"]));
}
///////////// --- CHAMP HIDDEN ---///////////////////////////
if (!empty($_POST['protection']) || $_POST['protection'] !== ''){
$erreur=SPAM;
}
///////////// --- CHAMP HIDDEN ---///////////////////////////
else if (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$",$_POST["email"])){
///////////// l'adresse e-mail n'est pas valide
$erreur=TXT_erreur_mailinvalide;
}
else if (empty($_POST["adresse"])) {
$erreur=TXT_erreur_adresse;
}
else if (empty($_POST["phone"])) {
$erreur=TXT_erreur_phone;
}
else if (empty($_POST['captcha'])) {
$erreur=CAPTCHA_VIDE;
}
else if (isset($_SESSION['captcha']) && $_POST['captcha'] != $_SESSION['captcha']){
$erreur=CAPTCHA_INVALIDE;
session_destroy(); // Pour eviter les multiposts.
}
else {
// --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
$etat="ok";
}
}
else {
// --- le formulaire n'a pas été soumis ---
$etat="attente";
}
Et le formulaire :
<div id="formulaire">
<?php
if ($etat!="ok"){
// le formulaire n'a pas été soumis, ou soumis avec une erreur
if ($etat=="erreur"){
//le formulaire a été soumis avec une erreur
echo $erreur;
// afficher le message d'erreur
}
?>
<form method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>">
<p><label for="adresse"><?php echo CONTACT_adresse; ?></label>
<textarea name="adresse" id="adresse" cols="40" rows="5"><?php
if (isset($_POST["adresse"])) {
echo htmlspecialchars($_POST["adresse"],ENT_QUOTES);
}
?></textarea>
</p>
<p><label for="phone"><?php echo CONTACT_phone; ?></label>
<input type="text" size="40" name="phone" id="phone" value="<?php
if (!empty($_POST["phone"])) {
echo htmlspecialchars($_POST["phone"],ENT_QUOTES);
}
?>" />
</p>
<div id="capt"><label for="captcha"><?php echo CAPTCHA; ?></label>
<input class="keycode" type="text" name="captcha" id="captcha" value="" />
<img src="inc/captcha.php" alt="Captcha" />
</div>
<p><input type="hidden" name="protection" value="" />
</p>
<p><a><input class="button" type="submit" name="envoyer" value="<?php echo CONTACT_envoi; ?>" />
</a></p>
</form>
<?php
}
else {
// le formulaire a été soumis sans erreur, on envoie le email
$entete = "From: ".$_POST["email"]." <".$_POST["email"].">\n";
$entete = 'Inscription depuis le site';
$msg =
'Adresse : '.$_POST["adresse"]."\n".
'Telephone : '.$_POST["phone"]."\n".
'Email : '.$_POST["email"]."\n";
if (mail($email_webmaster,$entete,$msg));
$subject = '-:: Votre inscription / Your registration::- ';
$msg = 'Merci / Tank you : '.$_POST["nom"]."\n".
$msg = 'Votre inscription / Your registration : '."\n".
$msg =
'
'Adresse : '.$_POST["adresse"]."\n".
'Telephone : '.$_POST["phone"]."\n".
'Email : '.$_POST["email"]."\n".
$msg =
'
Votre inscription a été correctement enregistrée.
if (mail($_POST["email"], $subject, $msg)){
// mail envoyé
echo TXT_MessOK;
echo TXT_NewMail;
}
else {
// erreur lors de l'envoi du mail
echo TXT_Problem;
echo TXT_Retry;
}
}
?>
</div>
Si une bonne âme pouvait m'aider je suis preneur...
Merci