tags:

views:

144

answers:

1

I have a page with some php code that i don't fully understand yet

and i have a php snippet for using recaptcha that i think i have a pretty decent handle on.

I'm not sure how to integrate the two yet.

I see in the captcha code where it triggers the event but im not sure how to block the button till the captcha is done.

The existing code is:

<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>

The captcha code I have is

EDIT: THIS IS NO MY KEY.......PLEASE DO NOT WORRY.......NOT MY KEY, IT IS FAKE........EVERYTHING IS 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  A: 

First of all, you included your reCAPTCHA private key in your question, and that's something you should always keep private in order to keep your CAPTCHA secure.

Secondly, the code you included is the processing code for the CAPTCHA, not the code to make it display in your form. You need to put this code where you want the CAPTCHA to display:

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

The other block has to go at the top of your processing page—judging by your form's action, that's 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 . ")");
}

Of course, for any of this to work, you must also have the reCAPTCHA PHP library and your own public/private key pair. If you don't have those, get them from the reCAPTCHA site.

For more information, read the reCAPTCHA PHP Quickstart.

Jonathan Patt