[英]Use of session_id() and session_name
我是PHP新手。 我在代碼中管理會話的方法是,只需使用session_start()
啟動會話。 在網上閱讀時,我遇到了session_id
和session_name
。
session_id
和session_name
的用途是什么。 基於應用程序,我們在哪里可以使用Php中的session_name
和session_id
。
我如何編寫代碼是:
<?php
session_start();
if(isset($_SESSION['name']))
{
//Render the page.
}
else
{
session_destroy();
//redirect to some simple page.
}
?>
根據我的代碼,在哪里可以使用session_id
或session_name
。 這是編寫代碼的好方法,還是我應該選擇使用session_id
和session_name
?
謝謝。
會話名稱是存儲session_id的cookie / url參數的名稱。 默認情況下,當您創建會話時,通常會創建一個特殊的cookie,名稱為PHPSESSID,session_id,該cookie的值稍后可以識別您。 您可以使用session_name更改默認會話名稱,但是必須在session_start之前調用session_name。 希望能有所幫助。
已編輯。
會話將向您的瀏覽器發送一個cookie,記住PHP已配置為使用COOKIES作為會話管理。
一旦創建了cookie並將其發送到瀏覽器,您就可以像訪問其他cookie一樣對其進行訪問,如果您使用print_R($ _ COOKIE),則將看到php會話cookie及其值。
最低限度地,您需要的是對session_start()的調用,這將為您啟動一個會話,必須在將任何輸出數據發送到瀏覽器之前調用該會話。
例如,這將導致錯誤。
echo "Hello"; session_start();
這是因為必須在將任何輸出發送到瀏覽器之前調用session_start()。 因此,為什么需要session_name(),僅僅是因為它允許您重命名cookie,默認情況下,會話名稱為PHPSESSID。 重命名會話可以減少黑客嘗試查找名稱為PHPSESSID的cookie的機會。 每個PHP開發人員都知道默認會話cookie名稱是什么,如果我是黑客,您認為我會首先尋找哪個cookie? 但這不是預防機制。
session_id()只是用來獲取會話的ID,它並不總是使用,它是為了方便起見,但如果您嘗試實現自己的會話管理,也可以使用它,因為PHP允許您這樣做。
簡而言之,啟動會話不需要session_name或session_id。 如果您還有其他疑問,可以在我的Google頁面上關注我,
https://plus.google.com/113820735365251703271
我很樂意進一步解釋。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.