Server sẽ gửi các cookie cho Web Browser (ví dụ: màu nền, class "dark-theme", ...)
Lần sau Web Browser sẽ gửi ngược các Cookie này lên Server và Server sẽ nhận được Cookie, từ đó xác định được thông tin (như màu nền yêu thích, ...) ...
<?php
$name = 'is_login';
$value = true;
$expire = time()+3600;
$path = '/';
setcookie($name, $value,$expire ,$path);
?>7 đường dẫn thư mục mà cookie có hiệu lực. Sử dụng <?php
$name = 'is_login';
$value = true;
$expire = time()+3600;
$path = '/';
setcookie($name, $value,$expire ,$path);
?>8 cho biết cookie có hiệu lực ở mọi thư mục truy cập.
Bạn dùng biến <?php
setcookie('is_login', true, time()+ 3600, '/');
?>2 là một mảng để truy cập thông tin cookie do trình duyệt gửi lên. Giống như <?php
setcookie('is_login', true, time()+ 3600, '/');
?>3 bạn nên dùng <?php
setcookie('is_login', true, time()+ 3600, '/');
?>4 để kiểm tra sự tồn tại của COOKIE.
Xóa Cookie
Để yêu cầu trình duyệt xóa cookie bạn sử dụng chính hàm setcookie với thủ thuật đặt thời gian đã hết hạn (set thời gian về quá khứ). Ví dụ, lấy thời gian hiện tại trừ đi 60s: Thành công trang web trong 15' trước đó rồi, thì không cần hiển thị Form đăng nhập nữa -> mà chuyển hướng người dùng sang trang
chủ.
Thực hành Tạo chức năng Ghi nhớ Đăng nhập
WorkFlow xử lý chức năng Ghi nhớ Đăng nhập
Mong muốn
Nếu người dùng đã đăng nhập Thành công trang web trong 15' trước đó rồi, thì không cần hiển thị Form đăng nhập nữa -> mà chuyển hướng người dùng sang trang chủ.
Nếu người dùng chưa từng đăng nhập hoặc Cookie đã hết hạn sử dụng thì:
Xử lý logic/nghiệp vụ kiểm tra đăng nhập
Nếu thông tin Đăng nhập hợp lệ thì lưu vào Cookie giá trị
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Cookie trong PHP | Nền tảng VN</title>
</head>
<body>
<h2>Cookie trong PHP</h2>
<!-- Form Login -->
<form name="frmLogin" method="post" action="">
Tài khoản: <input type="text" name="username" id="username" /><br />
Mật khẩu: <input type="text" name="password" id="password" /><br />
Ghi nhớ đăng nhập: <input type="checkbox" name="remember_me" id="remember_me" value="1" /><br />
<input type="submit" name="btnLogin" value="Đăng nhập" />
</form>
<?php
// Xử lý nếu người dùng có bấm nút "btnLogin"
if(isset($_POST['btnLogin'])) {
// Lấy thông tin người dùng gởi đến Server
$username = $_POST['username'];
$password = $_POST['password'];
// Đối với checkbox cần kiểm tra xem giá trị có tồn tại hay không?
// Nếu có thì lấy giá trị do người dùng checked; nếu không thì phải gán giá trị mặc định
$remember_me = isset($_POST['remember_me']) ? 1 : 0;
// Xử lý các logic/Nghiệp vụ ...
// Nếu username=admin và password=123456 thì đăng nhập thành công
if($username == 'admin' && $password == '123456') {
// Hiển thị thông tin chào mừng
echo "<h2>Xin chào $username!</h2>";
} else {
echo "Đăng nhập thất bại!";
}
}
?>
</body>
</html>
Nếu thông tin Đăng nhập không hợp lệ thì hiển thị thông báo lỗi.
Nếu đăng nhập thành công và người dùng có check chọn <?php
setcookie('is_login', true, time()+ 3600, '/');
?>9 thì chúng ta sẽ lưu trữ giá trị <?php
$is_login = $_COOKIE['is_login'];
echo $is_login;
?>0 và <?php
$is_login = $_COOKIE['is_login'];
echo $is_login;
?>1 vào Cookie với thời hạn là <?php
$is_login = $_COOKIE['is_login'];
echo $is_login;
?>2
Hiệu chỉnh code như sau:
Step 3: bổ sung phần kiểm tra giá trị trong Cookie
Chúng ta sẽ kiểm tra trong Cookie, nếu:
Đã có giá trị của người dùng đăng nhập <?php
$is_login = $_COOKIE['is_login'];
echo $is_login;
?>0 và <?php
$is_login = $_COOKIE['is_login'];
echo $is_login;
?>1 thì không cần xử lý logic/nghiệp vụ đăng nhập nữa. Hiển thị màn hình chào mừng và điều hướng người dùng đến trang chủ trong <?php
$is_login = $_COOKIE['is_login'];
echo $is_login;
?>5.
Nếu thông tin Đăng nhập không hợp lệ thì hiển thị thông báo lỗi.
Step 1: tạo form Đăng nhập
Many of these configuration arguments are important for preventing attacks such as Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), Cookie Theft and Manipulation, Session Hijacking, and Session Fixation.