IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Formulaire avec ajax et Capacha v2 - erreur sur capcha


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Formulaire avec ajax et Capacha v2 - erreur sur capcha
    Bonjour,

    J'ai mis sur pied un formulaire de contact couplé à un recapcha v2 (celui où l'on coche "je ne suis pas un robot").

    Le problème est que la vérification google n'est pas prise en compte. Et si j'ai une erreur ou que google demande de choisir des images pour confirmer que l'on est bien un humain, je garde ma variable en erreur et je ne peux pas générer d'envoi...

    Merci du coup de pouce (PS : les clés ont volontairement été masquées)

    Le code 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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <!DOCTYPE html>
    <html>
    <head>
        <title>Contact form using Bootstrap 3.3.4</title>
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
        <meta charset="utf-8">
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <link rel="stylesheet" href="css/bootstrap.min.css">
        <link rel="stylesheet" href="css/animate.css">
        <script src="https://www.google.com/recaptcha/api.js"></script>
    </head>
    <body style="background-color: #7e7e7e">
    <div class="row">
    <div class="col-sm-6 col-sm-offset-3">
        <div class="well" style="margin-top: 10%;">
        <h3>Send me a message</h3>
        <form role="form" id="contactForm" data-toggle="validator" class="shake" method="POST">
            <div class="row">
                <div class="form-group col-sm-6">
                    <label for="name" class="h4">Name</label>
                    <input type="text" class="form-control" id="name" placeholder="Enter name" required data-error="NEW ERROR MESSAGE">
                    <div class="help-block with-errors"></div>
                </div>
                <div class="form-group col-sm-6">
                    <label for="email" class="h4">Email</label>
                    <input type="email" class="form-control" id="email" placeholder="Enter email" required>
                    <div class="help-block with-errors"></div>
                </div>
            </div>
            <div class="form-group">
                <label for="message" class="h4 ">Message</label>
                <textarea id="message" class="form-control" rows="5" placeholder="Enter your message" required></textarea>
                <div class="help-block with-errors"></div>
            </div>
            <div class="g-recaptcha" data-sitekey="*****"></div>
            <button type="submit" id="form-submit" class="btn btn-success btn-lg pull-right ">Submit</button>
            <div id="msgSubmit" class="h3 text-center hidden"></div>
            <div class="clearfix"></div>
        </form>
        </div>
    </div>
    </div>
    </body>
    <script  type="text/javascript" src="js/jquery-1.11.2.min.js"></script>
    <script type="text/javascript" src="js/validator.min.js"></script>
    <script type="text/javascript" src="js/form-scripts.js"></script>
    </html>
    Le code PHP pour la fonction envoi :

    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <?php
     
    $errorMSG = "";
     
    // NAME
    if (empty($_POST["name"])) {
        $errorMSG = "Name is required ";
    } else {
        $name = $_POST["name"];
    }
     
    // EMAIL
    if (empty($_POST["email"])) {
        $errorMSG .= "Email is required ";
    } else {
        $email = $_POST["email"];
    }
     
    // MESSAGE
    if (empty($_POST["message"])) {
        $errorMSG .= "Message is required ";
    } else {
        $message = $_POST["message"];
    }
     
     
     
    if(isset($_POST['g-recaptcha-response']) && !empty($_POST['g-recaptcha-response'])):
    		//your site secret key
            $secret = '******';
    		//get verify response data
            $verifyResponse = file_get_contents('https://www.google.com/recaptcha/api/siteverify?secret='.$secret.'&response='.$_POST['g-recaptcha-response']);
            $responseData = json_decode($verifyResponse);
    		else:
            $errorMSG = 'Please click on the reCAPTCHA box.';
    endif;		
     
     
     
     
    $EmailTo = "moi@moi.com";
    $Subject = "New Message Received";
     
    // prepare email body text
    $Body = "";
    $Body .= "Name: ";
    $Body .= $name;
    $Body .= "\n";
    $Body .= "Email: ";
    $Body .= $email;
    $Body .= "\n";
    $Body .= "Message: ";
    $Body .= $message;
    $Body .= "\n";
     
    // send email
    $success = mail($EmailTo, $Subject, $Body, "From:".$email);
     
    // redirect to success page
    if ($success && $errorMSG == ""){
       echo "success";
    }else{
        if($errorMSG == ""){
            echo "Something went wrong :(";
        } else {
            echo $errorMSG;
        }
    }
     
    ?>
    Encore merci !

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Le problème est que la vérification google n'est pas prise en compte
    as tu enregistré ton "formulaire" dans le "captcha google" ?
    Conception / Dev

  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Oui pour moi c'est bon.

    Le problème doit se situer au niveau de la gestion du message d'erreur.

    Merci

Discussions similaires

  1. [2.x] Test fonctionnel sur un formulaire avec Ajax
    Par Apoutchika dans le forum Symfony
    Réponses: 0
    Dernier message: 04/05/2013, 18h22
  2. [AJAX] Poster un formulaire avec AJAX
    Par faico dans le forum AJAX
    Réponses: 10
    Dernier message: 22/03/2010, 17h12
  3. validation de formulaire avec ajax
    Par debutant_linux dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 25/01/2008, 15h01
  4. [AJAX] traiter un formulaire avec ajax
    Par Henry9 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 17/08/2007, 12h25
  5. [AJAX] récupération de formulaire avec AJAX
    Par abda1000 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/03/2007, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo