我想回应一个javascript移动设备重定向到移动网站 但我必须给出一个“身份证”。使用重定向链接。这是我现在的代码:
<?
if (screen.width <= 800) {
window.location("mplayer.php?id=" . $_GET['id'] . "");
}
?>
但它给了我这个错误
注意:使用未定义的常量屏幕 - 假设&#39;屏幕&#39;在第16行的/home/jterweele/public_html/pack-simulator/16/player.php
注意:使用未定义的恒定宽度 - 假设&#39;宽度&#39;在第16行的/home/jterweele/public_html/pack-simulator/16/player.php
注意:使用未定义的常量窗口 - 假设&#39;窗口&#39;在第17行的/home/jterweele/public_html/pack-simulator/16/player.php
致命错误:在第17行的/home/jterweele/public_html/pack-simulator/16/player.php中调用未定义的函数位置()
希望有人可以帮助我。 谢谢!
答案 0 :(得分:2)
JS和PHP是两种不同的动物,它们不会像你现在使用它们那样混合在一起,这解释了你得到的语法错误,因为你宣称PHP认为是常量。
你需要做的就是分开那些。
首先,JS / HTML:
<!DOCTYPE html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
<!--
if (screen.width <= 800) {
window.location = "redirection_page.php?set=true";
}
else {
document.write ("Show them a message, or do something else.");
}
//-->
</script>
</body>
</html>
然后PHP:(redirection_page.php)
<?php
if(isset($_GET['set']) && $_GET['set'] == true ){
header("Location: http://www.example.com/");
exit;
}
所以,在你的情况下会读到这样的东西:
N.B。:(您需要对GET数组进行一些修改。)
<!DOCTYPE html>
<head>
<title></title>
</head>
<body>
<?php
$_GET['id'] = 2;
?>
<script type="text/javascript">
<!--
if (screen.width <= 800) {
window.location = "mplayer.php?id=<?php echo $_GET['id'] ?>";
}
else {
document.write ("Show them a message, or do something else.");
}
//-->
</script>
</body>
</html>
PHP:(mplayer.php)
<?php
if(isset($_GET['id']) && $_GET['id'] == 2 ){
echo $id = $_GET['id'];
}
还要确保您没有在标题之前输出(这意味着PHP上方没有HTML,<?php
标记之前的空格,Cookie等等。如果这对您不起作用,那么您的系统可能未设置为捕获/显示错误/通知/警告,因此启用错误报告。
如果您确实看到标题已发送通知,请阅读Stack上的以下内容:
将error reporting添加到文件的顶部,这有助于查找错误。
<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
// rest of your code
旁注:只应在暂存时进行显示错误,而不是生产。