Bonjour à toutes et à tous
je tiens d’abord à préciser que je ne suis pas développeur, mais
un simple particulier (en retraite) qui veut aider un p’tit jeune à lancer son activité et qui a besoin d’un site web et d’un formulaire de contact avec une protection contre le spam.
Le formulaire je l’ai. Il est en Ajax et il marche très bien.
Sauf que je n’arrive pas à le protéger contre le spam des robots.
Voici le code du traitement du formulaire…
Pour le protéger j’ai mis dans le formulaire un champ visible des robots seulement ’spambot’
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 <?php // Define some constants define( "RECIPIENT_NAME", "Clément" ); define( "RECIPIENT_EMAIL", "clement@domaine.fr" ); define( "EMAIL_SUBJECT", "Un message en provenance du site" ); // Read the form values $success = false; $senderName = isset( $_POST['senderName'] ) ? preg_replace( "/[^\.\-\' a-zA-Z0-9]/", "", $_POST['senderName'] ) : ""; $senderEmail = isset( $_POST['senderEmail'] ) ? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['senderEmail'] ) : ""; $message = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", $_POST['message'] ) : ""; // If all values exist, send the email if ( $senderName && $senderEmail && $message ) { $recipient = RECIPIENT_NAME . " <" . RECIPIENT_EMAIL . ">"; $headers = "From: " . $senderName . " <" . $senderEmail . ">"; $success = mail( $recipient, EMAIL_SUBJECT, $message, $headers ); } // Return an appropriate response to the browser if ( isset($_GET["ajax"]) ) { echo $success ? "success" : "error"; } else { ?>
Et je voudrais placer dans le traitement cette instruction :
Mais quoique je fasse pour faire fonctionner le formulaire avec cette nouvelle instruction, rien ne part.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if(!empty($_POST) && empty($_POST['spambot']))
J’ai toujours en réponse ce message que produit ce code :
Comme j’ai passé 4 heures à chercher je dois me rendre à l’évidence :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<?php if ( !$success ) echo "<p>Il y a eu un problème à lenvoi de votre message. Merci de réessayer.</p>" ?>
Ajax : Un
Moi : zéro
Si quelqu’un pouvait m’aider à remporter la seconde manche, ce serait très charitable.
Merci d’avance,
Serge
Partager