我在我的主页上有这个代码
<?php
if(isset($_SESSION['mobile'])){
if($_SESSION['mobile']==1){
echo '
<script>
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
window.location = "mobile/index.php";
}
</script>';
}
}
else{
$_SESSION['mobile']=1;
echo '
<script>
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
window.location = "mobile/index.php";
}
</script>';
}
?>在我的网站的移动版本上,为了返回到destop版本,我插入了一个几乎为空的"redirect.php“页面的链接
<?php
$_SESSION['mobile']=0;
header("location: ../index.php");
exit;
?>但我没有得到想要的行为:一旦我用手机进入网站,我会被正确地重定向到移动版,但一旦我点击链接获得桌面版,我就循环回到移动版。我遗漏了什么?
谢谢!:)
发布于 2014-09-30 00:35:25
记得在使用会话之前调用session_start()函数。
最好使用下面的代码来减少代码:
<?php session_start();
if (isset($_GET["desktop"])) {
// DESKTOP
$_SESSION["mobile"] = 0;
...
} else {
// MOBILE
if (!isset($_SESSION["mobile"])) { $_SESSION["mobile"] = 1; }
if ($_SESSION["mobile"] == 1){ echo '<script>...</script>'; }
...
}
?>并使用?desktop=1链接到主页以切换到桌面版本。
发布于 2014-09-30 00:47:47
根据您当前的代码-您应该有一个单独的会话变量,它告诉您用户已经手动请求了控制。
<?php
if(!$_SESSION['manuall_overide'])
if(isset($_SESSION['mobile'])){
if($_SESSION['mobile']==1){
echo '
<script>
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
window.location = "mobile/index.php";
}
</script>';
}
}
else{
$_SESSION['mobile']=1;
echo '
<script>
if( /Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent) ) {
window.location = "mobile/index.php";
}
</script>';
}
}
?>
<?php
$_SESSION['manuall_overide']=1;
header("location: ../index.php");
exit;
?>https://stackoverflow.com/questions/26104398
复制相似问题