Bonjour
j' ai un probème que je n'arrive pas à résoudre
j'explique j'ai un livre d'or que j'ai fais avec des tutos à droite et à gauche, je suis autodidacte, il fonctionne,quand les champs ne sont pas rempli, j'ai bien une alerte qui dit de remplir autrement cela fonctionne pas. Et un beau jour je me suis fais spammer le livre d'or, plus de 1550 messages en deux heures, j'ai donc installé le recaptchat de googele avec beaucoup de mal, car je n'ai plus les spams, c'est cool, seulement, ben je n'ai plus non plus les vérifications des champs, cela ne s'affiche plus, et j'ai beau essayé un tas de choses, rien y fait. Est ce que quelqu'un peut m'aider pour que je retrouve mes alertes que j'avais au départ pour vérifier si champs rempli correct et le captchat google
voici ma page
Je vous remerci d'avance
<div class="bg">
<div class="row">
<div class="col-sm-12">
<div class="entry-content">
<h2 class="heading">Nous laisser un message</h2>
<?php
$reCaptcha = new ReCaptcha($secret);
if(isset($_POST["g-recaptcha-response"])) {
$resp = $reCaptcha->verifyResponse(
$_SERVER["REMOTE_ADDR"],
$_POST["g-recaptcha-response"]
);
if ($resp != null && $resp->success)
{
include('bdd.php');
if(!empty($_POST)){
extract($_POST);
$validation = true;
if($cache != ""){
}
else{
if(empty($nom))
{
$validation = false;
$erreur_nom = "Votre nom est obligatoire";
}
if(empty($message))
{
$validation = false;
$erreur_message = "Votre message est obligatoire";
}
if($validation)
{
$req = $bdd->prepare('INSERT INTO livre (nom,message) VALUES(:nom,:message)');
$req->execute(array(
'nom' =>$nom,
'message'=>$message,
));
$req->closeCursor();
echo "<script type='text/javascript'>document.location.replace('livre-dor-FCOM.php');</script>";
$to = '......@sfr.fr';
$subject = 'Guestbook ';
$content ='
<strong>Nouveau message sur le livre or FCOM</strong><br />
*******************************<br /><br />
Nom : '.$nom.'<br />
*******************************<br />
'.nl2br($message).'<br />
*******************************
';
$headers= 'MIME-Version: 1.0' . "\r\n";
$headers.= 'Content-type: text/html; charset="UTF-8"' . "\r\n";
$headers.='from: '.$nom.'<'.$email.'>' ."\r\n";
$headers.='Reply-to:<'.$email.'>' ."\r\n";
mail($to,$subject,$content,$headers);
}
}
}
}
else {echo '<span style="display:block;text-align:center;font-size:18px;"class="erreur">Veuillez cocher le captcha anti-robot. Merci</span>';}
}
?>
<div class="text-center">
<?php if(isset($erreur_nom)) echo '<span class="erreur">'.$erreur_nom.'</span>'; ?>
<?php if(isset($erreur_message)) echo '<span class="erreur">'.$erreur_message.'</span>';?>
</div>
<form method="post" name="contact-form" id="livre_or" class="livre_or">
<div class="form-group col-md-12">
<input type="text" class="form-control" name="nom" id="nom" placeholder="nom" value="<?php if(isset($nom)) echo $nom;?>">
</div>
<div class="form-group col-md-12">
<input type="email" class="form-control" name="email" id="email" placeholder="Votre email n'apparaîtra pas" value="<?php if(isset($email)) echo $email;?>">
</div>
<div class="form-group col-md-12">
<textarea class="form-control" name="message" id="message" placeholder="Votre message"><?php if(isset($message)) echo $message;?></textarea>
</div>
<div class="form-group col-md-12">
<div class="g-recaptcha" data-sitekey="6LeB4g8TAAAAAOkgiQtmXWjc8wDHC9Zz6UlBWvkL"></div><br />
<button type="submit" class="btn btn-sm btn-primary" name="livre-dor-FCOM">Envoyer</button>
<hr>
</div>
<div id=""></div>
</form>
merci de ta réponse grafikart, du coup j' ai pris un de tes tutos pour réaliser un formulaire, donc j'ai remanié des choses, je suis toujours perdu avec le captcha..donc voic i ma page de traitement, j'ai le captcha en haut
<?php
$reCaptcha = new ReCaptcha($secret);
if(isset($_POST["g-recaptcha-response"])) {
$resp = $reCaptcha->verifyResponse(
$_SERVER["REMOTE_ADDR"],
$_POST["g-recaptcha-response"]
);
if ($resp != null && $resp->success) {echo "CAPTCHA OK";}
else {echo "CAPTCHA incorrect";}
}
$errors=[];
if(!array_key_exists('nom',$_POST) || $_POST['nom'] == ''){
$errors['nom']="Vous n'avez pas renseigné votre nom";
}
if(!array_key_exists('email',$_POST) || $_POST['email'] == '' || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$errors['email']="Vous n'avez pas renseigné un email valide";
}
if(!array_key_exists('message',$_POST) || $_POST['message'] == ''){
$errors['message']="Vous n'avez pas écrit de message";
}
session_start();
if(!empty($errors)){
$_SESSION['errors'] = $errors;
$_SESSION['inputs'] = $_POST;
header('location: livre-dor-FCOM.php');
}else{
$_SESSION['success'] = 1;
$email=$_POST['email'];
$message=$_POST['message'];
$nom=$_POST['nom'];
$to = 'olivier.maillard83@sfr.fr';
$sujet = 'Nouveau message sur le livre d\'or de FCOM';
$content ='
<strong>Nouveau message sur le livre or FCOM</strong><br />
*******************************<br /><br />
Nom : '.$nom.'<br />
*******************************<br />
'.nl2br($message).'<br />
*******************************
';
$headers= 'MIME-Version: 1.0' . "\r\n";
$headers.= 'Content-type: text/html; charset="UTF-8"' . "\r\n";
$headers.='from: '.$nom.'<'.$email.'>' ."\r\n";
$headers.='Reply-to:<'.$email.'>' ."\r\n";
mail($to,$sujet,$content,$headers);
header('location: livre-dor-FCOM.php');
}
?>
et voici code de ma page ou se trouve le formulaire, je pense que tu vous allez reconnaître un de vos tutos
<?php if(array_key_exists('errors', $_SESSION)):?>
<div class="alert alert-danger">
<?= implode('<br>', $_SESSION['errors']);?>
</div>
<?php unset($_SESSION['errors']); endif; ?>
<?php if(array_key_exists('success', $_SESSION)):?>
<div class="alert alert-success">
Votre message a bien été enregistré et mis en ligne Merci beaucoup.
</div>
<?php endif; ?>
<?php
?>
je vous remercie d'avance
Y a t'il quelqu'un qui pourrait m'aider à intégrer le recaptcha google svp..
merci d'avance
Je t'invite à aller voir la documentation google, qui n'est pas compliqué et très simple:
https://developers.google.com/recaptcha/intro
Pour check la réponse utilisateur:
https://developers.google.com/recaptcha/docs/verify
merci alex, mais j'y suis déjà allé voir, j'ai bien réussi à l'installer et il fonctionnait, mais sans mes vérifes des inputs de mon formulaire, maintenant que j'ai des vérifes en php, je ne sais pas du tout comment l'intégrer dans le code que j'ai mis précédemment, et étant vraiment un novice en la matière, je suis paumé et en ai besoin, car j'ai du installer ça car j' ai des tonnes de spam dans mon livre d'or..Ce que je demande c'est si quelqu'un pourrait m'écrire le code complet
merci d'avance
Bien, si j'ai bien compris ton code, tu utilises une SESSION pour les erreurs ($_SESSION['errors']):
Tu as uniquement à faire pour comme tes autres erreurs mais tu utilises:
if(!$_POST['g-recaptcha-response']) { // Tu mets ici le code erreur.... }
Cela renvoi true si le captcha est fait, sinon False.
Si tu as un problème pour incruster le module tu me le dis ! :)
j' ai mis ton code à la suite des autres conditions mais ça me retourne ma page de traitement vide(blanche)
$reCaptcha = new ReCaptcha($secret);
if(isset($_POST["g-recaptcha-response"])) {
$resp = $reCaptcha->verifyResponse(
$_SERVER["REMOTE_ADDR"],
$_POST["g-recaptcha-response"]
);
if ($resp != null && $resp->success) {echo "CAPTCHA OK";}
else {echo "CAPTCHA incorrect";}
}
$errors=[];
if(!array_key_exists('nom',$_POST) || $_POST['nom'] == ''){
$errors['nom']="Vous n'avez pas renseigné votre nom";
}
if(!array_key_exists('email',$_POST) || $_POST['email'] == '' || !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
$errors['email']="Vous n'avez pas renseigné un email valide";
}
if(!array_key_exists('message',$_POST) || $_POST['message'] == ''){
$errors['message']="Vous n'avez pas écrit de message";
}
session_start();
ça y est ça l'air de fonctionné, un grand merci alex pour ton aide, vraiment, tu me retires une épine du pied