2009-09-08 5 views
-1

J'ai une page avec un code php que je ne comprends pas encore complètementAjouter captcha à ce bouton Web en utilisant php

et j'ai un extrait de php pour l'utilisation recaptcha que je pense avoir une poignée assez décente .

Je ne sais pas encore comment intégrer les deux.

Je vois dans le code captcha où il déclenche l'événement mais je ne sais pas comment bloquer le bouton jusqu'à ce que le captcha soit terminé.

Le code existant est:

<div id="colOne"> 
<h2>Contact Us</h2> 
<form action="gdform.php" method="post"> 

<table border="0" cellpadding="2" cellspacing="2" summary="feedback form" align="center"> 
<tbody> 
<tr> 
<td colspan="2"> 
<p>Please fill out the fields below with your information and your question 
      <br />or comment and we will get back to you as soon as possible.</p> 
</td> 
</tr> 
<tr> 
<td align="left">Name:<span style="color: #ff0000;">*</span></td> 
<td><input type="text" name="name" size="25" /></td> 
</tr> 
<tr> 
<td align="left">Email Address:<span style="color: #ff0000;">*</span></td> 

<td><input type="text" name="email" size="25" /></td> 
</tr> 
<tr> 
<td align="left">Phone:</td> 
<td><input type="text" name="phone" size="25" /></td> 
</tr> 
<tr> 
<td align="left">Subject:<span style="color: #ff0000;">*</span></td> 
<td><input type="text" name="subject" size="25" /></td> 
</tr> 
<tr> 
<td colspan="2" align="left">Comments: <span style="color: #ff0000;">*</span><br /><textarea rows="20" cols="50" name="comments"></textarea></td> 

</tr> 
<tr> 
<td colspan="2" align="center"><span style="color: #ff0000;">*</span> Required Fields</td> 
</tr> 
<tr> 
<td align="center" colspan="2"><input type="submit" value="Send Request" /><br /></td> 
</tr> 
</tbody> 
</table> 
</form></div> 

Le code captcha J'est

EDIT: C'EST PAS MON KEY ....... S'IL VOUS PLAÎT Ne vous inquiétez pas ..... ..pas MY KEY, IL eST FAUSSE ........ tOUT eST OKAY

<form action="" method="post"> 
<?php 

    function sendmail() 
    { 
     echo "you got it"; 
    } 

require_once('recaptchalib.php'); 

// Get a key from http://recaptcha.net/api/getkey 
$publickey = "6LeWIAgAAAAAAPA9picBEVB18lDgGVIOIav"; 
$privatekey = "6LeWIAgAAAAAABViAnDjvKXxWtJGBoRaWXe"; 

# the response from reCAPTCHA 
$resp = null; 
# the error code from reCAPTCHA, if any 
$error = null; 

# was there a reCAPTCHA response? 
if ($_POST["recaptcha_response_field"]) { 
     $resp = recaptcha_check_answer ($privatekey, 
             $_SERVER["REMOTE_ADDR"], 
             $_POST["recaptcha_challenge_field"], 
             $_POST["recaptcha_response_field"]); 

     if ($resp->is_valid) 
     { 

       //echo "You got it!"; 
       sendmail(); 

     } 
     else 
     { 
       # set the error code so that we can display it 
       $error = $resp->error; 
     } 
} 
echo recaptcha_get_html($publickey, $error); 
?> 
    <br/> 
    <input type="submit" value="submit" /> 
    </form> 
+1

Probablement pas une bonne idée de montrer votre clé privée recaptcha sur un forum public –

+1

Ce n'est pas ma clé – Crash893

+0

Si vous passez à -1 moi, vous devriez au moins mettre pourquoi je peux essayer de le réparer – Crash893

Répondre

1

tout d'abord, vous avez inclus votre clé privée reCAPTCHA dans votre question, et qui est quelque chose que vous devriez toujours garder privé afin de garder votre CAPTCHA sécurisé. Deuxièmement, le code que vous avez inclus est le code de traitement pour le CAPTCHA, pas le code pour l'afficher dans votre formulaire. Vous devez mettre ce code où vous voulez que le CAPTCHA pour afficher:

require_once('recaptchalib.php'); 
$publickey = "..."; //enter your public key here 
echo recaptcha_get_html($publickey); 

L'autre bloc doit aller en haut de votre traitement en page à en juger par l'action de votre formulaire, c'est gdform.php:

require_once('recaptchalib.php'); 
$privatekey = "..."; 
$resp = recaptcha_check_answer ($privatekey, 
           $_SERVER["REMOTE_ADDR"], 
           $_POST["recaptcha_challenge_field"], 
           $_POST["recaptcha_response_field"]); 

if (!$resp->is_valid) { 
    die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . 
     "(reCAPTCHA said: " . $resp->error . ")"); 
} 

Bien sûr, pour que cela fonctionne, vous devez également avoir la bibliothèque PHP reCAPTCHA et votre propre paire de clés publique/privée. Si vous ne les avez pas, récupérez-les sur le site reCAPTCHA.

Pour plus d'informations, consultez le reCAPTCHA PHP Quickstart.

Questions connexes