为什么这段代码不起作用?
<?php
$var = '<script type="text/javascript">
var displayStr = "";
switch(window.orientation)
{
case 0:
displayStr += "mobile";
break;
case -90:
displayStr += "mobile";
break;
case 90:
displayStr += "mobile";
break;
case 180:
displayStr += "mobile";
break;
default:
displayStr += "steddy";
}
document.write(displayStr);
</script>';
if($var == "steddy") {
echo 'non rotatable';
} elseif($var == "mobile") {
echo 'rotatable';
}
?>
是的我知道这不是最好的方法,但我不明白为什么这不起作用。 如果您只是回显$ var,它会很好地显示它,但“if”无法识别它。 请帮忙......
答案 0 :(得分:1)
你在这里得到的是PHP字符串中的javascript代码。该代码没有执行,就PHP而言只是一些文本。
此设置中这两种语言的正确使用模式是:服务器首先运行PHP,客户端(浏览器)运行javascript秒。不幸的是,你不能只是将JavaScript注入到PHP的中间并让它工作。
答案 1 :(得分:0)
嗯......这就行了。
<?php
if($_COOKIE[rotatable] != "nope" && $_COOKIE[rotatable] != "yes") {
if($_POST[rotatable] == "") {
echo '
<form method="post" action="test.php" name="setType">
<input type="hidden" name="rotatable" id="screen" value="">
<script language="JavaScript">
var displayStr = "";
switch(window.orientation)
{
case 0:
displayStr += "yes";
break;
case -90:
displayStr += "yes";
break;
case 90:
displayStr += "yes";
break;
case 180:
displayStr += "yes";
break;
default:
displayStr += "nope";
}
var s = document.getElementById("screen");
s.value = displayStr;
</script>
<script language="JavaScript">
document.setType.submit();
</script>
</form>
';
} elseif($_POST[rotatable] == "nope") {
setcookie("rotatable", "nope", time()+3600);
header("location: test.php");
} elseif($_POST[rotatable] == "yes") {
setcookie("rotatable", "yes", time()+3600);
header("location: test.php");
}
}
// Here comes the content of the site.
if($_COOKIE[rotatable] == "nope") {
echo 'non rotatable';
} elseif($_COOKIE[rotatable] == "yes") {
echo 'rotatable';
}
?>
感谢你的所有人......