會話在 Web 應用程式中使用。 PHP 中會話的使用是為了使資料在網站的不同頁面上可用。姓名、地址等資料或資訊從一個頁面傳送到另一個使用者會話。此會話資訊用於身份驗證目的。就像 cookie 儲存在客戶端瀏覽器上一樣,會話資料儲存在伺服器上的暫存目錄中。
廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗開始您的免費軟體開發課程
網頁開發、程式語言、軟體測試及其他
要開始會話,我們使用 session_start() 函數。當會話開始時,預設持續時間為 24 分鐘,即 1440 秒。會話由會話標識符或 SID 來標識,SID 是標識每個使用者的唯一編號。
session_start() 是用來啟動會話的函數。如果會話已存在,則將使用同一個會話;否則,它將建立一個新會話。該函數始終在每個頁面的開頭調用。呼叫函數後,我們可以開始在會話變數中儲存值,但在此之前不能。 PHP 將使用者的資訊儲存在超級全域變數 $_SESSION 中。
為了知道儲存會話的目錄路徑,我們在 php.ini 檔案中有一個名為 session_save_path 的指令來儲存該路徑。此外,session_id 會列印與目前會話關聯的 ID。它是一個唯一的隨機產生的數字。
讓我們看看下面的程式。
在此程式中,當您使用 print_r($_SESSION) 列印此會話變數時,所有設定的會話資料都會被列印。輸出採用鍵值對關聯數組的形式。
在這個範例中,我們先使用session_start()函數啟動會話,初始化變數並使用_SESSION[‘name’] = $name將其指派給會話變量,列印超級全域數組。我們也使用 session_id() 函數列印唯一的會話 id 值。
範例
代碼:
<?php // example to start session //beginning a session // no arguments are passed to this function session_start(); //initializing variables $name = 'Neha';$age = 28; //storing values in session $_SESSION['name'] = $name; $_SESSION['age'] = $age; // printing session valuesprint_r($_SESSION); //using the session id echo '<br > The session_id is '; echo session_id(); ?>
輸出:
以下是刪除會話的範例:
Session_destroy()函數用來銷毀會話。該函數會破壞整個會話。要取消設定單一會話變量,我們可以使用 unset() 函數。
在這個例子中,我們首先列印會話數據,以了解會話保存的內容;然後,我們使用 unset() 函數銷毀已經設定的會話變數。在這裡,我們銷毀了設定的會話變量,例如姓名和年齡。銷毀後,我們再次列印會話,看到它返回空數組,這意味著變數已被取消設置,會話不再存在。
代碼:
<?php //example to unset session variables //starting a session session_start(); print_r($_SESSION); //before destroying the session //printing the session unset($_SESSION['name']); unset($_SESSION['age']); echo 'Session destroyed'; //after destroying the session //printing the session print_r($_SESSION); ?>
輸出:
在下面的範例中,我們正在銷毀一個會話。
要銷毀會話,我們會先檢查會話值,然後銷毀會話。並再次列印會話,這將是一個空數組,因為會話不存在。
代碼:
<?php //example to destroy session //starting a session session_start(); //to completely destroy a session session_destroy(); echo 'Session destroyed'; //after destroying the session //printing the session echo '<br />'; print_r($_SESSION); ?>
輸出:
在這裡,在程式中,我們看到在第一行中,我們啟動會話並將計數變數初始化為 0。接下來,我們檢查會話變數是否已設定。這裡我們檢查一個條件是否設定了會話名稱page_views;如果是,則將計數變數值加一,如果不是,則將計數值初始化為一。
代碼:
<?php session_start(); $count = 0; if(!isset($_SESSION['page_views'])) { $_SESSION['page_views'] = 1; $count = $_SESSION['page_views']; } else { $_SESSION['page_views'] = $_SESSION['page_views'] + 1 ; $count = $_SESSION['page_views']; } ?> <html> <head><title>Finding count of page views</title></head> <body> <?php echo '<br>'. 'The count of page views '. $count; ?> </body> </html>
輸出:
要在 PHP 中開啟自動會話,我們必須更改設定文件,即 php.ini。
其中 php.ini 是預設設定檔
會話不會自動開始;要使會話自動工作,我們必須執行以下操作,但完成後,會話會自動為所有文件啟動,並在預設時間結束後關閉。
因此在 php.ini 檔案中,我們將搜尋
session.auto_start = 0
並將值設為 1,如下所示
session.auto_start = 1
這將有助於 PHP 自動啟動會話。
本次會議的一些重要性如下。
本文解釋了什麼是會話、會話如何運作、如何建立會話、如何刪除特定會話。
此外,還解釋了我們如何使會話工作,透過將指令 session.auto_start() 值設為 1 自動啟動。
然後透過一個例子,解釋如何使用session來統計頁面被瀏覽的次數。此外,還解釋了該會議的重要性以及它如何用於不同目的。
以上是PHP 中的會話的詳細內容。更多資訊請關注PHP中文網其他相關文章!