PHP MVC CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
Dự án mới của mình là gamehow.net, mời anh em ghé thăm và góp ý ạ.

[Module User] - Chức năng đăng xuất

Bài trước chúng ta đã xây dựng xong chức năng đăng nhập, vậy thì bài này chúng ta sẽ làm một chức năng ngược với đăng nhập đó là đăng xuất.

Chức năng đăng xuất hoạt động như sau: Khi người dùng truy cập vào trang đăng xuất thì sẽ lập tức xóa session người dùng, sau đó redirect lại trang login của hệ thống.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Trước khi vào vấn đề chính thì bạn sẽ phải bổ sung một số hàm trong thư viện như sau:

1. Bổ sung thư viện xử lý role

Bạn vào file libs/role.php và bổ sung hai hàm sau:

 

// Lấy username người dùng hiện tại
function get_current_username(){
    $user  = is_logged();
    return isset($user['username']) ? $user['username'] : '';
}

// Lấy level người dùng hiện tại
function get_current_level(){
    $user  = is_logged();
    return isset($user['level']) ? $user['level'] : '';
}

 

Hai hàm này dùng để lấy thông tin username và level của người dùng hiện tại (tức là người dùng đang login).

2. Viết chức năng logout

Bạn vào file admin/modules/common/logout.php và nhập đoạn code sau:

 

if (!defined('IN_SITE')) die('The request not found'); 

// Xóa session login
set_logout();

// Chuyển hướng sang trang login
redirect(base_url('admin/?m=common&a=login'));

 

File này sẽ xử lý xóa session login và redirect sang trang login.

3. Xuất tên người dùng đang đăng nhập ở header

Bạn vào file admin/widgets/header.php và tìm đoạn code sau:

 

<div>
    Xin chào Admin | 
    <a href="#">Login</a>
    <a href="#">Out</a>
</div>

 

Sau đó sửa lại như sau:

 

<div>
    Xin chào <?php echo get_current_username(); ?> |
    <a href="<?php echo base_url('admin/?m=common&a=logout'); ?>">Logout</a>
</div>

 

Ở đoạn code trên sẽ xuất ra tên người dùng đang đăng nhập và kèm theo nút logout, nút này sẽ link đến module common/logout.php.

Bây giờ bạn hãy đăng nhập vào hệ thống sẽ thấy kết quả ở header như sau:

header thong tin nguoi dung png

Sau đó bạn click vào nút logout thì sẽ bị đẩy sang trang login bởi Session lưu thông tin đăng nhập đã bị xóa.

Sau khi logout thì các bạn thấy ở phía trên cùng của website vẫn còn xuất hiện menu và một câu thông báo, điều này không phù hợp bởi vì chỉ khi người dùng đã đăng nhập rồi mới thấy phần đó. Để giải quyết vấn đề này thì ta cho phần header vào một câu lênh if, câu lệnh này sẽ kiểm tra nếu là admin (tức là đã đăng nhập) thì mới xuất hiện.

Các bạn bổ sung một lệnh if bao bên ngoài thẻ div#header.

 

<?php if (is_admin()){ ?>
<div id="header">
    <ul>
        <li>
            <a href="#">User</a>
        </li>
        <li>
            <a href="#">Tin tức</a>
        </li>
        <li>
            <a href="#">Bình Luận</a>
        </li>
    </ul>
    <div>
        Xin chào <?php echo get_current_username(); ?> |
        <a href="<?php echo base_url('admin/?m=common&a=logout'); ?>">Logout</a>
    </div>
</div>
<?php } ?>

 

Các bạn refresh lại trang sẽ thấy nó đã bị mất, chỉ khi nào đã đăng nhập thì mới xuất hiện.

4. Lời kết

Vậy là chúng ta đã xử lý xong chức năng đăng nhập và đăng xuất trong admin, chức năng này khá quan trọng bởi nó sẽ phân quyền chỉ có admin mới có thể sử dụng website. Bài tiếp theo chúng ta sẽ viết thư viện phân trang bằng PHP thuần để phân trang danh sách người dùng.

Cùng chuyên mục:

Hàm key_exists() trong PHP

Hàm key_exists() trong PHP

Cách sử dụng key_exists() trong PHP

Hàm mysqli_fetch_row() trong PHP

Hàm mysqli_fetch_row() trong PHP

Cách sử dụng mysqli_fetch_row() trong PHP

Hàm end() trong PHP

Hàm end() trong PHP

Cách sử dụng end() trong PHP

Hàm mysqli_field_count() trong PHP

Hàm mysqli_field_count() trong PHP

Cách sử dụng mysqli_field_count() trong PHP

Hàm count() trong PHP

Hàm count() trong PHP

Cách sử dụng count() trong PHP

Hàm mysqli_field_seek() trong PHP

Hàm mysqli_field_seek() trong PHP

Cách sử dụng mysqli_field_seek() trong PHP

Hàm compact() trong PHP

Hàm compact() trong PHP

Cách sử dụng compact() trong PHP

Hàm mysqli_field_tell() trong PHP

Hàm mysqli_field_tell() trong PHP

Cách sử dụng mysqli_field_tell() trong PHP

Hàm array_values() trong PHP

Hàm array_values() trong PHP

Cách sử dụng array_values() trong PHP

Hàm mysqli_free_result() trong PHP

Hàm mysqli_free_result() trong PHP

Cách sử dụng mysqli_free_result() trong PHP

Hàm array_unshift() trong PHP

Hàm array_unshift() trong PHP

Cách sử dụng array_unshift() trong PHP

Hàm mysqli_get_charset() trong PHP

Hàm mysqli_get_charset() trong PHP

Cách sử dụng mysqli_get_charset() trong PHP

Hàm array_shift() trong PHP

Hàm array_shift() trong PHP

Cách sử dụng array_shift() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Hàm mysqli_get_client_stats() trong PHP

Cách sử dụng mysqli_get_client_stats() trong PHP

Hàm array_unique() trong PHP

Hàm array_unique() trong PHP

Cách sử dụng array_unique() trong PHP

Hàm mysqli_get_client_version() trong PHP

Hàm mysqli_get_client_version() trong PHP

Cách sử dụng mysqli_get_client_version() trong PHP

Hàm array_uintesect() trong PHP

Hàm array_uintesect() trong PHP

Cách sử dụng array_uintesect() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Hàm mysqli_get_connection_stats() trong PHP

Cách sử dụng mysqli_get_connection_stats() trong PHP

Hàm array_sum() trong PHP

Hàm array_sum() trong PHP

Cách sử dụng array_sum() trong PHP

Hàm mysqli_get_host_info() trong PHP

Hàm mysqli_get_host_info() trong PHP

Cách sử dụng mysqli_get_host_info() trong PHP

Top