Articles

Sử dụng Session và Cookie trong PHP

by Fpt Aptech FPT Aptech

Có nhiều sự nhầm lẫn trong việc sử dụng cookie session trong PHP. Đây là điều mà các lập trình viên cần phải lưu ý. Nếu muốn tìm hiểu thêm thông tin về cách sử dụng Session và Cookie trong PHP, hãy đọc ngay bài viết sau để có thêm thông tin bổ ích.

Thế nào là Session trong PHP?

Việc sử dụng cookie session trong PHP luôn được các lập trình viên lưu ý vì cả hai thường hay có nhầm lẫn. Vì vậy, khi sử dụng cookie session trong PHP, lập trình viên phải thật sự để ý một cách kĩ lưỡng để có thể thực hiện và sử dụng nó một cách phù hợp.

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 và sau đó bạn đóng nó. Máy tính biết bạn là ai, nó biết khi bạn bắt đầu ứng dụng và khi bạn kết thúc nó. 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 sẽ không duy trì trạng thái. Và session sẽ giải quyết việc này. Vậy session php là gì?

Session trong PHP sẽ 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, Session sẽ kéo dài cho đến khi người dùng đóng trình duyệt. Do đó, Session  là thông tin về phiên làm việc cho từng khách truy cập, nó chứa thông tin về một người dùng duy nhất và có sẵn cho tất cả các trang trong một ứng dụng.

Session trong PHP lưu trữ thông tin người dùng sẽ được sử dụng trên nhiều trang

Session trong PHP lưu trữ thông tin người dùng sẽ được sử dụng trên nhiều trang

Tìm hiểu thêm: session php là gì

Sử dụng Session trong PHP

Bắt đầu với Session PHP 

Một Session được bắt đầu với hàm session_start (). 

Các Session được đặt với biến toàn cầu PHP: $ _Session. 

Bây giờ, hãy tạo một trang mới có tên là "demo_session1.php". Trong trang này, chúng tôi bắt đầu một PHP Session mới và đặt một số biến số Session:

// Start the session

session_start();

?>

// Set session variables

$_SESSION["favcolor"] = "green";

$_SESSION["favanimal"] = "cat";

echo "Session variables are set.";

?>

Hàm session_start () phải là hàm đầu tiên trong document của bạn. Trước bất kỳ thẻ HTML nào khác.

  • Nhận các giá trị của biến PHP Session

Tiếp theo, chúng ta cần tạo một trang khác có tên là "demo_session2.php". Từ trang này, ta sẽ truy cập thông tin của session mà chúng tôi đặt trên trang đầu tiên ("demo_session1.php"). Lưu ý rằng các biến Session không được truyền riêng cho mỗi trang mới, thay vào đó chúng được truy xuất từ Session được mở ở đầu mỗi trang (session_start ()). Cũng lưu ý rằng tất cả các giá trị biến Session được lưu trữ trong biến $ _Session toàn cầu:

session_start();

?>

// Echo session variables that were set on previous page

echo "Favorite color is " . $_SESSION["favcolor"] . ".
";

echo "Favorite animal is " . $_SESSION["favanimal"] . ".";

?>

Sửa đổi biến PHP Session 

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

session_start();

?>

// to change a session variable, just overwrite it

$_SESSION["favcolor"] = "yellow";

print_r($_SESSION);

?>

Xóa Session trong PHP

Để xóa tất cả các biến Session, hãy sử dụng session_unset () và session_destroy ():

session_start();

?>

// remove all session variables

session_unset();

// destroy the session

session_destroy();

?>

Thế nào là Cookie trong PHP?

Sau khi đã tìm hiểu được về sử dụng Session, ta sẽ tiếp tục tìm hiểu về phần còn lại trong cookie session, Cookie. Vậy Cookie trong PHP là gì? Một cookie thường được sử dụng để theo dõi và lưu lại hoạt động truy cập của người dùng. Cookie là một tệp nhỏ mà máy chủ gắn vào máy tính của người dùng. Mỗi lần một máy tính yêu cầu một trang với trình duyệt, nó cũng sẽ gửi cookie. Với PHP, bạn có thể tạo và truy xuất các giá trị cookie.

Cookie thường được sử dụng để theo dõi và lưu lại hoạt động truy cập của người dùng

Cookie thường được sử dụng để theo dõi và lưu lại hoạt động truy cập của người dùng

Sử dụng Cookie trong PHP

  • Tạo cookie với PHP

Cookie được tạo với hàm  setCookie () với cú pháp:

setCookie (tên, giá trị, ngày hết hạn, đường dẫn, tên miền, an toàn, httponly);

Ta chỉ cần tham số tên. Tất cả các tham số khác là tùy chọn.

  • PHP Tạo/Truy xuất Cookie

Ví dụ sau đây tạo ra một cookie có tên "Người Dùng" với giá trị là "Lan Anh". Cookie sẽ hết hạn sau 30 ngày (86400 * 30). "/" có nghĩa là cookie có sẵn trong toàn bộ trang web (nếu không, chọn thư mục bạn thích). Sau đó, chúng tôi lấy giá trị của cookie "người dùng" (sử dụng biến toàn cục $ _cookie) và sử dụng hàm isset () để tìm hiểu xem cookie có được đặt không:

$cookie_name = "user";

$cookie_value = "John Doe";

setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day

?>

if(!isset($_COOKIE[$cookie_name])) {

     echo "Cookie named '" . $cookie_name . "' is not set!";

} else {

     echo "Cookie '" . $cookie_name . "' is set!
";

     echo "Value is: " . $_COOKIE[$cookie_name];

}

?>


Note: You might have to reload the page to see the value of the cookie.



Lưu ý: Hàm setCookie () phải xuất hiện trước thẻ .

Giá trị của cookie được tự động được mã hóa khi gửi cookie và tự động được giải mã khi nhận được (để ngăn chặn url encoding, sử dụng setRawCookie () thay vào đó).

  • Sửa đổi giá trị cookie 

Để sửa đổi cookie, chỉ cần đặt cookie bằng hàm setCookie () thêm lần nữa:

$cookie_name = "user";

$cookie_value = "Alex Porter";

setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");

?>


if(!isset($_COOKIE[$cookie_name])) {

  echo "Cookie named '" . $cookie_name . "' is not set!";

} else {

  echo "Cookie '" . $cookie_name . "' is set!
";

  echo "Value is: " . $_COOKIE[$cookie_name];

}

?>


  • Xóa cookie 

Để xóa cookie, sử dụng hàm setCookie () với ngày hết hạn trong quá khứ:

// set the expiration date to one hour ago

setcookie("user", "", time() - 3600);

?>


echo "Cookie 'user' is deleted.";

?>


Kết luận

Như vậy, chúng tôi đã giúp bạn tìm hiểu về cách sử dụng cookie session trong PHP. Hi vọng bài viết đã mang tới cho bạn những thông tin thật sự bổ ích. Nếu bạn cũng đang quan tâm đến những bài viết khác, hãy đọc các bài viết trên website của Aptech để có thêm được những nguồn kiến thức cần thiết nhé.


Sponsor Ads


About Fpt Aptech Junior   FPT Aptech

3 connections, 0 recommendations, 17 honor points.
Joined APSense since, June 6th, 2022, From canifornia, United States.

Created on Dec 15th 2022 20:48. Viewed 703 times.

Comments

No comment, be the first to comment.
Please sign in before you comment.