PHP 中的會話

PHPz
發布: 2024-08-29 12:42:28
原創
1094 人瀏覽過

會話在 Web 應用程式中使用。 PHP 中會話的使用是為了使資料在網站的不同頁面上可用。姓名、地址等資料或資訊從一個頁面傳送到另一個使用者會話。此會話資訊用於身份驗證目的。就像 cookie 儲存在客戶端瀏覽器上一樣,會話資料儲存在伺服器上的暫存目錄中。

廣告 該類別中的熱門課程 PHP 開發人員 - 專業化 | 8 門課程系列 | 3次模擬測驗

開始您的免費軟體開發課程

網頁開發、程式語言、軟體測試及其他

要開始會話,我們使用 session_start() 函數。當會話開始時,預設持續時間為 24 分鐘,即 1440 秒。會話由會話標識符或 SID 來標識,SID 是標識每個使用者的唯一編號。

如何在 PHP 中建立會話?

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();
?>
登入後複製

輸出:

PHP 中的會話

如何在 PHP 中刪除會話?

以下是刪除會話的範例:

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 中的會話

如何銷毀會話?

在下面的範例中,我們正在銷毀一個會話。

要銷毀會話,我們會先檢查會話值,然後銷毀會話。並再次列印會話,這將是一個空數組,因為會話不存在。

範例#1

代碼:

<?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);
?>
登入後複製

輸出:

PHP 中的會話

在這裡,在程式中,我們看到在第一行中,我們啟動會話並將計數變數初始化為 0。接下來,我們檢查會話變數是否已設定。這裡我們檢查一個條件是否設定了會話名稱page_views;如果是,則將計數變數值加一,如果不是,則將計數值初始化為一。

範例#2

代碼:

<?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 中開啟自動會話?

要在 PHP 中開啟自動會話,我們必須更改設定文件,即 php.ini。

其中 php.ini 是預設設定檔

會話不會自動開始;要使會話自動工作,我們必須執行以下操作,但完成後,會話會自動為所有文件啟動,並在預設時間結束後關閉。

因此在 php.ini 檔案中,我們將搜尋

session.auto_start = 0

並將值設為 1,如下所示

session.auto_start = 1

這將有助於 PHP 自動啟動會話。

會議的重要性

本次會議的一些重要性如下。

  • 像 $_COOKIE 一樣,我們有 $_SESSION,它是一個超全域變數並儲存在伺服器上。
  • 如果使用者的瀏覽器不支援cookie,我們可以使用session。每個會話都有一個根據使用者造訪網站而指派的唯一 ID。
  • 在儲存資料方面,Session 儲存的資料比​​ Cookie 可以儲存的資料還要多。
  • 會話用於將訊息從一個頁面傳送到另一個頁面。
  • 此會話可用於取得網站的訪客數量。
  • 會話也用於身份驗證目的。
  • 產生的會話 ID 是唯一的。

結論

本文解釋了什麼是會話、會話如何運作、如何建立會話、如何刪除特定會話。

此外,還解釋了我們如何使會話工作,透過將指令 session.auto_start() 值設為 1 自動啟動。

然後透過一個例子,解釋如何使用session來統計頁面被瀏覽的次數。此外,還解釋了該會議的重要性以及它如何用於不同目的。

以上是PHP 中的會話的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
php
來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板