我已经在我的.html
文件上启用了php解析,并在我的一个表单上使用了Google recaptcha。
验证码如下:
...
if ($_POST["recaptcha_response_field"]) {
$resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);
if ($resp->is_valid) {
echo "You got it!";
} else {
$error = $resp->error;
}
}
...
代码在if ($resp->is_valid)
部分卡住了,因为大于号。
我怎么能逃脱呢?
.
编辑
对不起的问题,我发现,错误不是因为HTML终止代码时,它遇到了大于号,但因为PHP不是真正解析页面。我在HTML文件上启用PHP解析的过程是通过在我的.htaccess
AddHandler php5-script .html
我在本地添加并测试了代码,PHP正在工作,但captcha当然没有显示,因为recaptcha的私钥/公钥是我正在工作的域。我将.htaccess
上传到域服务器上,当我加载页面时,它显示了以下文本:
is_valid) { echo "You got it!"; } else { $error = $resp->error; } }
当时,我认为这是HTML遇到大于号时破坏我代码的问题。
所以问题实际上是下面的代码不能在服务器上工作,但在本地工作。
AddHandler php5-script .html
我找到了其他方法来启用php解析HTML文件,如:
AddType application/x-httpd-php html
但这是有问题的,当我访问这个页面时,它提示我下载或保存文件。有一个解决方案,我在论坛上读到编辑httpd.conf文件的东西,但我不能真正得到我的手在那个文件(我被拒绝访问)。所以u-uhm。叹息。
感谢您的回复。
你需要用<?php
和?>
包装你的php代码。然后你的PHP引擎会将你的html解析为PHP代码。
正如@xomplex857在评论中所说,你有<?php
开始标签吗?
我假设你有它,但你的问题是,你的IDE/编辑器是关联.html
文件与HTML语法,并没有检查真正是什么里面,所以它没有意识到,你正在写嵌入式php代码里面。因此,它将其视为HTML元素的结束标记。
没有问题。php引擎会正确处理它,你不需要转义。
问题可能出在你的代码中。打开所有调试选项,查看php/apache2错误日志