这是我的表单代码:
echo '
<div class="ctext" id="form">
<table><form method="post" action="prashanja.php">
<tr><td>Name:</td><td><input type="text" name="name"/></td></tr>
<tr><td>Question:</td><td><textarea cols="55" rows="4" name="prashanje"> </textarea></td></tr>
<tr><td></td><td >' . recaptcha_get_html($publickey) . '<button name="btn" value="submit">Enter</button></td></tr>
</form></table>
</div>';
这是验证码:
if (isset($_POST['btn'])) {
$name = mysql_real_escape_string(strip_tags($_POST['name']));
$prashanje = mysql_real_escape_string(strip_tags($_POST['prashanje']));
$date = time();
# 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) {
$query = "INSERT INTO prashanja VALUES(NULL,'$name','$prashanje','','$date')";
if (!mysql_query($query))
echo 's... happens';
else
echo 'cool';
} else {
# set the error code so that we can display it
$error = $resp->error;
}
}
}
这些细分受众群在同一页面上。第一个段生成表单,第二个段检查是否按下了正确的按钮,初始化变量,然后检查重新计算并执行一些操作。我收到错误“Undefined index:recaptcha_response_field”。我怀疑如果验证是在与发送变量的表单相同的页面上完成的,则recaptcha将不起作用。我的怀疑是否正确,如果我将验证码移动到另一个文件会更好吗?
答案 0 :(得分:3)
如果您在同一页面上进行验证,则此功能正常。 您正在访问变量以进行检查:
if ($_POST["recaptcha_response_field"]) {
最有可能导致错误,应该是
if (isset($_POST["recaptcha_response_field"])) {
答案 1 :(得分:1)
移动 形成 外面的标签 表 标签。我不知道为什么,但它有效。