Ngày đăng: 2023-01-10 15:53:31
Hello, chào mừng các bạn đã quay trở lại với series hướng dẫn xây dựng trang tin tức PHP. Trong bài học trước, chúng ta đã xây dựng đựng chức năng cập nhật ảnh đại diện của phần profile admin rồi, ngày hôm nay mình sẽ hướng dẫn các bạn build các chức năng còn lại. Chúng ta đi vào bài học thôi!
1. Cập nhật nội dung bài học
Trước khi vào bài, các bạn vào table accounts
và chỉnh sửa field phone
sang dạng VARCHAR(11)
(thay vì ban đầu là INT(11)
).
2. Chức năng cập nhật các thông tin
Chức năng này cho phép chúng ta có thể update các thông tin của tài khoản, bao gồm
- Tên hiển thị
- Email
- URL Facebook
- URL Google
- URL Twitter
- Số điện thoại
- Giới thiệu
Xây dựng template
Các bạn mở file admin/templates/profile.php
lên và dán nội dung này bên dưới dòng // Form cập nhật các thông tin còn lại
:
echo
'
<div class = "panel panel-default" >
<div class = "panel-heading" >Cập nhật thông tin</div>
<div class = "panel-body" >
<form method= "POST" onsubmit= "return false;" id= "formUpdateInfo" >
<div class = "form-group" >
<label>Tên hiển thị *</label>
<input type= "text" class = "form-control" id= "dn_update" value= "' . $data_user['display_name'] . '" >
</div>
<div class = "form-group" >
<label>Email *</label>
<input type= "text" class = "form-control" id= "email_update" value= "' . $data_user['email'] . '" >
</div>
<div class = "form-group" >
<label>URL Facebook</label>
<input type= "text" class = "form-control" id= "fb_update" value= "' . $data_user['facebook'] . '" >
</div>
<div class = "form-group" >
<label>URL Google</label>
<input type= "text" class = "form-control" id= "gg_update" value= "' . $data_user['google'] . '" >
</div>
<div class = "form-group" >
<label>URL Twitter</label>
<input type= "text" class = "form-control" id= "tt_update" value= "' . $data_user['twitter'] . '" >
</div>
<div class = "form-group" >
<label>Số điện thoại</label>
<input type= "text" class = "form-control" id= "phone_update" value= "' . $data_user['phone'] . '" >
</div>
<div class = "form-group" >
<label>Giới thiệu</label>
<textarea id= "desc_update" class = "form-control" > ' . $data_user[' description '] . ' </textarea>
</div>
<div class = "form-group" >
<button type= "submit" class = "btn btn-primary" >Lưu thay đổi</button>
</div>
<div class = "alert alert-danger hidden" ></div>
</form>
</div>
</div>
';
// Form đổi mật khẩu
|
Lưu và sao đó chạy project, các bạn sẽ được kết quả như hình:
![](data:image/png;base64,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)
Viết Ajax gửi dữ liệu
Cái này mình nghĩ sẽ rất đơn giản nếu bạn nào đã theo dõi đến bài này của series, các bạn hãy thử code và đối chiếu với code của mình bên dưới nhé.
Mở file admin/js/form.js
và dán dòng code này vào:
// Cập nhật thông tin khác
$( '#formUpdateInfo button' ).on( 'click' , function () {
$( '#formUpdateInfo button' ).html( 'Đang tải ...' );
$dn_update = $( '#dn_update' ).val();
$email_update = $( '#email_update' ).val();
$fb_update = $( '#fb_update' ).val();
$gg_update = $( '#gg_update' ).val();
$tt_update = $( '#tt_update' ).val();
$phone_update = $( '#phone_update' ).val();
$desc_update = $( '#desc_update' ).val();
if ($dn_update && $email_update) {
$.ajax({
url : $_DOMAIN + 'profile.php' ,
type : 'POST' ,
data : {
dn_update : $dn_update,
email_update : $email_update,
fb_update : $fb_update,
gg_update : $gg_update,
tt_update : $tt_update,
phone_update : $phone_update,
desc_update : $desc_update,
action : 'update_info'
}, success : function (data) {
$( '#formUpdateInfo .alert' ).removeClass( 'hidden' );
$( '#formUpdateInfo .alert' ).html(data);
}, error : function () {
$( '#formUpdateInfo .alert' ).removeClass( 'hidden' );
$( '#formUpdateInfo .alert' ).html( 'Đã có lỗi xảy ra, vui lòng thử lại.' );
}
});
$( '#formUpdateInfo button' ).html( 'Lưu thay đổi' );
} else {
$( '#formUpdateInfo button' ).html( 'Lưu thay đổi' );
$( '#formUpdateInfo .alert' ).removeClass( 'hidden' );
$( '#formUpdateInfo .alert' ).html( 'Vui lòng điền đầy đủ thông tin.' );
}
});
|
Viết PHP xử lý dữ liệu
Cái này cũng quá quen thuộc rồi, ở phần này chúng ta chỉ cần kiểm tra cái field: tên hiển thị, email và số điện thoại (nếu có).
Các bạn mở file admin/profile.php
và dán đoạn code này bên dưới code // Xoá ảnh đại diện
:
// Cập nhật các thông tin
else if ( $action == 'update_info' )
{
// Xử lý các giả trị
$dn_update = trim(htmlspecialchars( addslashes ( $_POST [ 'dn_update' ])));
$email_update = trim(htmlspecialchars( addslashes ( $_POST [ 'email_update' ])));
$fb_update = trim(htmlspecialchars( addslashes ( $_POST [ 'fb_update' ])));
$gg_update = trim(htmlspecialchars( addslashes ( $_POST [ 'gg_update' ])));
$tt_update = trim(htmlspecialchars( addslashes ( $_POST [ 'tt_update' ])));
$phone_update = trim(htmlspecialchars( addslashes ( $_POST [ 'phone_update' ])));
$desc_update = trim(htmlspecialchars( addslashes ( $_POST [ 'desc_update' ])));
// Các biến xử lý thông báo
$show_alert = '<script>$("#formUpdateInfo .alert").removeClass("hidden");</script>' ;
$hide_alert = '<script>$("#formUpdateInfo .alert").addClass("hidden");</script>' ;
$success = '<script>$("#formUpdateInfo .alert").attr("class", "alert alert-success");</script>' ;
if ( $dn_update && $email_update ) {
// Kiểm tra tên hiển thị
if ( strlen ( $dn_update ) < 3 || strlen ( $dn_update ) > 50) {
echo $show_alert . 'Tên hiển thị phải nằm trong khoảng từ 3-50 ký tự.' ;
// Kiểm tra email
} else if (filter_var( $email_update , FILTER_VALIDATE_EMAIL) === FALSE) {
echo $show_alert . 'Email không hợp lệ.' ;
// Kiểm tra số điện thoại
} else if ( $phone_update && ( strlen ( $phone_update ) < 10 || strlen ( $phone_update ) > 11 || preg_match( '/^[0-9]+$/' , $phone_update ) == false)) {
echo $show_alert . strlen ( $phone_update ) . 'Số điện thoại không hợp lệ.' ;
} else {
$sql_update_info = "UPDATE accounts SET
display_name = '$dn_update' ,
email = '$email_update' ,
facebook = '$fb_update' ,
google = '$gg_update' ,
twitter = '$tt_update' ,
phone = '$phone_update' ,
description = '$desc_update'
WHERE id_acc = '$data_user[id_acc]'
";
$db ->query( $sql_update_info );
echo $success . 'Cập nhật thông tin thành công.' ;
new Redirect( $_DOMAIN . 'profile' );
}
} else {
echo $show_alert . 'Vui lòng điền đầy đủ thông tin.' ;
}
}
|
Bây giờ các bạn chạy lại và update thông tin thử xem nhé!
3. Chức năng đổi mật khẩu
Đây là chức năng cuối cùng trong phần này, chức năng cũng đơn giản nên các bạn có thể tự làm và tham khảo code của mình nhé!
Xây dựng template
Các bạn copy nội dung này và chèn bên dưới dòng // Form đổi mật khẩu
trong file admin/templates/profile.php
:
echo
'
<div class = "panel panel-default" >
<div class = "panel-heading" >Đổi mật khẩu</div>
<div class = "panel-body" >
<form method= "POST" id= "formChangePw" onsubmit= "return false;" >
<div class = "form-group" >
<label>Mật khẩu cũ</label>
<input type= "password" class = "form-control" id= "oldPwChange" >
</div>
<div class = "form-group" >
<label>Mật khẩu mới</label>
<input type= "password" class = "form-control" id= "newPwChange" >
</div>
<div class = "form-group" >
<label>Nhập lại mật khẩu mới</label>
<input type= "password" class = "form-control" id= "reNewPwChange" >
</div>
<div class = "form-group" >
<button type= "submit" class = "btn btn-primary" >Lưu thay đổi</button>
</div>
<div class = "alert alert-danger hidden" ></div>
</form>
</div>
</div>
';
|
Các bạn reload sẽ được kết quả bên dưới:
![](data:image/png;base64,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)
Viết Ajax gửi dữ liệu
Mở file admin/js/form.js
lên, sau đó các bạn dán đoạn code này:
$( '#formChangePw button' ).on( 'click' , function () {
$( '#formChangePw button' ).html( 'Đang tải ...' );
$old_pw_change = $( '#old_pw_change' ).val();
$new_pw_change = $( '#new_pw_change' ).val();
$re_new_pw_change = $( '#re_new_pw_change' ).val();
if ($old_pw_change && $new_pw_change && $re_new_pw_change) {
$.ajax({
url : $_DOMAIN + 'profile.php' ,
type : 'POST' ,
data : {
old_pw_change : $old_pw_change,
new_pw_change : $new_pw_change,
re_new_pw_change : $re_new_pw_change,
action : 'change_pw'
}, success : function (data) {
$( '#formChangePw .alert' ).removeClass( 'hidden' );
$( '#formChangePw .alert' ).html(data);
}, error : function () {
$( '#formChangePw .alert' ).removeClass( 'hidden' );
$( '#formChangePw .alert' ).html( 'Đã có lỗi xảy ra, vui lòng thủ lại.' );
}
});
$( '#formChangePw button' ).html( 'Lưu thay đổi' );
} else {
$( '#formChangePw button' ).html( 'Lưu thay đổi' );
$( '#formChangePw .alert' ).removeClass( 'hidden' );
$( '#formChangePw .alert' ).html( 'Vui lòng điền đầy đủ thông tin.' );
}
});
|
Viết PHP xử lý dữ liệu
Các bạn copy đoạn code này bên dưới code // Cập nhật thông tin
trong file admin/profile.php
:
// Đổi mật khẩu
else if ( $action == 'change_pw' )
{
// Xử lý các giá trị
$old_pw_change = md5( $_POST [ 'old_pw_change' ]);
$new_pw_change = trim(htmlspecialchars( addslashes ( $_POST [ 'new_pw_change' ])));
$re_new_pw_change = trim(htmlspecialchars( addslashes ( $_POST [ 're_new_pw_change' ])));
// Các biến xử lý thông báo
$show_alert = '<script>$("#formChangePw .alert").removeClass("hidden");</script>' ;
$hide_alert = '<script>$("#formChangePw .alert").addClass("hidden");</script>' ;
$success = '<script>$("#formChangePw .alert").attr("class", "alert alert-success");</script>' ;
if ( $old_pw_change && $new_pw_change && $re_new_pw_change ) {
// Kiểm tra mật khẩu cũ chính xác
if ( $old_pw_change != $data_user [ 'password' ]) {
echo $show_alert . 'Mật khẩu cũ không chính xác.' ;
// Kiểm tra mật khẩu mới
} else if ( strlen ( $new_pw_change ) < 6) {
echo $show_alert . 'Mật khẩu mới quá ngắn.' ;
// Kiểm tra mật khẩu mới khớp với mật khẩu mới nhập lại
} else if ( $new_pw_change != $re_new_pw_change ) {
echo $show_alert . 'Mật khẩu mới nhập lại không khớp.' ;
} else {
$new_pw_change = md5( $new_pw_change );
$sql_change_pw = "UPDATE accounts SET password = '$new_pw_change' WHERE id_acc = '$data_user[id_acc]'" ;
$db ->query( $sql_change_pw );
echo $success . 'Thay đổi mật khẩu thành công.' ;
new Redirect( $_DOMAIN . 'profile' );
}
} else {
echo $show_alert . 'Vui lòng điền đầy đủ thông tin.' ;
}
}
|
Ok rồi, giờ các bạn chiêm ngưỡng thành quả thôi.
4. Lời kết
Thế là đã xong phần profile admin rồi. Qua bài sau, chúng ta sẽ build phần cuối cùng trong admin, đó là dashboard. Nếu có gì thắc mắc, các bạn cứ comment bên dưới hoặc đăng trên group kèm theo link bài viết để được hỗ trợ sớm nhất. Cảm ơn các bạn đã theo dõi, chúc các bạn thành công!