所以,在一个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>';
}
?>
从我在网上看到的内容来看,这似乎是一种合法的做事方式,但该页似乎正在阅读第一部分,直到第一个关闭的雪佛龙(见下文)作为评论。 / p>
<?php
echo "This was legitimately hit";
if(!empty($_POST['name']))
{
echo '<script type="text/javascript">
然后它以纯文本形式读取else和next echo,并将其放在网页上。然后,下一个javascript代码块被读作常规的javascript代码块,因此该页面会弹出一个说它没有得到名称的弹出窗口。然后关闭括号和关闭V形符号会输出更多文本。
所以最后页面最终会有
alert("We got the name")'; } else { echo ''; } ?>
以纯文本形式打印在其上,并且弹出窗口显示我们没有收到任何姓名。
这里出了什么问题?
答案 0 :(得分: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>
(这实际上与你已有的相同,所以也许我误解了目的。)
答案 1 :(得分:1)
在We got the signed request
和We got the name
之间,我认为您没有向我们提供导致错误的实际代码。仔细检查一下,确保在alert
电话之前没有任何迷路单引号。
答案 2 :(得分:0)
;
后缺少alert
。你有没有尝试过纠正这个?