我在我的主页上有这段代码
<?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版本,我插入了一个链接到这个几乎空的&#34; redirect.php&#34;页
<?php
$_SESSION['mobile']=0;
header("location: ../index.php");
exit;
?>
但我没有得到理想的行为:一旦我使用我的手机进入网站,我就被正确地重定向到移动版本,但是一旦我点击链接获取桌面版本,我就会重新回到移动版本。我错过了什么?
谢谢! :)
答案 0 :(得分:1)
请记住在使用会话之前调用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
链接到主页以切换到桌面版。
答案 1 :(得分:0)
根据您当前的代码 - 您应该有一个单独的会话var,告诉您用户已手动请求控制。
<?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;
?>