0

我是使用 MVC Codeigniter 框架的 PHP 新手。我有一个关于使用 codeigniter 在表(ci_sessions)中存储会话的问题。我还设置了 config.php 文件,例如 -

$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration']= 3600;
$config['sess_encrypt_cookie'] = FALSE;
$config['sess_use_database']= TRUE;
$config['sess_table_name']= 'ci_sessions';
$config['sess_match_ip']= FALSE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update'] = 300;

并且还在数据库中创建了名为 ci_sessions 的表。喜欢

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(45) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);

完成上述所有活动后,数据库中 ci_sessions 表的 user_data 列中没有数据存储。

当我想使用类似访问会话数据时- print_r($this->session->all_userdata()); print $this->session->userdata['myksb'];

然后错误显示为 -

大批 (
[session_id] => 97b9e34713b52f32a32e915053cba826
[ip_address] => 127.0.0.1
[user_agent] => Mozilla/5.0 (Windows NT 6.1; WOW64; rv:19.0) Gecko
[last_activity] => 1363866927 )

遇到 PHP 错误
严重性:通知
消息:未定义索引:myksb
文件名:控制器/home.php
行号:13876
4

1 回答 1

1

这里有几件事要解决。

  1. $this->session->userdata()是一种方法而不是数组。$this->session->userdata['myksb'];无效。你必须使用$this->session->userdata('myksb');

  2. $this->session->sess_destroy()杀死你的会话。它实际上从您的会话和 cookie 中删除了您的 sessionId。一旦完成,您就不能为您的会话分配新信息,它不再有 ID。您必须删除该呼叫。CodeIgniter 会自动清理你的会话表。

于 2013-03-21T13:09:59.870 回答