查看完整的网站与cookie,JavaScript和移动重定向

时间:2013-07-24 17:58:15

标签: php javascript 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 force_desktop且屏幕宽度<= 699

然后重定向到m.myseite.com

否则

退出

注意

我运行了以下脚本以确保放置了一个cookie,它就是。

<?php
print_r($_COOKIE);
?>

我已经没有想法并且知道我的编码不正确,尤其是If / Else语句中的If / Else语句。我也不确定是否最好使用“isset”来查看cookie是否被使用或($ _COOKIES ['variable'] ==“#”)。我真的很感激这个问题的一些好的反馈。

提前感谢您的帮助和建议,

马特

3 个答案:

答案 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");

}