繁体   English   中英

查看包含Cookie,JavaScript和移动设备重定向的完整网站

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM