php7.3升級后CI框架session失效session不能讀取的問題


php7.3升級后CI框架session失效session不能讀取的問題

框架ci3.0.2,php服務器從5升級到7.x后發現session失效了
ci無法設置session的問題
根本原因在,libraries/Session/Session.php 中 133行:

// Sanitize the cookie, because apparently PHP doesn't do that for userspace handlers
        if (isset($_COOKIE[$this->_config['cookie_name']])
            && (
                ! is_string($_COOKIE[$this->_config['cookie_name']])
                OR ! preg_match('/^[0-9a-z]{10,40}$/', $_COOKIE[$this->_config['cookie_name']])
            )
        )
        {
            unset($_COOKIE[$this->_config['cookie_name']]);
        }

        session_start();

 


如果sessionid的長度不是40的話,每次執行都會 unset($_COOKIE[ci_session])。而session_id取值范圍和長度在php7中變了(默認是26)

解決辦法:
將上面的/^[0-9a-f]{40}$/, 改成 /^[0-9a-z]{10,40}$/


免責聲明!

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



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