Mal*_*ala 44 php session codeigniter
我是CodeIgniter的新手,我正在制作我的第一个CI项目,其中有用户帐户等.过去,我总是使用PHP的$ _SESSION变量.然而,CI似乎有自己的会话机制,它声称"更好"
CI的会话机制似乎将所有数据存储在cookie中?就个人而言,我喜欢将所有数据存储在服务器上的想法,使用像PHP本机会话机制这样的cookie密钥进行访问...我是不是觉得这样更好?我应该接受CI的机制吗?或者我应该继续使用本机PHP会话?
你们做什么的?
谢谢,
麻辣
Cin*_*mon 34
根据我对CI的经验,我遇到了一些关于会话的异常,但是对于大多数日常需求,图书馆很好并且易于使用.正如有人指出的那样,Flashdata是一个非常好的功能.
如果您选择继续使用CI的会话,我强烈建议您将会话存储在数据库中,此外还要加密Cookie:
$config['sess_encrypt_cookie'] = TRUE;
$config['sess_use_database'] = TRUE;
$config['sess_table_name'] = 'sessions';
Run Code Online (Sandbox Code Playgroud)
数据库结构应如下:
CREATE TABLE IF NOT EXISTS `sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(50) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id)
);
Run Code Online (Sandbox Code Playgroud)
手册说的更灵活而不是更好 ;-)
我认为CodeIgnite会话类的主要好处是它与框架集成,它提供了一些额外的功能,例如IP地址跟踪和它所谓的flashdata(会话数据在读取后立即擦除).如果您首先使用框架,这意味着这些选项可能对您有吸引力.
无论如何,您还可以将会话数据保存到数据库中:
http://codeigniter.com/user_guide/libraries/sessions.html