2017-08-18 100 views
0

我正在使用codeigniter版本3.0.6PHP 5.6它工作正常。但是當我在PHP 7.1上運行同一個項目時,codeigniter會話不起作用。我定會像下面Codeigniter會話不能在PHP 7上工作

$login_session = $this->session->set_userdata("user_session",$session_data); 

當我打印$ login_session它是在PHP 7

+1

https://stackoverflow.com/questions/43718961/codeigniter-3-session-not-working-with-php-7-1-4 –

+0

你檢查了Bug問題嗎? https://開頭github上。COM/BCIT-CI /笨/問題/ 4830 –

+0

下面是解檢查,如果它的工作原理:http://www.jianshu.com/p/4bf22c8af19d –

回答

0

空白,我發現這個問題是笨3的一些早期版本,並且這是在已報告的錯誤他們的網站。該錯誤已得到修復,並且在最新版本的Codeigniter 3中,這個問題不會發生。

如果您已經在錯誤的版本cogeinter考慮替換系統文件夾與最新版本的一個。

找到這個答案here

+0

這是複製答案,並在上面的線程中給出。你爲什麼要複製這個,而不是給URL? –

+0

因爲網站的文章可能不再可用。 – manix

0

的問題是從你的PHP版本,PHP 7.1是不是真的穩定,並有很多與會議的問題。將您的PHP版本更改爲7.0,會話將自動開始工作。

+0

請解釋我最近從php5.6切換到php7.1的投票 –

+0

。會議立即停止工作。這個建議是唯一對我有用的東西。重新安裝codeigniter核心並檢查我的會話配置沒有幫助。不過,我有幾個版本的PHP可用,當我從7.1切換到7.0時,我的會話再次工作。 –

0

確保您已設置的會話保存路徑

$config['sess_driver'] = 'files'; 
$config['sess_cookie_name'] = 'ci_session'; 
$config['sess_expiration'] = 7200; 
$config['sess_save_path'] = APPPATH . 'cache/session/'; 
$config['sess_match_ip'] = FALSE; 
$config['sess_time_to_update'] = 300; 
$config['sess_regenerate_destroy'] = FALSE; 

設置文件夾的權限0700,如果你想

$autoload['libraries'] = array('session'); 

如何設置會話

$session = array('islogged' => true, 'user_id' => '1'); 

$this->session->set_userdata($session); 

自動加載會議

獲取用戶數據一組示例

echo $this->session->userdata('user_id'); 

if (!$this->session->userdata('islogged')) { 
    redirect('logout'); 
} 
0

我設法通過執行以下步驟來克服此問題。

1)轉到system/libraries/Session/Session.php

2)加入//搜索session_start()註釋session_start()

3)再往周圍行312(或搜索Security is king)和註釋掉所有ini_set()

ini_set('session.use_trans_sid', 0); 
ini_set('session.use_strict_mode', 1); 
ini_set('session.use_cookies', 1); 
ini_set('session.use_only_cookies', 1); 
ini_set('session.hash_function', 1); 
ini_set('session.hash_bits_per_character', 4); 

4)然後轉到您的index.php(根的index.php)

5)在頂部添加session_start()

6)以下session_start()添加以下行註釋掉在Session.php

ini_set('session.use_trans_sid', 0); 
ini_set('session.use_strict_mode', 1); 
ini_set('session.use_cookies', 1); 
ini_set('session.use_only_cookies', 1); 
ini_set('session.hash_function', 1); 
ini_set('session.hash_bits_per_character', 4); 

就是這樣。