cakephp + recaptcha问题

时间:2013-09-12 18:45:47

标签: php ajax cakephp recaptcha

我正在关注如何在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文件中。

我已经尝试过了

  

https://github.com/CakeDC/recaptcha

教程,但那个我有更多的错误。所以我正在使用简单的教程。任何帮助都会很棒。

2 个答案:

答案 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)

我使用服务器端检查。我正在做客户端和服务器端检查,因此它无法工作。