最近一段时间一直没有写博文,一直都在找工作,刚找到工作,接手以后第一件事儿就是要做一个dede的移站,都是linux系统,网站转移完毕以后,却发现输入以后地址是空白的,必须在后面加login.php才可以登录,而且点击注销也是空白页。百度了很多也没有找到,现在把方法总结一下,公布给大家。
解决方式一:
原因:include/common.inc.php,data/common.inc.php被修改,保存的时候有BOM头,一般是在utf8的编码下才存在这个问题。
方法:ftp下载下来,然后用notepad++或者dw打开,选择UTF8无BOM头保存试试
解决方式二
原因:这个一般是因为环境是PHP5.4的原因,dede中的session_register被移除了
方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
找
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是否存在,不存在的话新建试试。
时间很短,也没时间去看源代码,百度了很多都很不靠谱,误导了很多朋友,这次专门总结了一下