PHP – Sessions

Session là một cách để lưu trữ thông tin (trong các biến) được sử dụng trên nhiều trang.

Không giống như một cookie, Session KHÔNG được lưu trữ trên máy tính người dùng.

Session PHP là gì?

Biến Session lưu trữ thông tin người dùng qua qua nhiều trang. Theo mặc định biến session sẽ kéo dài cho tới khi người dùng đóng trình duyệt.

Bắt đầu Session

Một session bắt đầu với function session_start().

Các session được set với biến global là $_SESSION.

Ví dụ sau, chúng ta tạo file “demo_session1.php”, với session_start() bắt đầu session.

<?php
// Start the session
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Set session variables
$_SESSION["favcolor"] = "green";
$_SESSION["favanimal"] = "cat";
echo "Session variables are set.";
?>

</body>
</html>

Chú ý: session_start() bắt buộc nằm đầu tiên, trước tất cả thẻ HTML.

Get giá trị Session

Tiếp theo, chúng ta tạo một file khác gọi là “demo_session2.php”. Từ trang này, chúng tôi sẽ nhận giá trị Session mà chúng ta đã set (“demo_session1.php”).

Để sử dụng session và nhận session từ trang khác, chúng ta cũng sử dụng hàm session_start() ở đầu.

Tất cả biến session sẽ được lưu trữ trong global $_SESSION.

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// Echo session variables that were set on previous page
echo "Favorite color is " . $_SESSION["favcolor"] . ".<br>";
echo "Favorite animal is " . $_SESSION["favanimal"] . ".";
?>

</body>
</html>

Hay hiển thị ra mảng $_SESSION

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
print_r($_SESSION);
?>

</body>
</html>

Sessions sẽ set một user-key trên máy tính người dùng, chẳng hạn 765487cf34ert8dede5a562e4f3a7e12, sau đó khi session được mở trên 1 trang khác, nếu có user-key đúng, nó sẽ truy cập vào session đó, nếu không nó sẽ bắt đầu session mới.

Sửa biến Session

Để thay đổi Session, chỉ cần ghi đè lên biến đó:

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// to change a session variable, just overwrite it 
$_SESSION["favcolor"] = "yellow";
print_r($_SESSION);
?>

</body>
</html>

Xóa biến Session

Để xóa tất cả global session và hủy session, dùng hàm session_unset() và session_destroy():

<?php
session_start();
?>
<!DOCTYPE html>
<html>
<body>

<?php
// remove all session variables
session_unset(); 

// destroy the session 
session_destroy(); 
?>

</body>
</html>