我有一个非常简单的问题。我使用以下简单的PHP if / else语句。如果nomobile
未定义或不等于“true”,则应执行下面显示的javascript。如果它等于true,那么它不应该执行。但是,即使nombobile
= true,javascript也会执行。可能有一个小小的错字让一切搞得一团糟,但我正在疯狂地试图找出错误而无法解决问题。
<?php
if ($_GET["nomobile"]!="true")
{echo '
<script type="text/javascript">
if (screen.width <= 699) {
document.location = "http://www.heliohost.org/m/";
}
</script>';}
else {} ?>
答案 0 :(得分:2)
你是不是在检查是否设置了$ _GET值?把你的这个陈述转换成代码应该产生这个:
当nomobile未定义或不等于“true”
时
if (!isset($_GET["nomobile"]) || $_GET["nomobile"] != "true"){ ... }
如果没有设置,可能会出现问题。
我希望有所帮助!
答案 1 :(得分:1)
我认为问题在于你的Javascript。通过提醒(或记录它或者您选择这样做),验证screen.width
是否评估小于或等于699的号。
为了澄清,当我尝试浏览http://www.heliohost.org/?nomobile=true时,我会在您的代码中看到Javascript。如果我尝试浏览http://www.heliohost.org/或http://www.heliohost.org/?nomobile=foo,那么Javscript就不存在了。这告诉我你的Javascript没有达到预期的效果,而不是PHP代码存在问题。
答案 2 :(得分:0)
if(!isset($_GET['nomobile']) || (isset($_GET['nomobile']) && $_GET['nomobile'] != "true")){
echo '<script type="text/javascript">
if (screen.width <= 699) {
document.location = "http://www.heliohost.org/m/";
}
</script>';
}
答案 3 :(得分:-2)
删除双引号。
<?php
if ($_GET["nomobile"]!=true) {
echo '<script type="text/javascript"> if (screen.width <= 699) { document.location = "http://www.heliohost.org/m/"; } </script>';
}
else {}
?>