尝试编译 reCAPTCHA 代码时出现 PHP 语法错误?

Posted

技术标签:

【中文标题】尝试编译 reCAPTCHA 代码时出现 PHP 语法错误?【英文标题】:PHP syntax Error when attempting to compile reCAPTCHA code? 【发布时间】:2015-11-03 21:26:24 【问题描述】:

我正在尝试在我的网站上创建一个 reCAPTCHA 人工验证框,但是我无法通过我的 php 代码中的错误。我确定这很简单,我就是无法通过它。出于安全原因,我取出了我的网站和私钥。

我编译时的错误:

"FATAL ERROR 语法错误,意外';'在第 8 行"

这是我的代码,在此先感谢:

    <?php

    if(isset($_POST['ContactButton']))
        $url = 'https://www.google.com/recaptcha/api/siteverify';
        $privatekey = "--- My Private Key ---";
        $response = file_get_contents($url."?secret=".$#privatekey."&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']);

        $data = json_decode($response);

        if(isset($data->success) AND $data->success==true)
            ////true - what happens when user is verified
            header('Location: ExampleCaptcha.php?CaptchaPass=True');
        else
            ////false - what happens when the user ISNT verified
            header('Location: ExampleCaptcha.php?CaptchaFail=True');
        
    

?>




<html>
    <head>
        <title>index</title>
        <script src='https://www.google.com/recaptcha/api.js'></script>



    </head>
    <body>
        <form method='post' action='index.html'>
            <input type='text' name='inp' /><br>
            <div class="g-recaptcha" data-sitekey="--- My Site Key ---"></div><br>
            <input type='submit' /><br>
        </form>
    </body>
</html>

【问题讨论】:

第8行是哪一行? 而不是if(isset($data-&gt;success) AND $data-&gt;success==true)试试if( property_exists( $data, 'success' ) &amp;&amp; $data-&gt;success==true ) @RamRaider OP 可以对他的代码进行各种改进,但这与他们当前的问题无关。 @Martin 第 8 行是... $data = json_decode($response); 看我的回答,@IsaacWorley 我很确定问题出在你的file_get_contents 字符串中 【参考方案1】:

您的错误在这里:file_get_contents($url."?secret=".$#privatekey. 字符串中有一个哈希(注释)符号,看起来它在错误的位置,(错字?)...但是您的字符串整体看起来一团糟。改善这一点。错误将自行解决。

删除您错误放置的#。变量不能以符号开头。

...

$string = $url."?secret=".$#privatekey."&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR'];
                         ^^^^ //What's this? Remove '#' 

$response = file_get_contents($string);

【讨论】:

漂亮,错误已删除。但是,当尝试访问我网站上的 index.php 文件时,我收到 404 错误。如果我将文件扩展名切换为 index.html,reCAPTCHA 会完美加载,但 php 代码不会被执行,而是显示在我的网页顶部。关于为什么 php 文件不会执行的任何想法? pages 需要.php 才能运行 PHP 代码,我不知道为什么会出现错误 404——但这是一个经典的 File Not Found,所以要仔细检查文件是 URL 指向的位置。 @IsaacWorley 如果此答案解决了您的问题,请在我的答案旁边打勾。谢谢 :) @IsaacWorley

以上是关于尝试编译 reCAPTCHA 代码时出现 PHP 语法错误?的主要内容,如果未能解决你的问题,请参考以下文章

尝试在 android studio 中安装按钮时出现编译器错误

尝试运行已编译的 Cython 代码时出现“python39.dll not found”错误 [重复]

在mac中运行CGAL代码时出现编译错误

编译共享库时出现链接错误

禁止访问!尝试运行 php 文件时出现错误 403

编译PHP时出现错误示例