我的会话无法正常运作
这是我的配置:
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
$config['cookie_prefix'] = '';
$config['cookie_domain'] = '';
$config['cookie_path'] = '/';
$config['cookie_secure'] = FALSE;
$config['cookie_httponly'] = FALSE;
会话实际上已保存,但重定向后我丢失了会话数据 经过一些故障排除后,我发现COOKIE ci_session为NULL且设置不正确 我试图在session.php上手动设置它,但是它没有工作,甚至在将它们设置为某些值并立即打印cookie后,结果始终为NULL
但如果我尝试在控制器上设置它,那么cookie就可以保存得很好
public function test_save_cookie()
{
$cookie = array(
'name' => 'home_set',
'value' => 'home page Change 2',
'expire' => time()+86500,
'domain' => '',
'path' => '/',
'prefix' => '',
);
$this->input->set_cookie($cookie);
var_dump($_COOKIE['home_set']);
var_dump($this->input->cookie('home_set',TRUE));
setcookie(
"asdasd",
session_id(),
(empty($this->_config['cookie_lifetime']) ? 0 : time()),
'/',
'',
FALSE,
TRUE
);
var_dump($_COOKIE['asdasd']);
}
public function test_cookie()
{
var_dump($this->input->cookie('name',TRUE));
var_dump($_COOKIE['home_set']);
var_dump($_COOKIE['ci_session']);
var_dump(session_id());
}
我在godaddy的共享托管服务上托管codeigniter项目 在本地我使用PHP 5.5.15,我使用的服务器使用PHP 5.5.38
答案 0 :(得分:0)
尝试将会话存储到db 尝试:
$config['sess_driver'] = 'database';
$config['sess_save_path'] = 'ci_sessions';
对于mysql_database:
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`id` varchar(40) NOT NULL,
`ip_address` varchar(45) NOT NULL,
`timestamp` int(10) unsigned DEFAULT 0 NOT NULL,
`data` blob NOT NULL,
KEY `ci_sessions_timestamp` (`timestamp`)
);
答案 1 :(得分:0)
尝试设置会话保存路径,例如
/application/sessions
并确保> mkdir yo; cd yo;
可写。
答案 2 :(得分:0)
为cookie前缀添加一个值。像这样: $ config ['cookie_prefix'] ='some_value'