中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • php中session_id()函數詳細介紹和會話id生成過程以及session id長度

php中session_id()函數詳細介紹和會話id生成過程以及session id長度

發布時間:2021-06-29 14:18:07 來源:億速云 閱讀:196 作者:chen 欄目:開發技術

本篇內容介紹了“php中session_id()函數詳細介紹和會話id生成過程以及session id長度”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

php中session_id()函數原型及說明

session_id()函數說明:

string session_id ([ string $id ] )

session_id() 可以用來獲取/設置 當前會話 ID。

為了能夠將會話 ID 很方便的附加到 URL 之后, 你可以使用常量 SID 獲取以字符串格式表達的會話名稱和 ID。 請參考 會話處理。

session_id()函數參數:

id

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

Note: 如果使用 cookie 方式傳送會話 ID,并且指定了 id 參數, 在調用 session_start() 之后都會向客戶端發送新的cookie, 無論當前的會話 ID 和新指定的會話 ID 是否相同。

session_id()函數返回值:

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

php會話ID如何生成以及會話ID長度

    一個訪問者訪問你的 web 網站將被分配一個唯一的 id, 就是所謂的會話 id. 這個 id 可以存儲在用戶端的一個 cookie 中,也可以通過 URL 進行傳遞. Session會話用來追蹤每個用戶的會話,使用服務器生成的SessionID進行標識,用以區分用戶。Session存放在服務器的內存中,SessionID存放在服務器內存和客戶機的Cookie里面。這樣,當用戶發出請求時,服務器將用戶Cookie里面記錄的SessionID和服務器內存中的SessionID進行比對,從而找到這個用戶對應的Session進行操作。所以,如果客戶機禁止Cookie的話,Session也不能使用。

php會話ID是如何產生的?PHP默認的session id生成算法介紹

    以php5.3.6的源碼為例,進入/ext/session目錄,生成session id的函數位于session.c文件的345行,c語言函數原型如下:

PHPAPI char *php_session_create_id(PS_CREATE_SID_ARGS);

  有興趣的可以具體分析實現原理。

PHP默認的session id長度

截取一些實際的php 5.4.6服務端生成的session id如下:

sess_00nrqa20hjrlaiac0eu726i4q5  sess_89j9ifuqrbplk0rti2va2k1ha0  sess_g2rv1kd6ijsj6g6c9jq5mqglv5 
sess_04es72a83tqsl0jqd3cvrc4s01  sess_8b7a5lme60g49lvk4u4jiemdn1  sess_g3uk6d3gbashg5eoq0b2k7vsk0 
sess_04u0ns0oobh3g93t009bij2rq0  sess_8dfvkiv8ml44fdqrk1rcmjchs4  sess_g64tddhbo8pbj8bs7bel44rf35 
sess_0592dolr5m0k392fah7c9preg7  sess_8fhgkjuakhatbeg2fa14lo84q1  sess_g6kl828qqsnvdrse7ff52cl2a4 
sess_066g8irr0m22iqotscepub4e13  sess_8gn03i9j1tta7655qfj6nl1l53  sess_g8t45j6qce7mf55nk14cotj5i4 
sess_08nr1fav9jqs2pdi5qlpsmd247  sess_8gvu05313o7p9usksaacaiegu6  sess_gbtjmr57iat86c8ve86ar5nh40

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

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

輸出session_id()詳細代碼:

<?php
  session_start();
  echo session_id();
  // 輸出 08nr1fav9jqs2pdi5qlpsmd247
?>

設置 session_id()詳細代碼:

<?php
  session_id("www.169it.com");
  session_start();
  echo session_id();
  // 輸出 www.169it.com
?>

“php中session_id()函數詳細介紹和會話id生成過程以及session id長度”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天镇县| 琼中| 五峰| 乌兰县| 湘阴县| 探索| 长丰县| 昭苏县| 修武县| 布尔津县| 赤峰市| 荣昌县| 扎囊县| 易门县| 彰化市| 秦安县| 顺义区| 平乡县| 闻喜县| 峨边| 新龙县| 怀集县| 揭西县| 洞头县| 瓦房店市| 博兴县| 五常市| 碌曲县| 静海县| 津南区| 宁强县| 岳阳县| 武安市| 乐业县| 新巴尔虎左旗| 尖扎县| 义乌市| 康乐县| 旅游| 无为县| 醴陵市|