电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

PHP中Session會話的使用和分析

瀏覽:7日期:2024-01-11 15:47:52

Session的中文譯名叫做“會話”,其本來的含義是指有始有終的一系列動作/消息,比如打電話時從拿起電話撥號到掛斷電話這中間的一系列過程可以稱之為一個Session。目前社會上對Session的理解非常混亂:有時候我們可以看到這樣的話“在一個瀏覽器會話期間,...”,這里的會話是指從一個瀏覽器窗口打開到關閉這個期間;也可以看到“用戶(客戶端)在一次會話期間”這樣一句話,它可能指用戶的一系列動作(一般情況下是同某個具體目的相關的一系列動作,比如從登錄到選購商品到結賬登出這樣一個網上購物的過程;然而有時候也可能僅僅是指一次連接;其中的差別只能靠上下文來推斷了。

然而當Session一詞與網絡協議相關聯時,它又往往隱含了“面向連接”和/或“保持狀態”這樣兩個含義,“面向連接”指的是在通信雙方在通信之前要先建立一個通信的渠道,比如打電話,直到對方接了電話通信才能開始。“保持狀態”則是指通信的一方能夠把一系列的消息關聯起來,使得消息之間可以互相依賴,比如一個服務員能夠認出再次光臨的老顧客并且記得上次這個顧客還欠店里一塊錢。這一類的例子有“一個TCP Session”或者“一個POP3 Session”。

鑒于這種混亂已不可改變,要為Session下個定義就很難有統一的標準。而在閱讀Session相關資料時,我們也只有靠上下文來推斷理解了。不過我們可以這樣理解:例如我們打電話,從撥通的那一刻起到掛斷電話期間,因為電話一直保持著接通的狀態,所以把這種接通的狀態叫做Session。它是訪客與整個網站交互過程中一直存在的公有變量,在客戶端不支持COOKIE的時候,為了保證數據正確、安全,就采用Session變量。訪問網站的來客會被分配一個唯一的標識符,即所謂的會話 ID。它要么存放在客戶端的 cookie,要么經由 URL 傳遞。

Session的發明填補了HTTP協議的局限:HTTP協議被認為是無狀態協議,無法得知用戶的瀏覽狀態,當它在服務端完成響應之后,服務器就失去了與該瀏覽器的聯系。這與HTTP協議本來的目的是相符的,客戶端只需要簡單的向服務器請求下載某些文件,無論是客戶端還是服務器都沒有必要紀錄彼此過去的行為,每一次請求之間都是獨立的,好比一個顧客和一個自動售貨機或者一個普通的(非會員制)大賣場之間的關系一樣。

因此通過Session(cookie是另外一種解決辦法)記錄用戶的有關信息,以供用戶再次以此身份對web服務器提起請求時作確認。會話的發明使得一個用戶在多個頁面間切換時能夠保存他的信息。網站編程人員都有這樣的體會,每一頁中的變量是不能在下一頁中使用的(雖然form,url也可以實現,但這都是非常不理想的辦法),而Session中注冊的變量就可以作為全局變量使用了。

那么Session到底有什么用處呢?網上購物時大家都用過購物車,你可以隨時把你選購的商品加入到購物車中,最后再去收銀臺結帳。在整個過程中購物車一直扮演著臨時存貯被選商品的角色,用它追蹤用戶在網站上的活動情況,這就是Session的作用,它可以用于用戶身份認證,程序狀態記錄,頁面之間參數傳遞等。

Session的實現中采用COOKIE技術,Session會在客戶端保存一個包含Session_id(Session編號)的COOKIE;在服務器端保存其他Session變量,比如Session_name等等。當用戶請求服務器時也把Session_id一起發送到服務器,通過 Session_id提取所保存在服務器端的變量,就能識別用戶是誰了。同時也不難理解為什么Session有時會失效了。

當客戶端禁用COOKIE時(點擊IE中的“工具”—“Internet選項”,在彈出的對話框里點擊“安全”—“自定義級別”項,將“允許每個對話COOKIE”設為禁用),Session_id將無法傳遞,此時Session失效。不過php5在linux/unix平臺可以自動檢查 cookie狀態,如果客戶端設置了禁用,則系統自動把Session_id附加到url上傳遞。windows主機則無此功能。

Session常見函數及用法

Session_start() :開始一個會話或者返回已經存在的會話。

說明:這個函數沒有參數,且返回值均為true。如果你使用基于cookie的Session(cookie-based Sessions),那么在使用Session_start()之前瀏覽器不能有任何輸出,否則會發生以下錯誤:

Warning: Cannot send Session cache limiter - headers already sent (output started at /usr/local/apache/htdocs/cga/member/1.php:2)……

你可以在php.ini里啟動Session.auto_start=1,這樣就無需每次使用Session之前都要調用 Session_start()。但啟用該選項也有一些限制,如果確實啟用了 Session.auto_start,則不能將對象放入會話中,因為類定義必須在啟動會話之前加載以在會話中重建對象。

請求結束后所有注冊的變量都會被序列化。已注冊但未定義的變量被標記為未定義。在之后的訪問中這些變量也未被會話模塊定義,除非用戶以后定義它們。

有些類型的數據不能被序列化因此也就不能保存在會話中。包括 resource 變量或者有循環引用的對象(即某對象將一個指向自己的引用傳遞給另一個對象)。

標簽: PHP
主站蜘蛛池模板: 飞扬动力官网-广告公司管理软件,广告公司管理系统,喷绘写真条幅制作管理软件,广告公司ERP系统 | 退火炉,燃气退火炉,燃气热处理炉生产厂家-丹阳市丰泰工业炉有限公司 | 上海刑事律师|刑事辩护律师|专业刑事犯罪辩护律师免费咨询-[尤辰荣]金牌上海刑事律师团队 | 郑州宣传片拍摄-TVC广告片拍摄-微电影短视频制作-河南优柿文化传媒有限公司 | 驾驶人在线_专业学车门户网站| 紫外线老化试验箱_uv紫外线老化试验箱价格|型号|厂家-正航仪器设备 | 诺冠气动元件,诺冠电磁阀,海隆防爆阀,norgren气缸-山东锦隆自动化科技有限公司 | 武汉印刷厂-不干胶标签印刷厂-武汉不干胶印刷-武汉标签印刷厂-武汉标签制作 - 善进特种标签印刷厂 | 在线浊度仪_悬浮物污泥浓度计_超声波泥位计_污泥界面仪_泥水界面仪-无锡蓝拓仪表科技有限公司 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 自动钻孔机-全自动数控钻孔机生产厂家-多米(广东)智能装备有限公司 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 耐驰泵阀管件制造-耐驰泵阀科技(天津)有限公司 | 不锈钢复合板厂家_钛钢复合板批发_铜铝复合板供应-威海泓方金属复合材料股份有限公司 | 济南品牌包装设计公司_济南VI标志设计公司_山东锐尚文化传播 | 武汉刮刮奖_刮刮卡印刷厂_为企业提供门票印刷_武汉合格证印刷_现金劵代金券印刷制作 - 武汉泽雅印刷有限公司 | 培训无忧网-教育培训咨询招生第三方平台 | 云南成考网_云南成人高考报名网| 珠光砂保温板-一体化保温板-有釉面发泡陶瓷保温板-杭州一体化建筑材料 | 螺杆泵_中成泵业| 焊接烟尘净化器__焊烟除尘设备_打磨工作台_喷漆废气治理设备 -催化燃烧设备 _天津路博蓝天环保科技有限公司 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | 风信子发稿-专注为企业提供全球新闻稿发布服务 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | 光栅尺_Magnescale探规_磁栅尺_笔式位移传感器_苏州德美达 | 杭州双螺杆挤出机-百科 | 上海质量认证办理中心 | 不锈钢电动球阀_气动高压闸阀_旋塞疏水调节阀_全立阀门-来自温州工业阀门巨头企业 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 粉碎机_塑料粉碎机_塑料破碎机厂家-星标机械 | 海德莱电力(HYDELEY)-无功补偿元器件生产厂家-二十年专业从事电力电容器 | 紧急切断阀_气动切断阀_不锈钢阀门_截止阀_球阀_蝶阀_闸阀-上海上兆阀门制造有限公司 | 动环监控_机房环境监控_DCIM_机房漏水检测-斯特纽 | 河南空气能热水器-洛阳空气能采暖-洛阳太阳能热水工程-洛阳润达高科空气能商行 | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 全国冰箱|空调|洗衣机|热水器|燃气灶维修服务平台-百修家电 | 日本SMC气缸接头-速度控制阀-日本三菱伺服电机-苏州禾力自动化科技有限公司 | 【法利莱住人集装箱厂家】—活动集装箱房,集装箱租赁_大品牌,更放心 | 杭州顺源过滤机械有限公司官网-压滤机_板框压滤机_厢式隔膜压滤机厂家 | 专业生物有机肥造粒机,粉状有机肥生产线,槽式翻堆机厂家-郑州华之强重工科技有限公司 |