formulaire de contact

Bonjour, j'ai inséré le formulaire de contact dans une page, mais j'ai un message d'erreur : la vérification anti-spam a échouée
mon hébergement est OVH,
j'ai changé les balises par "/n", mais c'est le même problème. merci de votre réponse. Christophe le code : <?php
# Page statique Pluxml : formulaire de contact par florent@pluxml.org
# revision 1.1 par Sudwebdesign: compatibilité pluxml 5.1b

if(!defined('PLX_ROOT')) exit;

# Renseignez ici votre adresse mail
$email = 'monmail@neuf.fr';

# Notre capcha
$capcha = new plxCapcha();

# Nos variables
$erreur = '';
$succes = '';

if(!empty($_POST)) { # Formulaire valide

if($_POST == sha1($capcha->gds.$_POST)) { # Capcha valide 5.1b
$_POST = trim($_POST);
$_POST = trim($_POST);
$_POST = plxUtils::getIp();
# On verifie les donnees
if(empty($_POST) OR empty($_POST) OR empty($_POST))
$erreur = 'Merci de remplir tous les champs obligatoires';
if($erreur == '' AND !plxUtils::checkMail(trim($_POST)))
$erreur = 'L\'adresse mail saisie n\'est pas valide';
# On peut envoyer si pas d'erreur
if($erreur == '') {
$corps = 'Son nom : '.$_POST."n";
$corps .= 'Son mail : '.$_POST."n";
$corps .= 'Son adresse IP : '.$_POST."n";
$corps .= 'Son message : '."n";
$corps .= $_POST;
# On peut retirer certains caracteres (enlever // de la ligne suivante)
//$corps = str_replace("r"," ",$corps);
# On envoi le mail
$headers = 'From: '.$_POST."rn";
$headers .= 'MIME-Version: 1.0'."rn";
$headers .= 'Content-type: text/plain; charset="'.PLX_CHARSET.'"'."rn";
$headers .= 'Content-transfer-encoding: 8bit'."rn";
if(mail($email,'## Pluxml ## contact depuis votre formulaire de contact',$corps, $headers))
$succes = 'Merci de nous avoir contacté, nous vous répondrons le plus rapidement possible.';
else
$erreur = 'Une erreur s\'est produite au cours de l\'envoi de votre message...';
}
} else { # Capcha non valide
$erreur = 'la vérification anti-spam a échouée';
}
} else {
# Initialisation
$erreur = 'Merci de remplir le formulaire ci-dessous';
$_POST = '';
$_POST = '';
$_POST = '';
}
?>
<div id="form">
<p class="message_contact"><?php echo (!empty($erreur))?$erreur:$succes; ?></p>
<?php if(!empty($erreur) OR empty($_POST)): ?>
<form action="#form" method="post">
<label for="nom">Votre nom :<br />
</label><input name="nom" type="text" size="30" value="<?php echo plxUtils::strCheck($_POST) ?>" maxlength="30" /><br />
<label for="mail">Votre courriel :<br />
</label><input name="mail" type="text" size="30" value="<?php echo plxUtils::strCheck($_POST) ?>" /><br /><br />
<label for="content">Votre message :<br />
</label><textarea name="content" cols="60" rows="12"><?php echo plxUtils::strCheck($_POST) ?></textarea><br />
<br />
<label for="rep">Vérification anti-spam :</label>
<p><?php echo $capcha->q(); ?> : <input name="rep" type="text" size="10" /></p>
<input name="rep2" type="hidden" value="<?php echo $capcha->r(); ?>" />
<p><input type="submit" value="Envoyer" /> <input type="reset" value="Effacer" /></p>
</form>
<?php endif; # Fin du if si mail envoye ?>
</div>

Réponses

  • StéphaneStéphane Member, Former PluXml Project Manager
    bonjour tobi

    as-tu essayé en tenant compte des majuscules/minuscules dans le code antispam à saisir ?

    Consultant PluXml

    Ancien responsable et développeur de PluXml (2010 à 2018)

  • BloodyBloody Member
    Je suis chez OV et ça fonctionne bien chez moi. Un peu lent à recevoir le mail, c'est tout. :)
  • Bonjour, étant non-voyant ma synthèse vocale me me signal pas des majuscules dans le capcha. Puis-je recevoir par mail le script contact pour OVH, merci d'avance,
    Christophe
  • bankaibankai Member
    juin 2011 modifié
    Je suis sous OVH voici mon code que j'utilise et qui fonctionne:
    <?php
    # Page statique Pluxml : formulaire de contact par florent@pluxml.org
    # revision 1.1 par Sudwebdesign: compatibilité pluxml 5.1b
    
    if(!defined('PLX_ROOT')) exit;
    
    # Renseignez ici votre adresse mail
    $email = 'LE MAIL ICI';
    
    # Notre capcha
    $capcha = new plxCapcha();
    
    # Nos variables
    $erreur = '';
    $succes = '';
    
    if(!empty($_POST)) { # Formulaire valide
    
    	if($_POST['rep2'] == sha1($capcha->gds.$_POST['rep'])) { # Capcha valide 5.1b
    		$_POST['nom'] = trim($_POST['nom']);
    		$_POST['content'] = trim($_POST['content']);
    		$_POST['ip'] = plxUtils::getIp();
    		# On verifie les donnees
    		if(empty($_POST['nom']) OR empty($_POST['mail']) OR empty($_POST['content']))
    			$erreur = 'Merci de remplir tous les champs obligatoires';
    		if($erreur == '' AND !plxUtils::checkMail(trim($_POST['mail'])))
    			$erreur = 'L\'adresse mail saisie n\'est pas valide';
    		# On peut envoyer si pas d'erreur
    		if($erreur == '') {
    			$corps = 'Son nom : '.$_POST['nom']."\n";
    			$corps .= 'Son mail : '.$_POST['mail']."\n";
    			$corps .= 'Son adresse IP : '.$_POST['ip']."n";
    			$corps .= 'Son message : '."\n";
    			$corps .= $_POST['content'];
    			# On peut retirer certains caracteres (enlever // de la ligne suivante)
    			//$corps = str_replace("r"," ",$corps);
    			# On envoi le mail
    			$headers = 'From: '.$_POST['mail']."\n";
    			$headers .= 'MIME-Version: 1.0'."\n";
    			$headers .= 'Content-type: text/plain; charset="'.PLX_CHARSET.'"'."\n";
    			$headers .= 'Content-transfer-encoding: 8bit'."\n";
    			if(mail($email,'## Pluxml ## contact depuis votre formulaire de contact',$corps, $headers))
    				$succes = 'Merci de nous avoir contacté, nous vous répondrons le plus rapidement possible.';
    			else
    				$erreur = 'Une erreur s\'est produite au cours de l\'envoi de votre message...';
    		}
    	} else { # Capcha non valide
    		$erreur = 'la vérification anti-spam a échouée';
    	}
    } else {
    	# Initialisation
    	$erreur = 'Merci de remplir le formulaire ci-dessous';
    	$_POST['nom'] = '';
    	$_POST['content'] = '';
    	$_POST['mail'] = '';
    }
    ?>
    <div id="form">
    	<p class="message_contact"><?php echo (!empty($erreur))?$erreur:$succes; ?></p>
    	<?php if(!empty($erreur) OR empty($_POST)): ?>
    		<form action="#form" method="post">
    				<label for="nom">Votre nom :<br />
    </label><input name="nom" type="text" size="30" value="<?php echo plxUtils::strCheck($_POST['nom']) ?>" maxlength="30" /><br />
    <label for="mail">Votre courriel :<br />
    </label><input name="mail" type="text" size="30" value="<?php echo plxUtils::strCheck($_POST['mail']) ?>" /><br />
    <label for="content">Votre message :<br />
    </label><textarea name="content" cols="60" rows="12"><?php echo plxUtils::strCheck($_POST['content']) ?></textarea><br />
    <br /><br /><br /><br /><br /><br />
    				<label for="rep">Vérification anti-spam :</label>
    				<p><?php echo $capcha->q(); ?> : <input name="rep" type="text" size="10" /></p>
    				<input name="rep2" type="hidden" value="<?php echo $capcha->r(); ?>" />
    				<p><input type="submit" value="Envoyer" /> <input type="reset" value="Effacer" /></p>
    		</form>
    	<?php endif; # Fin du if si mail envoye ?>
    </div>
    
    En espérant que celui fonctionne pour toi.
  • RubénRubén Member
    Sur un formulaire que j'ai fait, j'ai fait en sorte que les courriels écrits en moins de dix secondes soient considérés comme du spam. Il suffit seulement de créer une variable
    $temps = time();
    C'est une idée de plus pour se protéger du spam.
  • merci pour le code, je teste toute suite...
  • Il y a aussi l'astuce du cookie. Tu place un cookie pendant 2min seulement lorsque le mail a bien été envoyé. Lorsque la personne souhaite te recontacter en moins de 2min, elle se retrouve bloqué par son cookie et qui s'incrémente en temps s'il fait le lourd et essaye encore et encore.

    Une option qu'un amis développeur m'avait proposé, c'était de récupérer l'adresse ip, la stoker dans un fichier avec l'heure et la date. Si la personne est déjà "fichée", alors tu na plus qu'a jouer sur l'intervalle de temps nécessaire pour pouvoir relancer un mail. Pendant se labs de temps, quoi qu'il arrive elle ne pourra pas envoyer de mail. Il avait même pousser le vice jusqu'à proposer 3 essais puis après fini la rigolade. Voilà en espérant t'avoir donné une piste.
  • Sinon moi je le couple à Formallin, il est gratuit et excellent pour faire des formulaires en tous genres.

    A+
Connectez-vous ou Inscrivez-vous pour répondre.