2

因此,在一个 html 页面中,我试图让一个 php 段回显一些 javascript 代码,如下所示:

<?php
    echo "This was legitimately hit";
    if(!empty($_POST['name']))
    {
        echo '<script type="text/javascript">alert("We got the name");</script>';
    }
    else
    {
        echo '<script type="text/javascript">alert("We DID NOT get the name");</script>';
    }
?>

从我在网上阅读的内容来看,这似乎是一种合法的做事方式,但该页面似乎正在阅读第一部分,直到第一个关闭的雪佛龙(见下方)作为评论。

<?php
    echo "This was legitimately hit";
    if(!empty($_POST['name']))
    {
        echo '<script type="text/javascript">

然后它将 else 和 next echo 读取为纯文本,并将其放在网页上。然后下一个 javascript 代码块被读取为常规 javascript 代码块,因此该页面会弹出一个提示它没有获得名称的弹出窗口。然后右方括号和关闭人字形将输出为更多文本。

所以最后页面只是结束了

alert("We got the name")'; } else { echo ''; } ?>

以纯文本形式打印在其上,并弹出一个提示我们未收到姓名的弹出窗口。

这里出了什么问题?

4

3 回答 3

4

听起来该文件没有作为 PHP 处理。文件名是否以 .php 结尾?您确定 PHP 已安装并正确连接到 Web 服务器吗?

编辑:在同一页面处理 Facebook 请求:

<?php

if (isset($_POST['facebook_request_field'])) {
  // handle the Facebook request, output any necessary response
  // then exit
  exit;
}

?>
<!-- display the web page normally here -->

所以对于你的测试页:

<?php

if (isset($_POST['name'])) {
  echo '<script type="text/javascript">alert("got a name!");</script>';
  exit;
}

?>
<script type="text/javascript">alert("No name.");</script>

(这实际上与您已经拥有的功能相同,所以也许我误解了目的。)

于 2012-06-01T19:08:04.153 回答
1

We got the signed requestand之间We got the name,我认为您没有向我们提供导致错误的实际代码。alert仔细检查,并确保您在通话之前没有任何杂散的单引号。

于 2012-06-01T19:09:29.880 回答
0

;后面有缺失alert。您是否尝试过先纠正此问题?

于 2012-06-01T19:09:22.590 回答