Sessions trong php

Lượt xem: 1164

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

Không giống như cookie, thông tin không được lưu trữ trên máy tính của người dùng.

Session trong php là gì?

Khi bạn làm việc với một ứng dụng, bạn mở nó, thực hiện một số thay đổi, rồi đóng nó. Điều này giống như một session. Máy tính biết bạn là ai. Nó biết khi nào bạn bắt đầu ứng dụng và khi nào bạn kết thúc. Nhưng trên internet có một vấn đề: máy chủ web không biết bạn là ai hoặc bạn làm gì, vì địa chỉ HTTP không duy trì trạng thái.

Biến session giải quyết vấn đề này bằng cách lưu trữ thông tin người dùng sẽ được sử dụng trên nhiều trang (ví dụ: tên người dùng, màu yêu thích, v.v.).

Theo mặc định, các biến session kéo dài cho đến khi người dùng đóng trình duyệt. Vì thế; Các biến session chứa thông tin về một người dùng và có sẵn cho tất cả các trang trong một ứng dụng.

Mẹo: Nếu bạn cần một bộ lưu trữ vĩnh viễn, bạn có thể muốn lưu trữ dữ liệu trong cơ sở dữ liệu.

Bắt đầu một PHP session

Một phiên được bắt đầu với hàm session_start(). 
Các biến sesion được đặt bằng biến toàn cục PHP: $_SESSION.

Bây giờ, hãy tạo một trang mới có tên "session1.php". Trong trang này, chúng ta bắt đầu một PHP session mới và đặt một số biến 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 >

Lưu ý: Hàm session_start() phải là thứ đầu tiên trong tài liệu của bạn. Trước bất kỳ thẻ HTML nào.

Lấy các giá trị biến PHP session

Tiếp theo, chúng ta tạo một trang khác gọi là "session2.php". Từ trang này, chúng ta sẽ truy cập thông tin biến session mà chúng ta đã đặt trên trang đầu tiên ("session1.php").

Lưu ý rằng các biến sesion không được truyền riêng lẻ cho từng trang mới, thay vào đó, chúng được truy xuất từ phiên chúng tôi mở ở đầu mỗi trang (session_start()).

Cũng lưu ý rằng tất cả các giá trị của biến phiên được lưu trữ trong biến $_SESSION toàn cục:

<?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>

Cập nhật giá trị cho biến php session

Để thay đổi giá trị một biến session, chỉ cần ghi đè lên 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>

Hủy PHP session

Để xóa tất cả các biến phiên chung và hủy session, hãy sử dụng 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>