這是一個非常小的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() 取而代之)。