【发布时间】:2018-03-07 13:08:52
【问题描述】:
我知道以前有人问过这个问题,但我正在尝试将 reCAPTCHA 实施到我正在构建的网站上的简单联系表单中,但仍然无法正常工作。表单按预期正常工作,但是当我按照 Google 的说明实施 reCAPTCHA 时,无论是否检查 reCAPTCHA,都会提交表单。
我的php表单代码如下。
<?php
$action=$_REQUEST['action'];
{
$to="adam@cygnusdesign.com.au";
$name=$_REQUEST['name'];
$phone=$_REQUEST['phone'];
$email=$_REQUEST['email'];
$enquire=$_REQUEST['enquire'];
$message=$_REQUEST['message'];
$MESSAGE_BODY = "Name: ".$name."\n";
$MESSAGE_BODY .= "Phone No: ".$phone."\n";
$MESSAGE_BODY .= "Email: ".$email."\n";
$MESSAGE_BODY .= "Enquiring About: ".$enquire."\n";
$MESSAGE_BODY .= $message;
$secretKey = "keygoeshere";
$responseKey = $_POST['g-recaptcha-response'];
$userIP = $_SERVER['REMOTE_ADDR'];
$url = "https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$responseKey&remoteip=$userIP";
$response = file_get_contents($url);
$response = json_decode($responses);
if ($response->success)
{
$from="From: $name <$email>\r\nReturn-path: $email";
$subject="Message from $name about $enquire";
mail($to, $subject, $MESSAGE_BODY, $from);
header('Location: /sent.php');
}
else{
echo "All * fields are required, please fill out <a href=\"../contact.php\">the form</a> again.";
}
}
?>
【问题讨论】:
-
在验证任何输入值之前先验证验证码。如果没有错误则去发送数据
标签: php submit recaptcha verify