[英]View full site with cookies, javascript and mobile redirect
我有一个网站(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 cookie force_desktop并且screen.width <= 699
然后重定向到m.myseite.com
其他
出口
注意
我已经运行以下脚本,以确保正在放置cookie。
<?php
print_r($_COOKIE);
?>
我已经没有足够的想法了,并且知道我的编码是不正确的,尤其是If / Else语句中的If / Else语句。 我也不确定是否最好使用“ isset”来查看是否正在使用cookie或($ _COOKIES ['variable'] ==“#”)。 我非常感谢您对此提供的良好反馈。
预先感谢您的帮助和建议,
马特
您正在混合使用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>';
};
您应该在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>';
}
?>
您不能将javascript和PHP混合使用,javascript是前端,而PHP是后端。 尝试这样的事情:
if( $something ){
Header("Location: somewhere.php");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.