广

织梦CMS教程

  • 帝国cms教程
  • 织梦CMS教程
  • PHP CMS教程
  • ECSHOP教程
  • WordPress教程
  • Discuz教程
  • CMS学习

    更换PHP 5.4以上版本后Dedecms后台登录空白的解决方法

    2018-04-02 20:51:06 次阅读 稿源:互联网
    广告

    今天把PHP的版本从5.2.14升到了5.4.15,升级完后dedecms后台却打开空白,检查了各种权限和文件,都没有问题,找来找去,原来是PHP版本函数的问题,它是用session_register来注册一个session变量,但是在php5.4以上中已经移除了这个功能

    解决办法:

    找到include/userlogin.class.php,里面有一个keepuser()函数,它是用session_register来注册一个session变量,但是在php5.4中已经移除了这个功能,见官网介绍:

    如果使用的该php版本肯定会出错的,不过我们可以修改下代码:

    把@session_register($this->keepUserIDTag); 注释掉,然后改为

    1. if (!isset($_SESSION[$this->keepUserIDTag])) 

    一共有六个,全部改为下面这样:

    1. if (!isset($_SESSION[$this->keepUserIDTag])) 
    2. //@session_register($this->keepUserIDTag); 
    3.  
    4. $_SESSION[$this->keepUserIDTag] = $this->userID; 
    5.  
    6. if (!isset($_SESSION[$this->keepUserTypeTag])) 
    7. //@session_register($this->keepUserTypeTag); 
    8.  
    9. $_SESSION[$this->keepUserTypeTag] = $this->userType; 
    10.  
    11. if (!isset($_SESSION[$this->keepUserChannelTag])) 
    12. //@session_register($this->keepUserChannelTag); 
    13.  
    14. $_SESSION[$this->keepUserChannelTag] = $this->userChannel; 
    15.  
    16. if (!isset($_SESSION[$this->keepUserNameTag])) 
    17. //@session_register($this->keepUserNameTag); 
    18.  
    19. $_SESSION[$this->keepUserNameTag] = $this->userName; 
    20.  
    21. if (!isset($_SESSION[$this->keepUserPurviewTag])) 
    22. //@session_register($this->keepUserPurviewTag); 
    23.  
    24. $_SESSION[$this->keepUserPurviewTag] = $this->userPurview; 
    25.  
    26. if (!isset($_SESSION[$this->keepAdminStyleTag])) 
    27. //@session_register($this->keepAdminStyleTag); 
    28.  
    29. $_SESSION[$this->keepAdminStyleTag] = $adminstyle

    重新进入后台登录,就可以正常跳转到管理页面了。

    因为对PHP并不熟,网上一般都说是data/common.inc.php文件编码的问题,把编码要改为无BOM格式文件保存,居然没有说是php5.4版本的问题

    另外一种方法:

    在include/helpers/util.helper.php末尾加入以下代码

    1. function fix_session_register(){    
    2.     function session_register(){    
    3.         $args = func_get_args();    
    4.         foreach ($args as $key){    
    5.             $_SESSION[$key]=$GLOBALS[$key];    
    6.         }    
    7.     }    
    8.     function session_is_registered($key){    
    9.         return isset($_SESSION[$key]);    
    10.     }    
    11.     function session_unregister($key){    
    12.         unset($_SESSION[$key]);    
    13.     }    
    14. }    
    15. if (!function_exists('session_register')) fix_session_register(); 

    这样php5.4下dedecms就能正常使用了。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告