0

.html我已经在我的文件和我使用Google recaptcha的表单之一上启用了 PHP 解析。

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 正在运行,但验证码当然没有显示,因为 recaptcha 的私钥/公钥是针对我正在处理的域的。我在域服务器上上传了.htaccess,当我加载页面时,它显示以下文本:

is_valid) { echo "You got it!"; } else { $error = $resp->error; } }

那时,我认为 HTML 在遇到大于号时会破坏我的代码是一个问题。

所以问题确实是下面的代码在服务器上不起作用但在本地工作。

AddHandler php5-script .html

我找到了其他在 HTML 文件上启用 PHP 解析的方法,例如:

AddType application/x-httpd-php html

但这是有问题的,当我访问该页面时,它会提示我下载或保存文件。我在论坛上阅读了一种解决方法来编辑 httpd.conf 文件上的某些内容,但我无法真正掌握该文件(我被拒绝访问)。所以嗯。叹。

道歉并感谢您的回复。

4

2 回答 2

0

正如@xomplex857 在评论中所说,你有<?php开始标签吗?

我假设你有它,但你的问题是你的 IDE/编辑器正在将.html文件与 HTML 语法相关联,并没有真正检查里面的内容,所以它没有意识到你正在编写嵌入的 php 代码。因此,它将其视为 HTML 元素的结束标记。

这没有问题。php引擎会正确处理它,你不必逃避它。

问题可能在于您的代码中存在一些缺陷。启用所有可以的调试选项,查看 php/apache2 错误日志。

于 2013-06-11T10:18:40.567 回答
0

您需要用<?php和包装您的 php 代码?>。然后您的 PHP 引擎会将您的 html 解析为 PHP 代码。

于 2013-06-11T10:15:56.403 回答