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

首頁(yè) > 開發(fā) > PHP > 正文

php中session_id()函數(shù)詳細(xì)介紹,會(huì)話id生成過程及session id長(zhǎng)度

2024-05-04 23:39:10
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

這篇文章主要介紹了php中session_id()函數(shù)詳細(xì)介紹,會(huì)話id生成過程及session id長(zhǎng)度的相關(guān)資料,需要的朋友可以參考下

php中session_id()函數(shù)原型及說(shuō)明session_id()函數(shù)說(shuō)明:stringsession_id([string$id])session_id() 可以用來(lái)獲取/設(shè)置 當(dāng)前會(huì)話 ID。為了能夠?qū)?huì)話 ID 很方便的附加到 URL 之后, 你可以使用常量 SID 獲取以字符串格...

php中session_id()函數(shù)原型及說(shuō)明

session_id()函數(shù)說(shuō)明:

 

 
  1. string session_id ([ string $id ] ) 

session_id() 可以用來(lái)獲取/設(shè)置 當(dāng)前會(huì)話 ID。

為了能夠?qū)?huì)話 ID 很方便的附加到 URL 之后, 你可以使用常量 SID 獲取以字符串格式表達(dá)的會(huì)話名稱和 ID。 請(qǐng)參考 會(huì)話處理。

session_id()函數(shù)參數(shù):

id

如果指定了 id 參數(shù)的值, 則使用指定值作為會(huì)話 ID。 必須在調(diào)用 session_start() 函數(shù)之前調(diào)用 session_id() 函數(shù)。 不同的會(huì)話管理器對(duì)于會(huì)話 ID 中可以使用的字符有不同的限制。 例如文件會(huì)話管理器僅允許會(huì)話 ID 中使用以下字符:a-z A-Z 0-9 , (逗號(hào))和 - (減號(hào))

Note: 如果使用 cookie 方式傳送會(huì)話 ID,并且指定了 id 參數(shù), 在調(diào)用 session_start() 之后都會(huì)向客戶端發(fā)送新的cookie, 無(wú)論當(dāng)前的會(huì)話 ID 和新指定的會(huì)話 ID 是否相同。

session_id()函數(shù)返回值:

session_id() 返回當(dāng)前會(huì)話ID。 如果當(dāng)前沒有會(huì)話,則返回空字符串("")。

php會(huì)話ID如何生成以及會(huì)話ID長(zhǎng)度

一個(gè)訪問者訪問你的 web 網(wǎng)站將被分配一個(gè)唯一的 id, 就是所謂的會(huì)話 id. 這個(gè) id 可以存儲(chǔ)在用戶端的一個(gè) cookie 中,也可以通過 URL 進(jìn)行傳遞. Session會(huì)話用來(lái)追蹤每個(gè)用戶的會(huì)話,使用服務(wù)器生成的SessionID進(jìn)行標(biāo)識(shí),用以區(qū)分用戶。Session存放在服務(wù)器的內(nèi)存中,SessionID存放在服務(wù)器內(nèi)存和客戶機(jī)的Cookie里面。這樣,當(dāng)用戶發(fā)出請(qǐng)求時(shí),服務(wù)器將用戶Cookie里面記錄的SessionID和服務(wù)器內(nèi)存中的SessionID進(jìn)行比對(duì),從而找到這個(gè)用戶對(duì)應(yīng)的Session進(jìn)行操作。所以,如果客戶機(jī)禁止Cookie的話,Session也不能使用。

php會(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);

有興趣的可以具體分析實(shí)現(xiàn)原理。

PHP默認(rèn)的session id長(zhǎng)度

截取一些實(shí)際的php 5.4.6服務(wù)端生成的session id如下:

sess_00nrqa20hjrlaiac0eu726i4q5 sess_89j9ifuqrbplk0rti2va2k1ha0 sess_g2rv1kd6ijsj6g6c9jq5mqglv5

sess_04es72a83tqsl0jqd3cvrc4s01 sess_8b7a5lme60g49lvk4u4jiemdn1 sess_g3uk6d3gbashg5eoq0b2k7vsk0

sess_04u0ns0oobh2g93t009bij2rq0 sess_8dfvkiv8ml44fdqrk1rcmjchs4 sess_g64tddhbo8pbj8bs7bel44rf35

sess_0592dolr5m0k392fah6c9preg7 sess_8fhgkjuakhatbeg2fa14lo84q1 sess_g6kl828qqsnvdrse7ff52cl2a4

sess_066g8irr0m22iqotscepub4e13 sess_8gn03i9j1tta7655qfj6nl1l53 sess_g8t45j6qce7mf55nk14cotj5i4

sess_08nr1fav9jqs2pdi5qlpsmd247 sess_8gvu05313o7p9usksaacaiegu6 sess_gbtjmr57iat86c8ve86ar5nh30

可見具體的session id 為 “sess_”后面的部分,長(zhǎng)度為26位,此長(zhǎng)度僅限于php 5.4.6.

php session_id()用法代碼舉例如下:

輸出session_id()詳細(xì)代碼:

 

  
  1. <?php 
  2. session_start(); 
  3. echo session_id(); 
  4. // 輸出 08nr1fav9jqs2pdi5qlpsmd247 
  5. ?> 

設(shè)置 session_id()詳細(xì)代碼:

 

 
  1. <?php 
  2. session_id("m.survivalescaperooms.com"); 
  3. session_start(); 
  4. echo session_id(); 
  5. // 輸出 m.survivalescaperooms.com 
  6. ?> 

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 江门市| 灌南县| 章丘市| 延长县| 略阳县| 扎鲁特旗| 吕梁市| 炉霍县| 开阳县| 乌鲁木齐县| 陆丰市| 扶沟县| 中方县| 克拉玛依市| 思南县| 珠海市| 开平市| 合江县| 鸡泽县| 浑源县| 同德县| 翁源县| 清水县| 阜新市| 张家界市| 石家庄市| 道真| 辉南县| 余庆县| 襄城县| 清新县| 湘潭市| 会泽县| 渑池县| 宿州市| 灵石县| 石首市| 大渡口区| 弥勒县| 涡阳县| 隆昌县|