最近一段時間一直沒有寫博文,一直都在找工作,剛找到工作,接手以後第一件事兒就是要做一個dede的移站,都是linux系統,網站轉移完畢以後,卻發現輸入以後地址是空白的,必須在後面加login.php才可以登入,而且點擊登出也是空白頁。百度了很多也沒有找到,現在把方法總結一下,公布給大家。
解決方式一:
原因:include/common.inc.php,data/common.inc.php被修改,儲存的時候有BOM頭,一般是在utf8的編碼下才存在這個問題。
方法:ftp下載下來,然後用notepad++或者dw開啟,選擇UTF8無BOM頭儲存試試
解決方式二
原因:這個一般是因為環境是PHP5.4的原因,dede中的session_register被移除了
方法:
找include/userlogin.class.php裡面的keepuser()函數,把@session_register 全部改寫, 雖然不知道這個@是什麼意思把@session_register($this->keepUserIDTag); 注釋掉,然後改為if (!isset($_SESSION[$this->keepUserIDTag]))全部有6個。如下:if (!isset($_SESSION[$this->keepUserIDTag]))//@session_register($this->keepUserIDTag);$_SESSION[$this->keepUserIDTag] = $this->userID;if (!isset($_SESSION[$this->keepUserTypeTag]))//@session_register($this->keepUserTypeTag);$_SESSION[$this->keepUserTypeTag] = $this->userType;if (!isset($_SESSION[$this->keepUserChannelTag]))//@session_register($this->keepUserChannelTag);$_SESSION[$this->keepUserChannelTag] = $this->userChannel;if (!isset($_SESSION[$this->keepUserNameTag]))//@session_register($this->keepUserNameTag);$_SESSION[$this->keepUserNameTag] = $this->userName;if (!isset($_SESSION[$this->keepUserPurviewTag]))//@session_register($this->keepUserPurviewTag);$_SESSION[$this->keepUserPurviewTag] = $this->userPurview;if (!isset($_SESSION[$this->keepAdminStyleTag]))//@session_register($this->keepAdminStyleTag);$_SESSION[$this->keepAdminStyleTag] = $adminstyle;然後就可以登入後台了。
解決方式三:
找到:include/common.inc.php檔案,開啟,尋找程式碼:
//error_reporting(E_ALL);
error_reporting(E_ALL || ~E_NOTICE);
替換為:
error_reporting(E_ALL);
//error_reporting(E_ALL || ~E_NOTICE);
這一步很重要,因為它會告訴你為什麼變成空白的提示資訊,儲存之後再次進入管理後台,這個時候會發現後台會有一句話提示了,原文提示是:
Parse error: parse error in D:\wwwroot\pcpps\Web\data\config.cache.inc.php on line 44 找到之後先把上面的改回來,然後我們從錯誤提示上來分析。
從中我們可以現在在網站根目錄的data\config.cache.inc.php on line 44有問題,然後我就把以前正常時備份過的data\config.cache.inc.php 重新上傳全覆蓋後問題就解決了.到此排除了dede後台登陸一片空白的問題。
以上是原文,我的提示情況則不一樣,DEDE告訴我是plugins下的run.php檔案出錯,於是我通過FTP一看,遠程伺服器上的run.php檔案已經沒了,於是把本地的run.php檔案傳上去,問題解決。)
解決方案四:在include/common.inc.php最開始添加ob_start()試試,如果不行的話就看php.ini中是否開啟了output_buffering是否為on如果不是則試試改成on試試,記得重啟apache(我就是用這種方法解決的)
解決方案五:某些版本的dede中可能會存在此問題,看install中的install_lock.txt是否存在,不存在的話建立試試。
時間很短,也沒時間去看原始碼,百度了很多都很不靠譜,誤導了很多朋友,這次專門總結了一下。呵呵,希望大家可以加群252799167一起交流討論。
本文出自 “尛雷” 部落格,請務必保留此出處http://a3147972.blog.51cto.com/2366547/1272057