现在的位置: 首页 > 综合 > 正文

dedecms后台/dede/login.php登录空白,或无法登陆显示500 错误解决办法

2013年11月16日 ⁄ 综合 ⁄ 共 1696字 ⁄ 字号 评论关闭

转载自:http://fuyun365.diandian.com/gongju/php5-4-dedecms-background-dede-login-php-login-blank-solution.html

 

 

今天把电脑上的phpStudy升级到2013版。在登录本地织梦dedecms5.7时,/dede/login.php居然显示空白。由于周五我安装了
windows8
,因为是电脑问题,等我关掉防火墙配置好电脑服务后,发现还是不行。在百度后终于得到高人的日志指点。

原因很简单,phpstudy2013版是用的php5.4,而dedecms的login.php中使用了一个被php5.4抛弃不用的函数(是不是真的抛弃我不知道,反正原文这么写的)

session_register()
意思就是这说个函数不能用了,想用也用不了。方法很简单,直接注释掉,不用进行注册就可以声明session。
在dedecms目录include/userlogin.class.php中查找
function keepUser()
大概在281行,把keepUser()函数下的 @session_register(); 整段注释掉(删除也可以),结果如下:

  1. function keepUser()  
  2. {  
  3.     if($this->userID !=
    '' && $this->userType !=
    '')  
  4.     {  
  5.         global $admincachefile,$adminstyle;  
  6.         if(emptyempty($adminstyle))
    $adminstyle = 'dedecms';  
  7.  
  8.         //@session_register($this->keepUserIDTag);
     
  9.         $_SESSION[$this->keepUserIDTag] =
    $this->userID;  
  10.  
  11.         //@session_register($this->keepUserTypeTag);
     
  12.         $_SESSION[$this->keepUserTypeTag] =
    $this->userType;  
  13.  
  14.         //@session_register($this->keepUserChannelTag);
     
  15.         $_SESSION[$this->keepUserChannelTag] =
    $this->userChannel;  
  16.  
  17.         //@session_register($this->keepUserNameTag);
     
  18.         $_SESSION[$this->keepUserNameTag] =
    $this->userName;  
  19.  
  20.        // @session_register($this->keepUserPurviewTag);
     
  21.         $_SESSION[$this->keepUserPurviewTag] =
    $this->userPurview;  
  22.  
  23.         //@session_register($this->keepAdminStyleTag);
     
  24.         $_SESSION[$this->keepAdminStyleTag] =
    $adminstyle;  
  25.  
  26.         PutCookie('DedeUserID', $this->userID, 3600 * 24, '/');  
  27.         PutCookie('DedeLoginTime', time(), 3600 * 24, '/');  
  28.           
  29.         $this->ReWriteAdminChannel();  
  30.           
  31.         return 1;  
  32.     }  
  33.     else 
  34.     {  
  35.         return -1;  
  36.     }  

另外的解决方法就是在include/userlogin.class.php 中声明一个函数

  1. function session_register()
  2. {
  3. return true;

 

抱歉!评论已关闭.