Thứ Sáu, 24 tháng 6, 2016

Phần 76 - Làm phần xử lý sửa thông tin quản trị

- Tiếp theo là làm tiếp phần sửa thông tin quản trị ở trong bảng 'thong_tin_quan_tri'.Bạn tạo file 'sua_thong_tin_quan_tri_o_trong_csdl.php' trong thư mục 'quan_tri_2' với nội dung sau :


<?php
    if(!isset($bien_bao_mat)){exit();}
?>
<?php
    $tv="select * from thong_tin_quan_tri where id='1' ";
    $tv_1=mysql_query($tv);
    $tv_2=mysql_fetch_array($tv_1);
    $ky_danh=$_POST['ky_danh'];
    $mat_khau=$tv_2['mat_khau'];

    $mat_khau_tu_form=trim($_POST['mat_khau']);
    if($mat_khau_tu_form!="khong_doi")
    {
        $mat_khau=md5($mat_khau_tu_form);
        $mat_khau=md5($mat_khau);
    }

    $tv="
    UPDATE thong_tin_quan_tri SET
    ky_danh = '$ky_danh',
    mat_khau = '$mat_khau'
    WHERE id =1;
    ";
    mysql_query($tv);
   
    $_SESSION['ky_danh']=$ky_danh;
    $_SESSION['mat_khau']=$mat_khau;
   
    thong_bao_html("Đã cập nhật lại thông tin quản trị");           
   
?>


- Bạn xem giải thích code (phần chữ xanh) của file 'sua_thong_tin_quan_tri_o_trong_csdl.php' ở phần bên dưới :


<?php
    if(!isset($bien_bao_mat)){exit();} // xuất ra trang trắng nếu truy cập trực tiếp vào file này
?>
<?php
    // dùng $_POST để lấy giá trị của biểu mẫu sửa thông tin quản trị được gửi
    $tv="select * from thong_tin_quan_tri where id='1' "; // truy cập vào bảng 'thong_tin_quan_tri'
    $tv_1=mysql_query($tv); // gửi truy vấn vào mysql
    $tv_2=mysql_fetch_array($tv_1); // lấy dòng dữ liệu trong bảng 'thong_tin_quan_tri' rồi gán vào mảng $tv_2
    $ky_danh=$_POST['ky_danh']; // lấy giá trị của cột 'ky_danh' rồi gán vào biến $ky_danh
    $mat_khau=$tv_2['mat_khau']; // lấy giá trị của cột 'mat_khau' rồi gán vào biến $mat_khau

    // đoạn code dưới nhằm xác định mật khẩu có được người dùng thay đổi hay không
    // nếu có đổi thì khung nhập liệu mật khẩu từ biểu mẫu form sẽ có giá trị khác với giá trị "khong_doi"
    $mat_khau_tu_form=trim($_POST['mat_khau']); // lấy giá trị mật khẩu từ biểu mẫu form rồi gán vào biến $mat_khau_tu_form
    if($mat_khau_tu_form!="khong_doi")
    // nếu khung nhập liệu mật khẩu từ biểu mẫu form khác với giá trị 'khong_doi' (nghĩa là có đổi mật khẩu)
    {
        $mat_khau=md5($mat_khau_tu_form);
        // tiến hành lấy mật khẩu từ form rồi gán lại vào biến $mat_khau (nghĩa là khác với giá trị mật khẩu cũ)
        // lưu ý là có mã hóa md5
        $mat_khau=md5($mat_khau); //  tiến hành mã hóa md5 thêm 1 lần nữa
    }
    // nếu mật khẩu không đổi thì biến $mat_khau sẽ có giá trị cũ từ bảng 'thong_tin_quan_tri'
    // ngược lại , nếu đổi mật khẩu thì biến $mat_khau sẽ mang giá trị của mật khẩu nhập vào từ biểu mẫu form (mã hóa md5 2 lần) 
    // biến $mat_khau sẽ được dùng trong lệnh update bên dưới

    $tv="
    UPDATE thong_tin_quan_tri SET // câu truy vấn sửa dữ liệu thì dùng lệnh update , bảng thong_tin_quan_tri sẽ được cập nhật dữ liệu
    ky_danh = '$ky_danh', // cột 'ky_danh' sẽ được cập nhật lại với nội dung là của biến $ky_danh
    mat_khau = '$mat_khau' // cột 'mat_khau' sẽ được cập nhật lại với nội dung là của biến $mat_khau
    WHERE id =1;
    // dòng dữ liệu cập nhật sẽ là dòng mà cột 'id' của dòng đó có giá trị là 1
    ";
    mysql_query($tv); // gửi câu truy vấn vào mysql bằng lệnh mysql_query
   
    // tiếp theo là gán lại giá trị của 2 biến session 'ky_danh' và session 'mat_khau'.Nếu không làm điều này thì sau khi đổi thông tin quản trị  
    // sẽ xuất hiện lại khung đăng nhập trang quản trị.Lý do là do biến $xac_dinh_dang_nhap không được khai báo do không tìm đúng được
    // ký danh và mật khẩu trong bảng 'thong_tin_quan_tri' ( phần xử lý biến $xac_dinh_dang_nhap ở trong file 'xac_dinh_dang_nhap.php' )    $_SESSION['ky_danh']=$ky_danh; // gán lại giá trị của session 'ky_danh' thành giá trị của biến $ky_danh
    $_SESSION['mat_khau']=$mat_khau; // gán lại giá trị của session 'mat_khau' thành giá trị của biến $mat_khau
   
    thong_bao_html("Đã cập nhật lại thông tin quản trị");
    // sau khi sửa thông tin quản trị thì xuất ra thông báo "Đã cập nhật lại thông tin quản trị"            
   
?>


- Sau đó mình sửa thông tin quản trị thì thấy đã sửa được.Sau khi sửa thông tin quản trị thì mình nhận được thông báo "Đã cập nhật lại thông tin quản trị"

- Khi bạn thực hiện gửi biểu mẫu sửa thông tin quản trị thì web sẽ chạy file 'xu_ly_post_get.php' , lúc này sẽ tồn tại biến $_POST['bieu_mau_sua_thong_tin_quan_tri'] , từ đó file 'xu_ly_post_get.php' sẽ gọi file  'sua_thong_tin_quan_tri_o_trong_csdl.php' ( để xử lý sửa thông tin quản trị ) bằng đoạn code sau :

if(isset($_POST['bieu_mau_sua_thong_tin_quan_tri']))
{
    include("chuc_nang/quan_tri_2/sua_thong_tin_quan_tri_o_trong_csdl.php");
    trang_truoc_html();
}   

- File 'sua_thong_tin_quan_tri_o_trong_csdl.php' sẽ thực hiện sửa dữ liệu trong bảng 'thong_tin_quan_tri' bằng lệnh update