簡體   English   中英

session_id()和session_name的使用

[英]Use of session_id() and session_name

我是PHP新手。 我在代碼中管理會話的方法是,只需使用session_start()啟動會話。 在網上閱讀時,我遇到了session_idsession_name

session_idsession_name的用途是什么。 基於應用程序,我們在哪里可以使用Php中的session_namesession_id

我如何編寫代碼是:

<?php
   session_start();
   if(isset($_SESSION['name']))
   {
       //Render the page.
   }
   else
   {
       session_destroy();
       //redirect to some simple page.
   }
?>

根據我的代碼,在哪里可以使用session_idsession_name 這是編寫代碼的好方法,還是我應該選擇使用session_idsession_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM