config.php配置
$config
[
'sess_driver'
] =
'files'
;
//以文件存储session
$config
[
'sess_cookie_name'
] =
'ci_session'
;
$config
[
'sess_expiration'
] = 7200;
$config
[
'sess_save_path'
] = APPPATH.
'/data/session'
;
//配置session路径
$config
[
'sess_match_ip'
] = FALSE;
$config
[
'sess_time_to_update'
] = 300;
$config
[
'sess_regenerate_destroy'
] = true;
登录的时候可以看到路径 system/data/session/下文件已生成
然而却登录失败,查出原因
system/libraries/Session/Session.php
一直走unset
如果sessionid的长度不是40的话,每次执行都会 unset($_COOKIE[ci_session])。而session_id取值范围和长度在php7中变了(我这边的默认是ad_username 11)
解决办法:
将上面的/^[0-9a-f]{40}$/, 改成 /^[0-9a-z]{10,40}$/ 即可登录