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…
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 {
?>
Pour le protéger j’ai mis dans le formulaire un champ visible des robots seulement ’spambot’

Et je voudrais placer dans le traitement cette instruction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
if(!empty($_POST) && empty($_POST['spambot']))
Mais quoique je fasse pour faire fonctionner le formulaire avec cette nouvelle instruction, rien ne part.
J’ai toujours en réponse ce message que produit ce code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
<?php if ( !$success ) echo "<p>Il y a eu un problème à l’envoi de votre message. Merci de réessayer.</p>" ?>
Comme j’ai passé 4 heures à chercher je dois me rendre à l’évidence :
Ajax : Un
Moi : zéro

Si quelqu’un pouvait m’aider à remporter la seconde manche, ce serait très charitable.

Merci d’avance,
Serge