Kỹ thuật lập trình PHP Lập trình PHP

Bài 9: Session và Cookie trong lập trình PHP

I. Session

a. Session là gì?

Session là một phiên làm việc, bắt đầu từ lúc bạn truy cập vào website cho đến lúc bạn tắt trình duyệt hoặc không truy cập website đó nữa.
Session có chức năng là lưu lại các dữ liệu trong phiên làm việc đó của bạn. Các dữ liệu sẽ mất đi khi bạn kết thúc phiên làm việc. Các dữ liệu này có thể được sử dụng trong tất cả các trang web trong website của bạn.

b. Khởi chạy session

Để chạy session, bắt đầu của chương trình PHP phải dùng lệnh session_start(). Các biến và dữ liệu của session được lưu trữ trong biến toàn cục $_SESSION. Biến này là một mảng, do đó có thể sử dụng như mảng trong ví dụ sau:

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

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

</body>
</html>

Ví dụ cho thấy cách tạo các biến session bằng cách sử dụng mảng $_SESSION. Các biến này có thể được truy cập từ các trang web trong toàn bộ website chứ trang này.

c. Truy xuất dữ liệu của session

Vì tính chất của session là sử dụng mảng $_SESSION, do đó việc lấy dữ liệu hoàn toàn giống với việc truy xuất mảng.

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

d. Kết thúc phiên làm việc

Để kết thúc sesion hoặc hủy bỏ tất cả session, sử dụng lần lượt hàm session_unset(); và session_destroy();

II. Cookie

a. Cookie là gì

Cookie là một tập tin nhỏ được trình duyệt gửi đến server mỗi khi người dùng yêu cầu một trang web. Cookie lưu trữ các thông tin để xác định người dùng.

b. Khởi tạo cookie

Để tạo cookie sử dụng hàm setcookie(). Hàm này gồm nhiều tham số, tuy nhiên chỉ cần quan tâm 4 tham số đầu tiên lần lượt theo thứ tự:

  • Tên cookie
  • Giá trị
  • Thời hạn tồn tại
  • Đường dẫn

Các cookie được tạo sẽ được lấy thông qua biến toàn cục $_COOKIE.

Ví dụ tạo và truy xuất giá trị cookie:

<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
echo "Cookie '" . $cookie_name . "' is set!<br>";
echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>

c. Sửa và xóa cookie

Để sửa cookie chỉ cần đặt lại giá trị cho cookie bằng hàm setcookie. Ví dụ:

<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>

Xóa cookie là đặt lại giá trị cho cookie là rỗng và thời hạn là thời gian trong quá khứ. Điều đó có nghĩa là làm cho cookie bị hết hạn, trình duyệt sẽ tự động hủy cookie đó. Ví dụ:

<?php
setcookie("user", "", time() - 3600);
?>