Phần trước: Cookie (1) - Tìm hiểu về cookie
-----
1.8 Bài tập về cookie
Bài tập 1: Viết chương trình để khi truy cập vào trang web, chương
trình sẽ xuất thời gian truy cập lần gần đây nhất. Đây là đoạn mã tham khảo:
<?php
echo
"Chao ban, <br>";
if(isset($_COOKIE['thoiGianTruyCap']))
{
echo
"Thoi gian truy cap gan day nhat la: " . date('d/m/Y H:i:s',
$_COOKIE['thoiGianTruyCap']);
setcookie('thoiGianTruyCap',
time(), time() + 600);
} else {
setcookie('thoiGianTruyCap',
time(), time() + 600);
}
?>
Xem thêm clip sau (của tác giả Lưu Trường Hải Lân): https://www.youtube.com/watch?v=PATRjYG2nhM&list=PLv6GftO355AsZFXlWLKob6tMsWZa4VCY1&index=105
Bài tập 2:
2.1. Thiết kế giao diện sau (vùng có viền đỏ) bằng HTML và CSS,
có thể dùng Bootstrap hoặc không. (yêu cầu này là tùy chọn, cho bạn nào thích
làm về front-end)
2.2. Kiểm tra thông tin đăng nhập của người dùng, nếu khớp với
thông tin người dùng trong tập tin users.ini thì tạo cookie lưu lại thông tin
đăng nhập. Lưu ý: Tên đăng nhập có thể là họ tên hoặc số điện thoại. Chưa xử lý
phần Mã kiểm tra.
2.3. Sau khi người dùng đăng nhập thành công, duy trì việc
đăng nhập này trong 3 phút, quá thời gian này, tự động đăng xuất người dùng.
Mã nguồn tham khảo:
[index.php]
<!DOCTYPE html>
<html lang="en">
<head>
<meta
charset="UTF-8">
<title>Document</title>
<link
href="css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div
class="container">
<?php
if
(isset($_COOKIE['fullname'])) {
echo '<h3>
Xin chào: ' . $_COOKIE['fullname'] . '</h3>';
echo '<a
href="logout.php">Đăng xuất</a>';
} else {
?>
<h3
class="text-center">Login</h3>
<div
class="row">
<div class="col-md-4
col-md-offset-4">
<form
action="process.php" method="post">
<div
class="form-group">
<label
for="username">Username</label>
<input
type="text" id="username"
name="username"class="form-control">
</div>
<div
class="form-group">
<label
for="password">Password</label>
<input
type="password" id="password" name="password"
class="form-control">
</div>
<button
type="submit" class="btn btn-primary">Đăng nhập</button>
</form>
</div>
</div>
<?php
}
?>
</div>
</body>
</html>
[process.php]
<h3 class="text-center">process</h3>
<?php
// kiểm tra dữ liệu
khác rỗng
function
checkEmpty($value) {
$flag = false;
if (!isset($value)
|| trim($value) == '') {
$flag = true;
}
return $flag;
}
if
(isset($_COOKIE['fullname'])) {
echo '<h3>
Xin chào: ' . $_COOKIE['fullname'] . '</h3>';
echo '<a
href="logout.php">Đăng xuất</a>';
} else {
if
(!checkEmpty($_POST['username']) && !checkEmpty($_POST['password'])) {
$username =
$_POST['username'];
$password =
md5($_POST['password']);
$data =
parse_ini_file('users.ini');
if
(array_key_exists($username, $data)) {
$userInfo =
explode ('|', $data[$username]);
if ($username
== $userInfo[0] && $password == $userInfo[1]) {
setcookie('fullname', $userInfo[2], time() + 200);
echo
'<h3> Xin chào: ' . $userInfo[2] . '</h3>';
echo '<a
href="logout.php">Đăng xuất</a>';
} else {
header('location:index.php');
}
}else {
header('location:index.php');
}
} else {
// die('test');
header('location:index.php');
}
}
?>
[logout.php]
<?php
setcookie('fullname');
header('location:index.php');
?>
[users.ini]
teo = "teo|c4ca4238a0b923820dcc509a6f75849b|Nguyen Van
Teo"
ti = "ti|c81e728d9d4c2f636f067f89cc14862c|Tran Van
Ti"
Video tham khảo phần backend: https://www.youtube.com/watch?v=PATRjYG2nhM&list=PLv6GftO355AsZFXlWLKob6tMsWZa4VCY1&index=105
-----