Ở các bài trước, chúng ta đã cùng tìm hiểu về việc thêm một thành viên và thiết lập trang đăng nhập vào hệ thống administrator. Ở bài này, chúng ta sẽ cùng nghiên cứu về ứng dụng quản trị các tài khoản. Hay nói cách khác là hệ thống lại toàn bộ danh sách của những thành viên trên website của chúng ta.
Sau khi đăng nhập vào trang admin người dùng sẽ được đẩy sang trang quản lý admin, tại đây chỉ những ai đã đăng nhập đúng với username và password trong cơ sở dữ liệu và có quyền hạn level là 2 thì mới có thể truy xuất vào trang này. Vì vậy chúng ta cần thao tác kiểm tra session để quản lý phiên làm việc của người sử dụng. Đặt đoạn code sau ở những trang bạn muốn kiểm tra quyền truy cập của người sử dụng.
1 2 3 4 5 6 7 8 9 10 11 12 | ?php sessison_start(); if (isset( $_SESSION [ 'userid' ]) $_SESSION [ 'level' ] == 2) { // tại đây thực thi các hoạt động khi đăng nhập thành công. } else { header( "location: login.php" ); exit (); } ? |
Như vậy, chúng ta sẽ đặt đoạn code này ở trang quản lý user. Cụ thể tôi đặt trang này có tên file là manage_user.php. Vì dữ liệu sẽ lặp lại toàn bộ user và ứng với từng user sẽ là 1 dòng dữ liệu được lặp lại. Chúng ta sẽ xây dựng 1 bảng gồm có STT là số thứ tự của từng user được đếm trên mỗi user khi lặp, username là tên truy cập của họ, level là cấp bậc của user (1 là member và 2 là admin), edit là cột chứa các link chỉnh sửa user, del là cột xóa các user.
1 2 3 4 5 6 7 8 | table align= 'center' awidth= '400' border= '1'
tr tdSTT/td tdUsername/td tdLevel/td tdEdit/td tdDel/td /tr |
Tiếp theo, chúng ta sẽ kết nối CSDL để tiến hành lặp các user.
1 2 3 4 5 6 7 8 9 10 | ?php $conn =mysql_connect( "localhost" , "root" , "root" ) or die ( "can't connect this database" ); mysql_select_db( "project" , $conn ); $sql = "select * from user order by id DESC" ; $query =mysql_query( $sql ); if (mysql_num_rows( $query ) == "" ) { echo "trtd colspan='5' align='center'Chua co username nao/td/tr" ; } ? |
Đoạn code ở trên tiến hành lựa chọn tất cả user có trong database. Đồng thời kiểm tra xem trong database có tồn tại user nào không. Nếu không sẽ xuất ra thông báo "chưa có username nào". Ngược lại khi có tồn tại user chúng ta sẽ xử lý tiếp như sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | ?php $stt =0; while ( $row =mysql_fetch_array( $query )) { $stt ++; echo "tr" ; echo "td$stt/td" ; echo "td$row[username]/td" ; if ( $row [ 'level' ] == "1" ) { echo "tdMember/td" ; } else { echo "tdAdmin/td" ; } echo "tda href='edit_user.php?userid=$row[id]'Edit/a/td" ; echo "tda href='del_user.php?userid=$row[id]'Del/a/td" ; echo "/tr" ; ? |
Ở đây ta dùng biến $stt để làm bộ đếm cho số lượng user. Như vậy, cứ mỗi lần lặp 1 user thì bộ đếm này sẽ tự động tăng lên 1 đơn vị. Sau đó, chúng ta đưa dữ liệu vào mảng và truyền các giá trị trên vào các cột dữ liệu trong bảng.
Tới đây ta đã kết thúc thao tác quản lý các user đang tồn tại trong cơ sở dữ liệu. Sau đây là toàn bộ code trong ứng dụng này.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | ?php sesison_start(); if (isset( $_SESSION [ 'userid' ]) $_SESSION [ 'level' ] == 2) { ? table align= 'center' awidth= '400' border= '1'
tr tdSTT/td tdUsername/td tdLevel/td tdEdit/td tdDel/td /tr ? $conn =mysql_connect( "localhost" , "root" , "root" ) or die ( "can't connect this database" ); mysql_select_db( "project" , $conn ); $sql = "select * from user order by id DESC" ; $query =mysql_query( $sql ); if (mysql_num_rows( $query ) == "" ) { echo "trtd colspan=5 align=centerChua co username nao/td/tr" ; } else { $stt =0; while ( $row =mysql_fetch_array( $query )) { $stt ++; echo "tr" ; echo "td$stt/td" ; echo "td$row[username]/td" ; if ( $row [ 'level' ] == "1" ) { echo "tdMember/td" ; } else { echo "tdAdmin/td" ; } echo "tda href='edit_user.php?userid=$row[id]'Edit/a/td" ; echo "tda href='del_user.php?userid=$row[id]'Del/a/td" ; echo "/tr" ; } } ? /table |
Ở bài sau, chúng ta lại tiếp tục tìm hiểu ứng dụng chỉnh sửa và xóa một thành viên trong PHP và MYSQL như thế nào. Mọi sự góp ý, cũng như thắc mắc của các bạn dành cho bài viết vui lòng sử dụng tính năng thảo luận tại diễn đàn. Hoặc thông qua việc liên hệ của hệ thống website. Mong sẽ nhận được nhiều ý kiến đóng góp từ các bạn.