Hướng dẫn đăng nhập php mvc

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:

Chủ Đề