HOWTO · PHP

PHP 會話編碼解碼

本教程演示瞭如何在 PHP 中對會話進行編碼和解碼。

本頁內容

在 PHP 中,會話是一種跨網頁處理資料的方式。會話編碼和解碼操作是儲存或讀取會話資料時的要求。

在 PHP 中演示使用 session_encode() 和 session_decode

內建函式 session_encode() 將 $_SESSION 陣列資料序列化為字串,然後 session_decode() 再次將會話資料轉換為真實格式。

我們通過表單插入資料,然後將其儲存到會話中:

test.php:

<html>
<head>
<title> Demonstration of Session </title>
</head>
<body>
<form action="action.php" method="post" >
<div style="border: 4px solid;padding:10px; width:40%">
Employee Name:<input type="text" name="employee">
ID:<input type="text"  name="id">
<input type="submit" value="SUBMIT" name="submit">
</div>
</form>
</body>
</html>

會話像 cookie 一樣工作;一旦我們啟動會話並開始儲存資料,我們就可以使用它直到會話被銷燬。

輸出:

PHP 會話編碼和解碼

編碼的會話字串包含由 ; 分隔的所有會話元素。這裡應該提到的是,這種序列化與 PHP serialize() 不同。

action.php:

<?php
if (isset($_POST['submit']))
{
    // Start the Session
    session_start();
    //Form Data
    $employee=$_POST['employee'];
    $id=$_POST['id'];
    //store the form data into session
    $_SESSION['employee']=$employee;
    $_SESSION['id']=$id;

    echo "According to the data from session: <br>";
    echo "Hello ". $employee. "! your ID is ".$id."<br><br>";

    echo"The encoded Session Data is: <br>";
	//encode the session
    $session_econded= session_encode();
    echo $session_econded."<br><br>";
	//decode session
    session_decode($session_econded);
    echo "Session data after decode: ";
    print_r( $_SESSION);
	//Destroy the Session
    session_destroy();
}
?>

輸出:

According to the data from session:
Hello Jack! your ID is 1234

The encoded Session Data is:
employee|s:4:"Jack";id|s:4:"1234";

Session data after decode: Array ( [employee] => Jack [id] => 1234 ) 

編碼資料採用類似於 PHP serialize() 的字串形式。