1] Chuẩn bị giao diện đăng nhập Admin
Tạo file View/client/pages/login_admin.php và chèn đoạn code sau:
Đăng nhập Admin
Tên đăng nhập *
Mật khẩu *
Đăng nhập
Chạy đường dẫn để hiển thị giao diện đăng nhập Admin:
//localhost/blog/?controller=login
2] Viết chức năng đăng nhập
Tạo file Controller/client/login.php
Kiểm tra nếu tồn tại $_SESSION['useradmin'] chuyển hướng vào trang admin ngược lại hiển thị giao diện đăng nhập Admin
public function __construct[]
{
/**
* Nếu tồn tại $_SESSION['useradmin'] chuyển hướng vào trang admin
* Ngược lại hiển thị giao diện đăng nhập
* @var array
*/
if [!empty[$_SESSION['useradmin']]] {
header['Location: View/admin'];
} else {
$userModel = new UserModel[];
$error = $this->loginAdmin[$userModel];
require['View/client/pages/login_admin.php'];
}
}
Viết hàm đăng nhập:
public function loginAdmin[$userModel]
{
$username = $password = $fullName = NULL;
$error = array[];
$error['username_admin'] = $error['password_admin'] = NULL;
if [!empty[$_POST['login_admin']]] {
if [empty[$_POST['username_admin']]] {
$error['username_admin'] = '* Cần điền tên đăng nhập';
} else {
$username = $_POST['username_admin'];
}
if [empty[$_POST['password_admin']]] {
$error['password_admin'] = '* Cần điền mật khẩu';
} else {
$password = md5[md5[$_POST['password_admin']]];
}
if [$username && $password] {
$result = $userModel->login[$username, $password];
$check = $result->num_rows; /*đếm số dòng trong database*/
/**
* Nếu số dòng trong database > 0 => lưu session + lấy dữ liệu + chuyển hướng
* Ngược lại thông báo alert bằng script
* @var array
*/
if [$check > 0] {
$data = $result->fetch_array[]; /*lấy dữ liệu tương ứng với username và password nhập*/
$_SESSION['useradmin'] = $data; /*lưu session*/
/**
* Nếu level = 1 thì chuyển hướng đến trang quản trị viên
* Ngược lại thì thông báo đăng nhập lại
* @var array
*/
if [$data['level'] == admin] {
header['Location: View/admin'];
} else {
echo "alert['Vui lòng đăng nhập lại']";
}
} else {
echo "alert['Sai mật khẩu hoặc tên đăng nhập']";
}
}
}
return $error;
}
File Controller/client/login.php hoàn chỉnh: