我正在关注如何在cakephp2.2.5项目中添加recaptcha的this教程。不幸的是,每当我点击提交按钮时,我的控制器中都会出现“invalid-request-cookie”错误。这是我的控制器中的代码
if ($this -> request -> is('post')) {
$url = 'http://www.google.com/recaptcha/api/verify';
$ch = curl_init($url);
$post = array("privatekey" => "...",
"remoteip" => $_SERVER["REMOTE_ADDR"],
"challenge"=>$this->request->data["recaptcha_challenge_field"],
"response" => $this->request->data["recaptcha_response_field"]);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($post));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
var_dump($response);
}
如果我不使用ajax并使用以下代码
$resp = recaptcha_check_answer ('...',
$_SERVER["REMOTE_ADDR"],
$this->request->data["recaptcha_challenge_field"],
$this->request->data["recaptcha_response_field"]);
我的$ resp变量中出现相同的错误。 我已经包含https://www.google.com/recaptcha/api/js/recaptcha_ajax.js了。 我也有
echo "<div id='recaptcha_div'></div>";
在我的View文件中。
我已经尝试过了
教程,但那个我有更多的错误。所以我正在使用简单的教程。任何帮助都会很棒。
答案 0 :(得分:0)
我认为你是在localhost中使用此代码。如果是这样,那么api将无效。 api用api密钥检查url。因此,如果您使用某个网址注册并尝试在其他网站上进行测试,那么api将无效。您可以在教程http://blog.jambura.com/2013/01/02/use-recaptcha-in-cakephp-app/?fb_comment_id=fbc_576497325700235_7768923_699586046724695#f2d979a62c
中查看此评论答案 1 :(得分:0)
我使用服务器端检查。我正在做客户端和服务器端检查,因此它无法工作。