Thứ Năm, 23 tháng 6, 2016

Phần 32 - Tạo file 'index.php' cho trang quản trị

- Tiếp theo là làm đăng nhập vào trang quản trị.Trang quản trị được dùng để thêm,sửa,xóa sản phẩm và các chức năng khác

- Bạn tiến hành tạo bảng 'thong_tin_quan_tri' với 3 cột là 'id','ky_danh','mat_khau'.Trong đó :

+ Cột 'id' có 'Type' là 'INT' và đánh dấu chọn AUTO_INCREMENT
+ Cột 'ky_danh','mat_khau' có 'Type' là 'VARCHAR' và 'Length/Values' là '256'

- Bạn tiến hành thêm dữ liệu vào bảng 'thong_tin_quan_tri' như hình sau :



 - Giá trị của cột mật khẩu là :


c3284d0f94606de1fd2af172aba15bf3

- Giá trị trên có nghĩa là "admin" , đây là cách mã hóa để thông tin đăng nhập an toàn hơn.Mình đã dùng đoạn code dưới đây để tạo mật mã :

<html>
    <head>
        <meta charset="UTF-8">
        <title>Tạo mật mã</title>
    </head>
    <body>
        <?php
            $c="admin";
            $mat_khau=md5($c);
            $mat_khau=md5($mat_khau);
            echo $mat_khau."<hr>";
        ?>
    </body>
</html>

+ Đoạn code trên đã dùng hàm 'md5' để mã hóa mật khẩu.Ở đây bạn để ý là mã hóa md5 2 lần

+ Kết quả của đoạn code khi thực thi sẽ là 'c3284d0f94606de1fd2af172aba15bf3'

+ Hàm md5 dùng để mã hóa thông tin của 1 chuỗi sang 1 chuỗi mật mã khác

+ Sau đó mình echo ra để nhận được kết quả

- Như vậy dữ liệu thêm vào bảng 'thong_tin_quan_tri' chính là ký danh và mật khẩu để đăng nhập trang quản trị.Ký danh là 'admin' , mật khẩu là 'admin'

- Bạn tạo thư mục 'quan_tri' rồi tạo file 'index.php' trong thư mục 'quan_tri' với nội dung sau :

<?php
    session_start();
    $bien_bao_mat="co";
    include("../ket_noi.php");  
    include("chuc_nang/quan_tri_2/xac_dinh_dang_nhap.php");
?>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Quản trị</title>
    </head>
    <body>
        <?php
            if(!isset($xac_dinh_dang_nhap))
            {
                include("chuc_nang/quan_tri_2/khung_dang_nhap.php");
            }
            else
            {
                if($xac_dinh_dang_nhap=="co")
                {
                    echo "đã đăng nhập";
                }
            }
        ?>
    </body>
</html>

- Tiếp theo bạn tạo 2 thư mục 'chuc_nang' và 'quan_tri_2' như đường dẫn sau : "quan_tri/chuc_nang/quan_tri_2".Sau đó bạn tạo 2 file 'xac_dinh_dang_nhap.php' và 'khung_dang_nhap.php' trong thư mục 'quan_tri_2' (2 file này tạm thời chưa viết nội dung gì cả)

- File 'index.php' thì bạn xem giải thích code ở phần bên phải phần dưới đây :

<?php
    session_start();                                                                                                       // khởi tạo session
    $bien_bao_mat="co";                                                                                            // biến này dùng để tăng cường bảo mật web
                                                                                                                                 // vì có nhiều file trong thư mục 'quan_tri' không phải là file 'index.php'
                                                                                                                                 // sẽ dùng biến này để ngăn chặn sự chạy code không mong muốn
                                                                                                                                 // (các file đó khi truy cập trực tiếp thì sẽ xuất ra trang trắng )

    include("../ket_noi.php");                                                                                        // gọi lại file 'ket_noi.php' để kết nối cơ sở dữ liệu
                                                                                                                                 // và truy cập vào bảng 'ban_hang'  

   include("chuc_nang/quan_tri/xac_dinh_dang_nhap.php");                                        // gọi file 'xac_dinh_dang_nhap.php' để xác định người dùng có
                                                                                                                                // đăng nhập hay chưa.Nếu đã đăng nhập thì biến 'xac_dinh_dang_nhap'
                                                                                                                                // có giá trị là 'co' , ngược lại thì biến này sẽ ở tình trạng chưa tồn tại
?>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Quản trị</title>
    </head>
    <body>
        <?php
            if((!isset($xac_dinh_dang_nhap))                                                                 // nếu chưa đăng nhập
                                                                                                                              // (là khi biến 'xac_dinh_dang_nhap' chưa tồn tại )
                                                                                                                              // hàm isset dùng để xác định 1 biến có tồn tại hay chưa 
            {
                include("chuc_nang/quan_tri/khung_dang_nhap.php");                             // xuất khung đăng nhập ra (gọi file 'khung_dang_nhap.php' ra )  
                                                                                                                              // trường hợp này là chưa đăng nhập 
            }
            else
            {
                if($xac_dinh_dang_nhap=="co")                                                             // nếu đã đăng nhập
                                                                                                                              // là khi biến 'xac_dinh_dang_nhap' có giá trị là 'co'
                {
                    echo "đã đăng nhập";                                                                          // xuất dòng chữ "đã đăng nhập" ra web
                                                                                                                              // trường hợp này là đã đăng nhập
                                                                                                                              // (biến 'xac_dinh_dang_nhap' có giá trị là 'co')
                }   
            }
        ?>
    </body>
</html>

- Bạn sao chép đoạn mã sau vào file 'khung_dang_nhap.php' :

<?php
    if(!isset($bien_bao_mat)){exit();}
?>
<br><br>
<center>
    <form method="post" >
        <table>
            <tr>
                <td>Ký danh :</td>
                <td><input style="width:150px" name="ky_danh" ></td>
            </tr>
            <tr>
                <td>Mật khẩu :</td>
                <td><input type="password" style="width:150px" name="mat_khau" ></td>
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td>
                    <input type="hidden" name="dang_nhap_quan_tri" value="dang_nhap_quan_tri" >
                    <input type="submit" value="Đăng nhập" >
                </td>
            </tr>
        </table>
    </form>
</center>

- Bạn xem giải thích đoạn code trên ở bên phải phần dưới đây :

<?php
    if(!isset($bien_bao_mat)){exit();}                                                                                                    // dòng code này có tác dụng xuất ra trang trắng
                                                                                                                                                          // nếu truy cập trực tiếp file 'khung_dang_nhap.php'
                                                                                      // ( nghĩa là truy cập vào "http://sitecuaban/quan_tri/chuc_nang/quan_tri_2/khung_dang_nhap.php" )
                                                                                                                                                          // khi truy cập như vậy thì biến 'bien_bao_mat'
                                                                                                                                                          // chưa tồn tại nên web sẽ dừng lại bằng lệnh 'exit'   
?>
<br><br>
<center>                                                                                                                                            // canh giữa khung đăng nhập
    <form method="post" >                                                                                                                  // xuất biểu mẫu (xuất 'form' ) với phương thức post
                                                                                                                                                          // nghĩa là khi nhận dữ liệu trong code php thì
                                                                                                                                                       // phải viết $_POST ($_POST['tên thành phần form'])             <table>
            <tr>
                <td>Ký danh :</td>
                <td><input style="width:150px" name="ky_danh" ></td>                                                   // tạo khung văn bản để nhận thông tin 'ky_danh'    
            </tr>
            <tr>
                <td>Mật khẩu :</td>
                <td><input type="password" style="width:150px" name="mat_khau" ></td>                      // tạo khung văn bản để nhận thông tin 'mat_khau'
                                                                                                                                                         // lưu ý ở đây là type="password"   
                                                                                                                                                         // nghĩa là dữ liệu khi nhập vào sẽ không hiển thị
                                                                                                                                                         // trực tiếp          
            </tr>
            <tr>
                <td>&nbsp;</td>
                <td>
                    <input type="hidden" name="dang_nhap_quan_tri" value="dang_nhap_quan_tri" >        // tạo thành phần ẩn với tên là 'dang_nhap_quan_tri'
                                                                                                                                                        // để nhận biết được biểu mẫu (form) khi gửi đi

                    <input type="submit" value="Đăng nhập" >                                                                   // xuất nút gửi biểu mẫu  (gửi form)
                </td>
            </tr>
        </table>
    </form>
</center>