zoukankan      html  css  js  c++  java
  • dede登陆后台页面空白,dede注销页面空白的解决方案

    每个人与每个人的情况不同,解决方法不同。本例只说明我遇到的情况,不是万能的方法

    DEDECMS 5.7 UTF-8

    PHP5.4.7版本

    修改文件include/userlogin.class.php

    搜索function exitUser(),将下面的5行session_unregister替换成2行session_unset();session_destroy();

    示例

        function exitUser()
        {
            ClearMyAddon();
            session_unset();
            session_destroy();
            DropCookie('dedeAdmindir');
            DropCookie('DedeUserID');
            DropCookie('DedeLoginTime');
            $_SESSION = array();
        }

    搜索function keepUser(),将下面的@session_register……注释掉即可,6处

    示例

    if($this->userID != '' && $this->userType != '')
            {
                global $admincachefile,$adminstyle;
                if(empty($adminstyle)) $adminstyle = 'dedecms';
    
                //@session_register($this->keepUserIDTag);
                $_SESSION[$this->keepUserIDTag] = $this->userID;
    
                //@session_register($this->keepUserTypeTag);
                $_SESSION[$this->keepUserTypeTag] = $this->userType;
    
                //@session_register($this->keepUserChannelTag);
                $_SESSION[$this->keepUserChannelTag] = $this->userChannel;
    
                //@session_register($this->keepUserNameTag);
                $_SESSION[$this->keepUserNameTag] = $this->userName;
    
                //@session_register($this->keepUserPurviewTag);
                $_SESSION[$this->keepUserPurviewTag] = $this->userPurview;
    
                //@session_register($this->keepAdminStyleTag);
                $_SESSION[$this->keepAdminStyleTag] = $adminstyle;
    
                PutCookie('DedeUserID', $this->userID, 3600 * 24, '/');
                PutCookie('DedeLoginTime', time(), 3600 * 24, '/');
                
                $this->ReWriteAdminChannel();
                
                return 1;
            }

    说明,php5.4早就已经抛弃session_register和session_unregister这2个函数了,所以会出错。

    session_unset()  不带参数,释放当前在内存中已经创建的所有$_SESSION变量,但不删除session文件以及不释放对应的session id,没有返回值。

    session_destroy()  不带参数,删除当前用户对应的session文件以及释放session id,内存中的$_SESSION变量内容依然保留,成功返回true。

    session_unregister()  带参数,注销一个指定session变量,成功返回true。

    所以,释放用户的session所有资源,需要顺序执行如下代码:

    <?php
      session_unset();
      session_destroy();
    ?>

    php5可以不用声明session就可以使用,所以注销掉session的声明

  • 相关阅读:
    Java开发中的一些小技巧
    Java后端WebSocket的Tomcat实现
    Spring事务配置的五种方式 -- 越往后需要Spring版本越高
    Spring事务管理 -- 挺好
    java List 排序 Collections.sort() 对 List 排序
    java List 排序 Collections.sort()
    Java获得文件的创建时间(精确到秒)
    [JSP] c:forEach 输出序号 每行自动生成序号
    Unity3D研究院之在开始学习拓展编辑器
    同样的代码在java和c++中结果不同
  • 原文地址:https://www.cnblogs.com/xcxc/p/3103310.html
Copyright © 2011-2022 走看看