小編給大家分享一下php如何設(shè)置session id,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
在壽寧等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶(hù)提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需網(wǎng)站策劃,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),全網(wǎng)整合營(yíng)銷(xiāo)推廣,外貿(mào)網(wǎng)站建設(shè),壽寧網(wǎng)站建設(shè)費(fèi)用合理。
php設(shè)置session id的方法:首先創(chuàng)建一個(gè)PHP示例文件;然后通過(guò)“session_id("...");session_start();”語(yǔ)句來(lái)設(shè)置Session會(huì)話(huà)ID即可。
php session_id()獲取或設(shè)置Session會(huì)話(huà)ID
php session_id()函數(shù)可取得或者重新配置目前存放 Session 會(huì)話(huà)的ID,本文章向大家介紹Session生成過(guò)程及session_id 恢復(fù) session的內(nèi)容,需要的朋友可以參考一下。
session_id()函數(shù)介紹
session_id()獲取或設(shè)置Session會(huì)話(huà) ID
語(yǔ)法:
string session_id(string [id]);
若無(wú)參數(shù) id 則表示只有取得目前 Session 的代號(hào),加上參數(shù)則表示將 Session 代號(hào)設(shè)成新指定的 id。輸入及返回均為字符串。
如果沒(méi)有設(shè)置參數(shù)ID,則表示獲取Session會(huì)話(huà)ID,否則表示將Session會(huì)話(huà)設(shè)成新指定的ID。
注:ID均為字符串形式。
session_id()實(shí)例
獲取Session會(huì)話(huà)ID
<?php session_start(); echo session_id(); // 輸出 urles147jbrq3u50b0l6f8hvf0 ?>
設(shè)置Session會(huì)話(huà)ID
<?php session_id("ilovemanongjc.com"); session_start(); /* http://www.manongjc.com/article/1260.html */ echo session_id(); // 輸出 ilovemanongjc.com ?>
Session生成過(guò)程介紹
一個(gè)訪(fǎng)問(wèn)者訪(fǎng)問(wèn)你的web網(wǎng)站將被分配一個(gè)唯一的id, 就是所謂的會(huì)話(huà)id. 這個(gè)id可以存儲(chǔ)在用戶(hù)端的一個(gè)cookie中,也可以通過(guò)URL進(jìn)行傳遞. Session會(huì)話(huà)用來(lái)追蹤每個(gè)用戶(hù)的會(huì)話(huà),使用服務(wù)器生成的SessionID進(jìn)行標(biāo)識(shí),用以區(qū)分用戶(hù)。Session存放在服務(wù)器的內(nèi)存中,SessionID存放在服務(wù)器內(nèi)存和客戶(hù)機(jī)的Cookie里面。這樣,當(dāng)用戶(hù)發(fā)出請(qǐng)求時(shí),服務(wù)器將用戶(hù)Cookie里面記錄的SessionID和服務(wù)器內(nèi)存中的SessionID進(jìn)行比對(duì),從而找到這個(gè)用戶(hù)對(duì)應(yīng)的Session進(jìn)行操作。所以,如果客戶(hù)機(jī)禁止Cookie的話(huà),Session也不能使用。
php會(huì)話(huà)ID是如何產(chǎn)生的?PHP默認(rèn)的session id生成算法介紹
以php5.3.6的源碼為例,進(jìn)入/ext/session目錄,生成session id的函數(shù)位于session.c文件的345行,c語(yǔ)言函數(shù)原型如下:
PHPAPI char *php_session_create_id(PS_CREATE_SID_ARGS);
session_id如何恢復(fù)session的內(nèi)容
php的session是可以程序恢復(fù)的,這個(gè)和java不太一樣。session的恢復(fù)機(jī)制可以實(shí)現(xiàn)多個(gè)應(yīng)用程序session的共享,因?yàn)閜hp的session都是以文件形式或者數(shù)據(jù)庫(kù)存儲(chǔ)的。首先是session_id的獲取是通過(guò)session_id()函數(shù)獲取,這個(gè)值可以進(jìn)行傳遞。
程序恢復(fù)session,首先要知道session_id,大家通過(guò)手冊(cè)可以知道session的恢復(fù)通過(guò)session_id($id);但是在恢復(fù)時(shí)要注意一個(gè)先后順序,要得到之前session的內(nèi)容,必須在session_start()之前執(zhí)行session_id($id),這樣才能在執(zhí)行了session_start時(shí)初始化session的時(shí)候恢復(fù)到之前的內(nèi)容,否則的話(huà)你得到的是一個(gè)空的session,你什么也得不到。之前session被重新初始化了。這個(gè)和session_start()的作用有密切關(guān)系,因?yàn)閟ession_start告訴php,session要初始化,要從session文件中反序列化session內(nèi)容,所以session_start的作用就是把之前存儲(chǔ)的文件內(nèi)容反序列化。session_start序列化之前要知道session_id,如果沒(méi)有就生成一個(gè)新的session_id。如果有就反序列化相應(yīng)文件的內(nèi)容。
以上是“php如何設(shè)置session id”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
本文標(biāo)題:php如何設(shè)置sessionid
文章源于:http://www.rwnh.cn/article30/jdggso.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、App設(shè)計(jì)、品牌網(wǎng)站制作、用戶(hù)體驗(yàn)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)