setcookie
(nhớ phải gọi trước các dòng code xuất html).
setcookie(name, value, expire, path, domain, security, httponly);
name
là tên cookie, tên này được sử dụng để truy cập vào biến $_COOKIE để lấy thông tinvalue
giá trị gán cho cookieexpire
Thời điểm hết hạn (hủy) của cookiepath
đường dẫn thư mục mà cookie có hiệu lực. Sử dụng /
cho biết cookie có hiệu lực ở mọi thư mục truy cập.domain
tên miềnsecurity
= 1 nếu sử dụng HTTPShttponly
= 1 nếu sử dụng chỉ giao thức http<?php setcookie("name", "NENTANG", time()+3600, "/","", 0); ?>
$_COOKIE
là một mảng để truy cập thông tin cookie do trình duyệt gửi lên. Giống như Session
bạn nên dùng isset()
để kiểm tra sự tồn tại của COOKIE.
<?php if( isset($_COOKIE["name"])) echo "Welcome " . $_COOKIE["name"] . "<br />"; else echo "Không có tên" . "<br />"; ?>
setcookie( "name", "", time()- 60, "/","", 0);
$_COOKIE['is_logged'] = true
và $_COOKIE[' username_logged']='tennguoidung'
/examples/cookies/form-ghi-nho-dang-nhap.php
<!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> <h1>Cookie trong PHP</h1> <!-- 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>
setcookie()
trong PHP để lưu trữ giá trị trong PHPGhi nhớ đăng nhập
thì chúng ta sẽ lưu trữ giá trị is_logged=1
và username_logged=tennguoidung
vào Cookie với thời hạn là 15' ~ 3600s
<!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> <h1>Cookie trong PHP</h1> <!-- 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') { // Nếu người dùng có chọn "Ghi nhớ Đăng nhập" // => tiến hành lưu thông tin vào COOKIE và gởi lại người dùng if($remember_me == 1) { // Thiết lập Cookie "Ghi nhớ đăng nhập" trong 15' ~ 3600s setcookie('is_logged', true, time()+ 3600, '/'); // Thiết lập Cookie "Tên username đã đăng nhập" trong 15' ~ 3600s setcookie("username_logged", $username, time()+3600, "/","", 0); } // 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>
is_logged=1
và username_logged=tennguoidung
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 5s
.<!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> <h1>Cookie trong PHP</h1> <?php // Kiểm tra xem Người dùng có sử dụng Ghi nhớ Đăng nhập không? if(isset($_COOKIE['is_logged'])) { // Lấy thông tin từ COOKIE từ Web Browser của client gởi đến $username_logged = isset($_COOKIE['username_logged']) ? $_COOKIE['username_logged'] : ''; echo "Xin chào <b>$username_logged</b>! Bạn đã đăng nhập rồi."; echo "Bạn sẽ được chuyển đến trang chủ trong 5s;"; echo '<script>setTimeout(function(){ window.location="/" }, 5000);</script>'; die; } ?> <!-- 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') { // Nếu người dùng có chọn "Ghi nhớ Đăng nhập" // => tiến hành lưu thông tin vào COOKIE và gởi lại người dùng if($remember_me == 1) { // Thiết lập Cookie "Ghi nhớ đăng nhập" trong 15' ~ 3600s setcookie('is_logged', true, time()+ 3600, '/'); // Thiết lập Cookie "Tên username đã đăng nhập" trong 15' ~ 3600s setcookie("username_logged", $username, time()+3600, "/","", 0); } // 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>
.theme-light
và tông màu tối .theme-dark
setcookie()
yêu cầu trình duyệt (web browser) lưu giá trị theme_class=tongmauyeuthich
theme_class
hay không? Nếu có thì hiển thị tông màu theo ý thích người dùng./examples/cookies/form-cau-hinh-giao-dien.php
<!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> <style> .theme-light { background: #fff; color: #000; } .theme-dark { background: #000; color: yellow; } </style> <?php // Mặc định giao diện là Theme nền sáng $theme_class = 'theme-light'; // Kiểm tra xem Người dùng có cấu hình giao diện theo ý thích không? if (isset($_COOKIE['theme_class'])) { // Lấy thông tin từ COOKIE từ Web Browser của client gởi đến $theme_class = isset($_COOKIE['theme_class']) ? $_COOKIE['theme_class'] : 'theme-light'; } ?> </head> <body class="<?= $theme_class ?>"> <h1>Cấu hình Giao diện sử dụng Cookie trong PHP</h1> <!-- Form Login --> <form name="frmLogin" method="post" action=""> <label><input type="radio" name="theme" id="theme-1" value="theme-light" checked />Giao diện nền Sáng</label><br /> <label><input type="radio" name="theme" id="theme-2" value="theme-dark" />Giao diện nền Tối</label><br /> <input type="submit" name="btnSave" value="Lưu" /> </form> <?php // Xử lý nếu người dùng có bấm nút "btnSave" if (isset($_POST['btnSave'])) { // Lấy thông tin người dùng gởi đến Server $theme = $_POST['theme']; // Xử lý các logic/Nghiệp vụ ... // Thiết lập Cookie "theme_class" trong 15' ~ 3600s setcookie('theme_class', $theme, time() + 3600, '/'); // Hiển thị thông tin chào mừng echo "<h2>Cấu hình đã được lưu!</h2>"; } ?> </body> </html>
Cùng nhau học tập, khám phá các kiến thức nền tảng về Lập trình web, mobile, database nhé.
Nền tảng kiến thức - Hành trang tới tương lai hân hạnh phục vụ Quý khách!
Khám phá, trải nghiệm ngay
Vui lòng đăng nhập để gởi bình luận!
Đăng nhậpChưa có bình luận nào!