[PHP] – Bài 11: Cookies và Session trong PHP

Cookies và session là vấn đề thường gặp trong lập trình web. Trong bài học này, chúng ta sẽ tìm hiểu về cookies và session trong PHP.

Video Cookies và Session trong PHP

Hướng dẫn chi tiết

Có làm thì mới có ăn như ai đó từng nói - Vài dòng ngắn cho QUẢNG CÁO nhé

Các bạn cần hosting WordPress nhanh, rẻ và dễ sử dụng có free SLL hãy chọn Azdigi nhé.
Link đăng ký: NHẬN NGAY ƯU ĐÃI
Nếu các bạn đăng ký và sử dụng hosting từ link trên, Góc Làm Web sẽ có một ít tiền để duy trì. 

Cookies – $_COOKIES

Cookie thường được sử dụng để xác định người dùng. Cookie là một tệp nhỏ mà máy chủ nhúng trên máy tính của người dùng. Mỗi lần cùng một máy tính yêu cầu một trang bằng trình duyệt, nó cũng sẽ gửi cookie. Với PHP, bạn có thể tạo và lấy các giá trị cookie.

Tạo cookies bằng PHP

Đề tạo ra cookies, chúng ta dùng hàm setcookie.

setcookie ( string $tên , string $giá trị, int $hết hạn, string $đường dẫn, string tên miền, bool bảo mật, bool httponly );

"Người ta tắt AdsBlock không phải vì người ta dại, mà người ta quý mình nên coi quảng cáo"

Hosting WordPress nhanh, rẻ và dễ sử dụng có free SLL hãy chọn Azdigi nhé.
Link đăng ký: NHẬN NGAY ƯU ĐÃI
Nếu các bạn mua hosting từ link trên, mình sẽ có một ít tiền để duy trì. Cảm ơn

Ví dụ: chúng ta sẽ tạo ra 1 cookie lưu lại tên người dùng và sẽ hết hạn sau 1 tháng. Hàm time dùng để lấy thời gian hiện tại cộng thêm 86400 giây (1 ngày) nhân với 30 ngày.

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

Lấy cookies

Để lấy giá trị của cookies, chúng ta sử dụng biến siêu toàn cục $_COOKIES. Về vấn đề biến siêu toàn cục, các bạn có thể xem lại bài 8 nhé.

if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie được lấy ra là'" . $cookie_name . "' không tồn tại!";
} else {
    echo "Cookie : " . $_COOKIE[$cookie_name];
}

Chỉnh sửa cookies

Để chỉnh sửa cookies, chúng ta chỉ cần đặt lại cookies với cùng tên gọi.

$cookie_name = "user_name";
$cookie_value = "Góc Làm Web";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");

Xóa cookies

Để xóa cookies, bạn đặt lại cookies như trường hợp sửa cookies. Tuy nhiên, khác biệt ở chỗ bạn đặt expires_time time trừ một khoảng thời gian. Khi hết thời gian tồn tại, cookies sẽ hết hạn.

Lưu ý: khi thoát trình duyệt, cookies vẫn còn tồn tại miễn là chưa hết thời gian bạn đặt.

Session

Session cũng là một cách để lưu thông tin của người dùng để sử dụng trên nhiều trang. Session khác với Cookies ở chỗ, session được lưu ở máy chủ thay vì lưu ở máy người dùng. Do đó, ngay khi thoát trình duyệt, session sẽ bị mất.

Khởi tạo session

Chúng ta khởi tại session (phiên) với hàm session_start. Để đặt giá trị cho session, chúng ta chỉ cần làm như gán giá trị cho biến.

$_SESSION["color"] = "Đỏ";

Để lấy dữ liệu từ session, chúng ta sử dụng $_SESSION.

echo $_SESSION["color"];

Sửa session

Để sửa session, chúng ta chỉ cần gán lại giá trị khác.

$_SESSION["color"] = "Xanh";

Xóa session

Đầu tiên chúng ta sẽ bỏ toàn bộ giá session hiện tại. Sau đó sẽ xóa session.

// remove all session variables
session_unset();
// destroy the session
session_destroy();

Tổng kết

  • Cookies lưu dữ liệu trên máy người dùng, không bị mất đi khi thoát trình duyệt.
  • Session lưu dữ liệu trên máy chủ, mất đi không thoát trình duyệt. Do đó, session tương đối bảo mật hơn so với cookies.

Code mẫu: Download

Nếu có thắc mắc, hãy đặt câu hỏi bằng cách comment bên dưới, qua email, hoặc nhắn tin qua Fanpage Góc làm web.

Liên hệ