尝试编译 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->success) AND $data->success==true)
试试if( property_exists( $data, 'success' ) && $data->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 中安装按钮时出现编译器错误