亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 建站經驗 > 正文

PHP會話控制:Session與Cookie詳解

2024-04-25 20:36:26
字體:
來源:轉載
供稿:網友

本文介紹了PHP會話控制,主要闡述以下幾點內容:

• 會話控制的產生背景/概念

• cookie的維護與生命周期(有效時間)

• session的維護與生命周期(回收機制)

• cookie與session之間的區別與聯系

• 問題1:禁用cookie后session為什么會失效?

• 問題2:IE瀏覽器下丟失session,每次刷新頁面,都會生成新的sessionID(Firefox瀏覽器正常)

• session、cookie簡單實例

理解會話控制的概念

理解一個概念就需要理解他的背景及產生的原因,這里引入WEB環境及其HTTP協議。會話控制產生的背景:

閱讀過HTTP協議相關資料的同學都會知道HTTP協議是WEB服務器與客戶端(瀏覽器)相互通信的協議,它是一種無狀態協議,所謂無狀態,指的是不會維護http請求數據,http請求是獨立的,不持久的。也就是說HTTP協議沒有一個內建的機制來維護兩個事務之間的狀態或者說是關系吧。當一個用戶在請求一個頁面后再去請求另外一個頁面時,HTTP將無法告訴我們這兩個請求是否來自同一個用戶。

由此我們就會覺得很奇怪了,平時我們在論壇逛帖子或電商網站購物時,只要我們在這個站點內,不論我們怎么跳轉,從一個頁面跑到另一個頁面,網站總會記得我是誰,比如告訴你購買了哪些東西。這是怎么做到的呢,估計大家猜到了,這就是運用了HTTP會話控制。在網站中跟蹤一個變量,通過對變量的跟蹤,使多個請求事物之間建立聯系,根據授權和用戶身份顯示不同的內容、不同頁面。

PHP Session會話控制:

PHP的session會話是通過唯一的會話ID來驅動的,會話ID是一個加密的隨機數字,由PHP生成,在會話的生命周期中都會保存在客戶端。我們知道客戶端(也就是瀏覽器)保存數據的地方只有cookie,所以PHP的會話ID一般保存在用戶機器的cookie中。了解cookie后我們知道,瀏覽器是可以禁用cookie的,這樣會話就會失效。所以PHP會話控制還有一種模式,就是在URL中傳遞會話ID。如果在瀏覽網站時我們稍加留心的話,有些URL中有一串看起來像隨機數字的字符串,那么其實很有可能就是URL形式的會話控制。

講到這里,有些人可能會有疑問了,客戶端只是保存一個會話ID,那么會話控制中保存的會話變量比如你購物時買的物品列表等,它們是存放在哪個地方的呢?很顯然,會話變量是在服務器端使用的,那么這些會話變量必定存放在服務器端。默認情況下,會話變量保存在服務器的普通文件中(也可以自己配置使用數據庫來保存,可以Google一下),會話ID的作用就像是一把鑰匙,在服務器端保存會話的文件中找到該會話ID對應的會話變量,比如購買物品的列表。

那么會話控制的整個過程可能就像這個樣子,用戶登錄或者第一次瀏覽某個站點的頁面時,該站點會生成一個PHP的會話ID并通過cookie發送到客戶端(瀏覽器)。當用戶點擊該站點的另一個頁面時,瀏覽器開始連接這個URL。在連接之前,瀏覽器會先搜索本地保存的cookie,如果在cookie中有任何與正在連接的URL相關的cookie,就將它提交到服務器。而剛好在登陸或第一次連接時,已經產生了一個與該網站URL相關的cookie(保存的會話ID),所以當用戶再次連接這個站點時,站點就可以通過這個會話ID識別出用戶,從服務器的會話文件中取出與這個會話ID相關的會話變量,從而保持事務之間的連續。

接下來我們了解下兩個重要的概念:cookie和session
關于cookie的維護與生命周期

cookie是在服務器端被創建并寫回到客戶端瀏覽器,瀏覽器接到響應頭中關于寫cookie的指令則在本地臨時文件夾中。

創建了一個cookie文件,其中保存了你的cookie內容,cookie內容的存儲是鍵值對的方式,鍵和值都只能是字符串。例如:

文件:Cookie:administrator@localhost/

內容格式:voteID100101localhost/15361167667230343893360385046430343691*

cookie的創建:

代碼如下:

setcookie()函數設置cookie,函數原型如下

setcookie(name, value, expire, path, domain);

注釋:cookie標題頭必須在發送其他標題頭之前發送,否則就無效(這是cookie的限制,而不是PHP的限制)。在發送 cookie 時,cookie 的值會自動進行 URL 編碼,在取回時進行自動解碼(為防止 URL 編碼,請使用 setrawcookie() 取而代之)。

cookie的維護:

cooke有四個標識符:cookie的name,domain,path,secure標記。要想在將來改變這個cookie的值,需要發送另一個具有相同cookie name,domain,path的Set-Cookie消息頭,這將以一個新

的值來覆蓋原來cookie的值。然而,如果僅僅只是改變這些選項的某一個也會創建一個完全不同的cookie,如只是更改了name值。

cookie失效時間:

可以設置過期時間,如果不設置則是會話級別的,即關閉瀏覽器就會消失。當cookie創建時包含了失效日期,這個失效日期則關聯了以name-domain-path-secure為標識的cookie。要改變一個cookie的失效日期,你必須指定同樣的組合。當改變一個cookie的值時,你不必每次都設置失效日期,因為它不是cookie標識信息的組成部分。例如:

代碼如下:

setcookie(vote ,$id+1,time()+3600*24);

setcookie(vote,$id);

在cookie上的失效日期并沒有改變,因為cookie的標識符是相同的。實際上,只有你手工的改變cookie的失效日期,否則其失效日期不會改變。這意味著在同一個會話中,一個會話cookie可以變成一個持久化cookie(一個可以在多個會話中存在的),反之則不可。為了要將一個持久化cookie變為一個會話cookie,你必須刪除這個持久化cookie,這只要設置它的失效日期為過去某個時間之后再創建一個同名的會話cookie就可以實現。

需要記得的是失效日期是以瀏覽器運行的電腦上的系統時間為基準進行核實的。沒有任何辦法來來驗證這個系統時間是否和服務器的時間同步,所以當服務器時間和瀏覽器所處系統時間存在差異時這樣的設置會出現錯誤。

cookie自動刪除:

cookie會被瀏覽器自動刪除,通常存在以下幾種原因:

會話cooke(Session cookie)在會話結束時(瀏覽器關閉)會被刪除

持久化cookie(Persistent cookie)在到達失效日期時會被刪除,如:

代碼如下:

setcookie("vote", "", time()-3600);

如果瀏覽器中的cookie限制到達,那么cookies會被刪除以為新建cookies創建空間。

 

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲毛片在线免费观看| 国产精品一区二区三| 欧美成人午夜激情视频| 91精品免费看| 国产精品久久久久久久久久99| 日韩中文字幕免费看| 国产精品久久久久久久久久免费| 国产精品视频男人的天堂| 亚洲色图色老头| 欧美性生交xxxxxdddd| 尤物yw午夜国产精品视频| 欧美老女人xx| 欧美精品xxx| 亚洲va欧美va国产综合剧情| 欧美老少配视频| 国产精品福利无圣光在线一区| 日av在线播放中文不卡| 欧美性一区二区三区| 国色天香2019中文字幕在线观看| 日韩欧美国产激情| 国产精品av网站| 中文字幕亚洲综合| 亚洲免费伊人电影在线观看av| 98精品国产高清在线xxxx天堂| 日本一区二区不卡| 亚洲欧美日韩天堂一区二区| 久久久精品一区| 国产成人精品视| 精品无人国产偷自产在线| 亚洲精品影视在线观看| 色yeye香蕉凹凸一区二区av| 91色视频在线导航| 国产精品一区二区三区久久| 欧美精品成人91久久久久久久| 成人精品在线观看| 久久久精品在线观看| 欧美精品制服第一页| 国产精品男人的天堂| 欧美日韩成人免费| 久久久久女教师免费一区| 欧美日韩国产精品一区二区三区四区| 国产午夜精品免费一区二区三区| 92福利视频午夜1000合集在线观看| 日韩在线视频免费观看高清中文| 亚洲美女精品久久| 日韩av日韩在线观看| 国产极品jizzhd欧美| 欧美日韩国内自拍| 欧美日韩另类视频| 欧美在线亚洲在线| 国产精品美女久久久免费| 国内精品久久久久影院 日本资源| 日韩色av导航| 久久免费成人精品视频| 日韩av最新在线| 亚洲成色999久久网站| 久久综合伊人77777| 中文字幕亚洲综合久久| 国产成人小视频在线观看| 中文字幕精品视频| 欧美性猛交xxxx黑人猛交| 国产精品久久久久久久av大片| 亚洲人成在线观| 国产aⅴ夜夜欢一区二区三区| 最新69国产成人精品视频免费| 国产精品吊钟奶在线| 欧美日韩福利电影| 亚洲国产美女精品久久久久∴| 欧美激情图片区| 国产精品老女人精品视频| 91麻豆桃色免费看| 久久久99免费视频| 欧美日本精品在线| 日韩精品欧美国产精品忘忧草| 欧美成人三级视频网站| 亚洲成人av片| 国产日韩在线播放| 日韩av电影在线网| 日本一区二区在线免费播放| 国产欧美一区二区白浆黑人| 在线观看精品自拍私拍| 国产午夜精品免费一区二区三区| 亚洲自拍偷拍第一页| 久久久国产成人精品| 日本欧美爱爱爱| 日本久久久久久久久久久| 性色av一区二区三区免费| 日韩av片免费在线观看| 色七七影院综合| 久久影视电视剧免费网站| 亚洲女人被黑人巨大进入al| 欧美精品在线看| 久久网福利资源网站| 国产亚洲a∨片在线观看| 这里只有精品在线播放| 欧美性猛交丰臀xxxxx网站| 亚洲xxxx妇黄裸体| 国产大片精品免费永久看nba| 久久久久久久久久久国产| 亚洲精品日韩久久久| 国产精品成人免费电影| 中文字幕一区电影| 亚洲高清免费观看高清完整版| 国产在线a不卡| 国内精品久久久久影院 日本资源| 国产午夜精品久久久| 亚洲国产精品va在线| 国内精品免费午夜毛片| 亚洲最大福利视频| 欧美成人精品激情在线观看| 国产精品成人一区二区三区吃奶| 欧美国产欧美亚洲国产日韩mv天天看完整| 日韩精品一区二区三区第95| 人妖精品videosex性欧美| 国产精品久久久久久久久久99| 亚洲精品乱码久久久久久按摩观| 91社影院在线观看| 九九精品视频在线| 亚洲精品自产拍| www.亚洲天堂| 国产精品久久一区主播| 大桥未久av一区二区三区| 亚洲午夜女主播在线直播| 国产精品jizz在线观看麻豆| 一本色道久久综合狠狠躁篇的优点| 国产精品欧美在线| 国产一区二区三区丝袜| 国产精品综合久久久| 色小说视频一区| 日韩毛片中文字幕| 97精品国产91久久久久久| 亚洲精品国产精品国自产在线| 成人黄色免费在线观看| 一级做a爰片久久毛片美女图片| 国产精品久久9| 亚洲精品国产拍免费91在线| 91免费在线视频网站| 亚洲**2019国产| 国产视频精品va久久久久久| 亚洲欧美激情精品一区二区| 精品毛片三在线观看| 欧美最顶级丰满的aⅴ艳星| 一区二区三区亚洲| 久久国产天堂福利天堂| 91影视免费在线观看| 欧美精品999| 国产精品av网站| 高清一区二区三区四区五区| 色综久久综合桃花网| 国产不卡av在线| 欧美重口另类videos人妖| 欧美中文字幕第一页| 欧美色视频日本高清在线观看| 亚洲国产欧美自拍| 欧美大码xxxx| 日韩av影院在线观看| 欧美人交a欧美精品| 成人久久久久久| 播播国产欧美激情| 国产欧美精品一区二区三区-老狼| 97在线精品视频| 精品亚洲国产成av人片传媒| 久久综合亚洲社区| 精品亚洲va在线va天堂资源站|