国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

關于php及codeigniter使用session-cookie的方法解析

2020-03-22 18:20:57
字體:
來源:轉載
供稿:網友
下面為大家帶來一篇php及codeigniter使用session-cookie的方法(詳解)。內容挺不錯的,現在就分享給大家,也給大家做個參考。

1、讀寫cookie

1 原生

setcookie( name , html' target='_blank'>value ,time)

設置失敗,沒有正常寫入瀏覽器,測試失敗,原因未知

2 CI框架

$this- input- set_cookie( views , test10 ,1000);echo $_COOKIE[ views //此方法獲取值時,如果值不存在會報錯,當然可以先用isset($_COOKIE[ views ])判斷一下

3 通過helper

$this- load- helper( cookie //這行放在view也是可以的,隨便set_cookie( views , test10 ,1000);echo get_cookie( views //此方法獲取值如果獲取不到,會返回空,不會報錯

2、讀寫session

1 原生session

啟動:

 ?phpsession_start();? 

賦值:

$_SESSION[ views ] = test20 

取值:

echo Session: . $_SESSION[ views 

存續時間:

會話。當瀏覽器關閉,cookie里面的phpsession就會清空,下次打開會重新生成一個

雖然服務器還保存著這個session。session的過期時間在php.ini里設置,參見另一篇文章php(codeigniter)安全性注意事項

2 CI框架session

啟動:

$this- load- library( session //load必須在controller完成,當要使用session必須先load賦值:$this- session- views = test11 

取值:

echo Session: . $_SESSION[ views 

存續時間:

客戶端有2個小時的存續時間,當服務器的session被刪除,因為客戶端的session id還是有效的,所以當再次打開的時候,服務端會再創建一個跟客戶端session id相同的session,當然是創建新id還是老id并不重要,因為只是id同名,里面是沒有數據的

3 區別

兩個session名稱是不同的,一個叫phpsession,一個叫ci_session

只能啟動一個,不能兩個都啟動

取值是相同的

兩個千萬不要混用,應該全面放棄原生的方式

原生phpsession的是隨便訪問的,ci_session是httponly的,這就意味著原生的session可能會被通過xxs攻擊,通過js獲取到cookie

4 例外情況

有一種情況是這樣的:

當此時已經存在ci_session,因為這個ci_是持久化的

//session_start();//沒有啟動原生的session//$this- load- library( session //沒有啟動ci的session$_SESSION[ views ] = test23 //直接用原生的方式進行賦值echo Session: . $_SESSION[ views //可以正常取值出來 test23 

通過查看cookie,發現沒有原生session存在,只能是走的ci session,那么在服務器的session里找到這個文件,發現這個值沒有寫進去 如果有聲明session_start(),他就會走原生的模式,會重新創建一個phpsession,并且值會寫進去

如果什么都沒聲明,也沒有賦值,直接取值,那么會報錯,因為要使用ci_session必須要load,我們沒有load就會報錯,所以證明了,在用原生的方式進行賦值的時候,他相當于啟動了session,啟用了ci_session,但他又沒有權限寫入,這可以說是一個bug

5 session如何運作

cookie的運作比較容易理解,就是寫入到用戶cookie,寫什么讀出來就是什么。只要是本站的cookie,就可以通過鍵值讀出來。

session的值是存在服務器的,但是怎么知道這個值是哪個用戶的?通過在用戶cookie里存入那個session的文件名,而保存的值放在服務器同名的文件里面。說的盜取cookie指的就是盜取這個,重要的信息存在服務器上,但是這個被盜了也完蛋。所以,也不能相信cookie里存的這個session-key,應該做一個鑒權。

注意,寫入session的同時,寫session-key到用戶的cookie里這個是自動完成的,這個存續時間應該是在服務器的php.ini里面配置。

以上就是本文的全部內容,希望對大家的學習有所幫助,更多相關內容請關注PHP !

相關推薦:

如何實現PHP CodeIgniter分頁及多條件查詢

以上就是關于php及codeigniter使用session-cookie的方法解析的詳細內容,PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 余姚市| 枞阳县| 清水河县| 邳州市| 响水县| 天水市| 灵台县| 江陵县| 科技| 固安县| 阜阳市| 夹江县| 三台县| 梓潼县| 景德镇市| 兰溪市| 集贤县| 乌鲁木齐市| 博乐市| 乐陵市| 麻阳| 盖州市| 平罗县| 华坪县| 高唐县| 长汀县| 五常市| 漠河县| 托克托县| 嘉荫县| 策勒县| 兴文县| 张家港市| 寿光市| 高邮市| 金乡县| 普安县| 若羌县| 巴青县| 扎鲁特旗| 诸暨市|