PHP CAPTCHA error?

51 views
Skip to first unread message

Donald

unread,
Sep 17, 2009, 5:44:23 AM9/17/09
to reCAPTCHA
hi folks

iv added a php version of captcha to my works contact form. only the
captcha doesnt exactly work. if i type in the form it works and sends
the form even without the captcha security typed in

heres my code

<html>
<head>
<!--#include file="_code.asp" -->
<!--#include file="_meta.asp" -->
<meta name="verify-v1" content="/l5gpcFbdsGv4QozI4sy4rdijIgBinlYhFJV
+Pq0aLU=">
<meta name="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="scripts/styles.css" type="text/css">
<link rel="shortcut icon" href="/images/favicon.ico" />
</head>
<body bgcolor="#ffffff" leftmargin="0" topmargin="0" marginwidth="0"
marginheight="0">
<form method="POST" action="send.php">
<table width="50%" cellspacing="0" cellpadding="5"
class="boxorderform" border="0" bordercolor="#FFFFFF">
<tr>
<td colspan="2" class="boxcol" style="background-image: url(/
images/checkoutheader.gif);"><span class="checkouthead">Contact Form</
span></td>
<td bgcolor="#FFFFFF" ></td>
</tr>
<tr>
<td class="link_green" style="border-left: 1px #9a9a9a solid;"
valign="top" width="130"><p class="normalbold_black">Name</p></td>
<td style="border-right: 1px #9a9a9a solid;" valign="top"
bgcolor="#FFFFFF" width="320"><input type="text" name="Name" size="40"
maxlength="40" class="normal" /></td>
<td width="10" bgcolor="#FFFFFF"></td>
</tr>
<tr>
<td class="normal" valign="top" style="border-left: 1px #9a9a9a
solid;" width="130"><p class="normalbold_black">E-Mail</p></td>
<td valign="top" style="border-right: 1px #9a9a9a solid;"
bgcolor="#FFFFFF" width="320"><input type="text" name="EmailFrom"
size="40" maxlength="50" class="normal" /></td>
<td width="10" bgcolor="#FFFFFF"></td>
</tr>
<tr>
<td class="normal" valign="top" style="border-left: 1px #9a9a9a
solid;" width="130"><p><span class="normalbold_black">Telephone</
span><br />
</p></td>
<td style="border-right: 1px #9a9a9a solid;" valign="top"
bgcolor="#FFFFFF" width="320"><span class="small"><input type="text"
name="Tel"></span></td>
<td width="10" bgcolor="#FFFFFF"></td>
</tr>
<tr>
<td class="normal" valign="top"style="border-left: 1px #9a9a9a
solid;" width="130"><span class="normalbold_black">House No</span></
td>
<td style="border-right: 1px #9a9a9a solid;" valign="top"
bgcolor="#FFFFFF" width="320"><input type="text" name="Street1"></td>
<td width="10" bgcolor="#FFFFFF"></td>
</tr>
<tr>
<td class="normal" valign="top" style="border-left: 1px #9a9a9a
solid; border-bottom: 0px #9a9a9a solid;" width="130"><span
class="normalbold_black">Street </span></td>
<td bgcolor="#FFFFFF" style="border-right: 1px #9a9a9a solid;
border-bottom: 0px #9a9a9a solid;" width="320" valign="top"><input
type="text" name="Street2"></td>
</tr>
<tr>
<td class="normal" valign="top" style="border-left: 1px #9a9a9a
solid; border-bottom: 0px #9a9a9a solid;" width="130"><span
class="normalbold_black">City/Town</span></td>
<td bgcolor="#FFFFFF" style="border-right: 1px #9a9a9a solid;
border-bottom: 0px #9a9a9a solid;" width="320" valign="top"><input
type="text" name="City"></td>
</tr>
<tr>

<td class="normal" valign="top" style="border-left: 1px #9a9a9a
solid; border-bottom: 0px #9a9a9a solid;" width="130"><span
class="normalbold_black">Postcode</span></td>
<td bgcolor="#FFFFFF" style="border-right: 1px #9a9a9a solid;
border-bottom:0px #9a9a9a solid;" width="320" valign="top"><input
type="text" name="PostCode"></td>
</tr>
<tr>
<td class="normal" valign="top" style="border-left: 1px #9a9a9a
solid; border-bottom: 0px #9a9a9a solid;" width="130"><span
class="normalbold_black">Comments</span></td>
<td bgcolor="#FFFFFF" style="border-right: 1px #9a9a9a solid;
border-bottom: 0px #9a9a9a solid;" width="320" valign="top"><textarea
name="Comments" cols="35" rows="6" class="normal"></textarea></td>
</tr>
<tr>
<td colspan="2" style="border-right: 1px #9a9a9a solid;
border-left: 1px #9a9a9a solid; border-bottom: 0px #9a9a9a solid;">
<?php
error_reporting(E_ALL ^ E_NOTICE);
require_once('recaptchalib.php');
$publickey = "<blah>";
$privatekey = "<blah>";

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

# are we submitting the page?
if ($_POST["1submit"]) {
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);

if ($resp->is_valid) {
echo "You got it!";
# in a real application, you should send an email, create an
account, etc
} else {
# set the error code so that we can display it. You could also use
# die ("reCAPTCHA failed"), but using the error message is
# more user friendly
$error = $resp->error;
}
}
echo recaptcha_get_html($publickey, $error);
?>


</td>
</tr>
<tr>
<td colspan="2" class="normal" valign="top" align="center"
style="border-right: 1px #9a9a9a solid; border-left: 1px #9a9a9a
solid; border-bottom: 1px #9a9a9a solid;" ><input type="submit"
name="1submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>

Wizzums

unread,
Sep 24, 2009, 8:20:21 PM9/24/09
to reCAPTCHA
It looks like you need some error checking in your send.php document.
The reCaptcha code you copy and pasted into the document is only
displaying the captcha box on the form. Once they hit submit, the
page and all of the form values are sent to send.php (where your
form's action is specified). This is where your error checking needs
to take place, such as:

require_once('recaptchalib.php');
$publickey = "<blah>";
$privatekey = "<blah>";

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

# are we submitting the page?
if ($_POST["1submit"]) {
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);

if ($resp->is_valid) {
echo "You got it!";
# in a real application, you should send an email, create an
account, etc
} else {
# set the error code so that we can display it. You could also use
# die ("reCAPTCHA failed"), but using the error message is
# more user friendly
$error = $resp->error;
}
}


Also, I must ask. I see these includes at the top of your file:
<!--#include file="_code.asp" -->
<!--#include file="_meta.asp" -->

Which are obviously ASP includes. Your form is submitting to a PHP
page. Just curious, is all.
Reply all
Reply to author
Forward
0 new messages