在yii中使用session和cookie
作者:zccst
一,在Yii中使用session
1,CHttpSession
与原生态php5的session使用差别是,php5使用session_start();$_session['key'] = $value;
在yii中,session已经被封装。
To start the session, call open(); To complete and send out session data, call close(); To destroy the session, call destroy().
If autoStart is set true, the session will be started automatically when the application component is initialized by the application.
/***** 方式一、实例添加 *****/$session=new CHttpSession;$session->open();$value1=$session['name1'];/***** 方式二、直接调用应用添加 *****/Yii::app()->session->add('name','foobar');Yii::app()->session->add('name2','foobar');Yii::app()->session->add('name3','foobar');//或者$session = Yii::app()->session;$session['key'] = 'value';var_dump($session['key']); //遍历foreach($session as $name=>$value)$session = new CHttpSession;$session->open();$user_id = $this->user->id;$sessionKey = $user_id.'_is_sending';if(isset($session[$sessionKey])){$first_submit_time = $session[$sessionKey];$current_time = time();if($current_time - $first_submit_time < 10){$session[$sessionKey] = $current_time;$this->response(array('status'=>1, 'msg'=>'不能在10秒钟内连续发送两次。'));}else{unset($session[$sessionKey]);//超过限制时间,释放session";}}//第一次点击确认按钮时执行if(!isset($session[$sessionKey])){$session[$sessionKey] = time();}var_dump($sessionKey);var_dump($session[$sessionKey]);exit();$session = Yii::app()->session;session_set_save_handler(array($session,'openSession'),array($session,'closeSession'),array($session,'readSession'),array($session,'writeSession'),array($session,'destroySession'),array($session,'gcSession'));
CREATE TABLE `YiiSession` ( `id` char(32) NOT NULL, `expire` int(11) default NULL, `data` text, PRIMARY KEY (`id`), KEY `expire` (`expire`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
'session'=>array('class' => 'CDbHttpSession','autoStart' => true,'sessionTableName'=>'YiiSession','autoCreateSessionTable'=> false,'connectionID'=>'db',),// 检索一个名为$name的cookie值$cookie=Yii::app()->request->cookies[$name];$value=$cookie->value;......// 设置一个cookie$cookie=new CHttpCookie($name,$value);Yii::app()->request->cookies[$name]=$cookie;