这是一个非常小的demo大神勿看
http://www.freebuf.com/articles/web/10369.html 感觉这个文章写的不错,大家可以去看看。。
正好这段时间用到了session就索性温习一遍,以后还会补充希望大家指正错误。。
一、session的存入
1、首先我存入了一个key为name,value是‘zhangsan’的session
public function actionabc11() {
Yii::app()->session['name'] = 'zhangsan';
}
2、然后我用chrome进行访问。。。结果如下
PHPSESSID:是php默认的,这个可以在php.ini通过session.name = PHPSESSID 来进行修改
value :就是存放session值的文件名字。文字地址可以通过php.ini中的session.save_path 来进行修改默认是放在当前目录下的temp文件夹
Domain:就是当前域
path:路径
等等。。。
3、然后我找到当前目录下的特temp文件夹下的这个文件如下。。这是把我存入session的值进行了序列化
name|s:9:"zhangsan";
4、我关闭浏览器,在从新打开,会发现,访问结果还是一样的,session文件不会消失
注:php.ini,找到session.gc_maxlifetime = 1440 #(PHP5默认24分钟)这个是默认时效时间。。
5、如果我换了一个浏览器再次访问
然后在temp目录下回发现又多了一个文件。
打开个两个文件,内容是一样的。。都是经过序列化的key=’name‘,value=’zhangsan‘的文件
总结
1、每次打开浏览器会请求网址默认生成一个PHPSESSID 的唯一标识key。即文件名称。cookie的值(建立一个新的会话)
2、当前会话中的话读取session以及写入,修改等 session都是在这个文件进行的。
3、关闭浏览器,意味着会话结束,但是session文件不会消失
4、每个浏览器都是一个服务端,不同的服务器session存放的key可以相同
5、session存放路径,名字,失效时间等都是可以进行人为设置的
二、session的读取
public function actionabc22() {
echo Yii::app()->session['name'].'</br>';
var_dump($_COOKIE);
}
1、用浏览器访问结果如下,zhangsan 就是存入key为name的session。
三、cookie的设置与读取
setcookie("user", 1111, time()+3600); //设置名字为user的cookie
$_COOKIE["user"]; //取值
setcookie("user", "", time()-3600); //删除
注:关闭浏览器,从新打开浏览器,cookie值是存在(只要不过期)
在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用 setrawcookie() 取而代之)。