用ci寫了個登入頁,程式碼如下:
print_r($this->session->userdata());
$this->session->set_userdata('test',rand(564,489426354465));
echo '<br>';
print_r($this->session->userdata());
輸出:
Array ( [__ci_last_regenerate] => 1497598658 )
Array ( [__ci_last_regenerate] => 1497598658 [test] => 115826667932 )
無論刷新幾次頁面,session裡都不存在test
的值,只是__ci_last_regenerate
的時間戳增加了,請問這是為什麼?有人遇到過這情況嗎?
#檢查1,不是php配置問題,我在根目錄建了個php文件,程式碼如下,每次輸出都能輸出正確的session
session_start();
ob_start();
print_r($_SESSION);
$_SESSION['test'] = rand(456,4984945569);
print_r($_SESSION);
原來的ci版本是3.1.0 (/system/core/CodeIgniter.php中定義的一個常數),後來用3.1.3 的
system
中所有文件覆蓋了它,問題就解決了,這算是3.1. 0 的bug?之前是用 php5.5的,前幾天改成了 php7.1.4,不知道是不是這個原因導致的