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的聲明

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM