Đơn giản nhất mình có thể demo như thế này, nội dung của 3 file và giải thích
login.php
Code:
<?php
// Đừng bao giờ quên dòng này để khởi động session
session_start();
// UserId và password đặt trước
$userId='demo';
$password='demo';
$errorMessage = '';
if (isset($_POST['txtUserId']) && isset($_POST['txtPassword'])) {
if (($userId==$_POST['txtUserId']) && ($password==$_POST['txtPassword'])) {
// ID và password đúng,
// set session
$_SESSION['db_is_logged_in'] = true;
//set cookie
setcookie('UserCookie', $userId, time()+3600); /* hết hạn trong 1 giờ */
// sau khi login thì chuyển qua admin.php
header('Location: admin.php');
exit;
} else {
$errorMessage = 'Sai id hoặc password, mời nhập lại';
}
}
?>
<html>
<head>
<title>Login</title>
</head>
<body>
<?php
if ($errorMessage != '') {
echo $errorMessage;
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post" name="frmLogin" id="frmLogin">
<table width="400" border="1" align="center" cellpadding="2" cellspacing="2">
<tr>
<td width="150">User Id</td>
<td><input name="txtUserId" type="text" id="txtUserId"></td>
</tr>
<tr>
<td width="150">Password</td>
<td><input name="txtPassword" type="password" id="txtPassword"></td>
</tr>
<tr>
<td width="150"> </td>
<td><input name="btnLogin" type="submit" id="btnLogin" value="Login"></td>
</tr>
</table>
</form>
</body>
</html>
Nhiệm vụ của file trên là để gõ vào UserId và password, thông thường thì 2 thứ đó phải được lấy ra từ database
admin.php
Code:
<?php
session_start();
// is the one accessing this page logged in or not?
if (!isset($_SESSION['db_is_logged_in']) || $_SESSION['db_is_logged_in'] !== true) {
// Chưa login, chuyển qua trang login
header('Location: login.php');
exit;
}
?>
<html>
<head>
<title>Admin Page</title>
</head>
<body>
<p>Chào bạn <b> <?php echo $_COOKIE['UserCookie']; ?> </b></p>
<p>Bạn đang ở trang Admin</p>
<p><a href="logout.php">Click here to Logout</a> </p>
</body>
</html>
Nếu chưa login thì giá trị session chưa được set, nó sẽ chuyển qua trang login.php
logout.php
Code:
<?php
session_start();
if (isset($_SESSION['db_is_logged_in'])) {
unset($_SESSION['db_is_logged_in']);
setcookie('UserCookie', "", -1);
}
// trở về trang login
header('Location: login.php');
?>