我有一个网站(www.website.com)和一个移动网站(m.website.com),我试图允许用户“查看完整网站”,如果他们想从移动设备。目前我正在使用一些Javascript来检查整个网站的屏幕宽度,然后重定向到移动设备。
if (screen.width <= 699) {
document.location = "http://m.website.com";
}
这很好用。在移动网站上有一个“查看完整网站”按钮。当您单击此按钮时,它会将您重定向到我的脚本“force_desktop.php”,该脚本会设置一个cookie,然后将您发送到主站点。
<?php
setcookie("force_desktop", "1");
header("Location: http://www.mywebsite.com");
?>
现在我们设置了一个cookie并重定向到主网站,我们需要检查cookie而不是检查屏幕宽度。
逻辑
如果找到Cookie force_desktop
然后退出
否则
运行屏幕尺寸测试
这是我尝试使用但不起作用的代码。此代码放在我的head.php文件中,该文件将在每个页面上运行,并放在脚本开始和结束标记之间。
尝试1
if($_COOKIE['force_desktop'] == '1' {
exit;
} else if($_COOKIE['force_desktop'] != '1' {
if (screen.width <= 699) {
document.location = "http://m.website.com";
}
};
尝试2
if(isset ($_COOKIE["force_desktop"])){
exit;
else
if (screen.width <= 699) {
document.location = "http://m.mywebsite.com";
};
可行的替代逻辑
如果未找到Cookie force_desktop且屏幕宽度<= 699
然后重定向到m.myseite.com
否则
退出
注意
我运行了以下脚本以确保放置了一个cookie,它就是。
<?php
print_r($_COOKIE);
?>
我已经没有想法并且知道我的编码不正确,尤其是If / Else语句中的If / Else语句。我也不确定是否最好使用“isset”来查看cookie是否被使用或($ _COOKIES ['variable'] ==“#”)。我真的很感激这个问题的一些好的反馈。
提前感谢您的帮助和建议,
马特
答案 0 :(得分:2)
您正在混合使用JavaScript和PHP。您试图在PHP脚本中使用screen.width
,这没有意义。您需要使用echo语句将JavaScript输出到页面中。然后它会检查用户的屏幕分辨率并进行重定向。
试试这个:
if(isset ($_COOKIE["force_desktop"])){
exit;
}
else
{
echo '<script>
if (screen.width <= 699) {
document.location = "http://m.mywebsite.com";}
</script>';
};
答案 1 :(得分:0)
你应该在php页面的顶部做这个测试,并且肯定你不能像这样混合php和java脚本
你可以像那样改变这段代码<?php
$flag = 0;
if(isset($_COOKIE['force_desktop']))$flag++;
?>
页面后面的会在<head>
标记开始后立即使用代码
..
..
<head>
<?php
if(!$flag){
echo '<script>
if (screen.width <= 699) {
document.location = "http://m.mywebsite.com";
</script>';
}
?>
答案 2 :(得分:-1)
你不能混合使用javascript和PHP,javascript是前端而PHP是后端。尝试这样的事情:
if( $something ){
Header("Location: somewhere.php");
}