2016-01-07 68 views
1

問題很簡單。如果我使用使用PHP7的Codeigniter中的會話

$this->session->sess_destroy(); 
$this->session->sess_regenerate(true); 

我得到一個錯誤:

Message: session_regenerate_id(): Cannot regenerate session id - session is not active 
Filename: Session/Session.php 
Line Number: 625 

,只有擁有PHP 7發生,與5.6的作品。 我認爲重新生成函數中的參數設置爲在重新生成時銷燬舊的會話數據。當我離開sess_destroy()時,我沒有收到錯誤,但會話數據沒有被銷燬,我也無法將用戶登出。

+0

我使用Codeigniter版本3.03 – Chris

+0

使用較新版本3.0.4 https://github.com/bcit-ci/CodeIgniter/commit/79b8a086187f199bb708bd56477850fbf1dd9e91 – ahmad

回答

2

在會話庫之前使用ob_start()。而在此之前會破壞代碼添加ob_flush()並設置ob_clean()


並將此$this->session->sess_regenerate(true);FALSE該行之後。 ob_flushob_clean將完美地做到這一點。