1. 程式人生 > >discuz手機瀏覽切換到電腦版後無法再切換到手機版,原理分析

discuz手機瀏覽切換到電腦版後無法再切換到手機版,原理分析

切換原理

discuz手機版切換電腦版,底部連結:電腦版,url末尾新增引數mobile=no, 新頁面會執行函式 source\class\discuz\discuz_application.php->init()->$this->_init_mobile() if(getgpc('mobile')==='no'){ dsetcookie('mobile','no',3600); $nomobile =true;} elseif($this->var['cookie']['mobile']=='no'&& getgpc('mobile')===
'yes'){
checkmobile(); dsetcookie('mobile','');} elseif($this->var['cookie']['mobile']=='no'){ $nomobile =true;} elseif(!checkmobile()){ $nomobile =true;} 設定有效期為1小時的mobile=no的cookie。 如果沒有傳引數,根據mobile=no的cookie, $nomobile =true; 在下面直接返回false; 並沒有設定常量IN_MOBILE, 面在
頁面在選擇模板時, if(
defined('IN_MOBILE')&&!defined('TPL_DEFAULT')&& strpos($file,'mobile/')===false||(isset($_G['forcemobilemessage'])&& $_G['forcemobilemessage'])){
$file ='mobile/'.$oldfile;}

只有IN_MOBILE被複制後,才會選擇moblie手機模板。