ỨNG DỤNG NOTE
ỨNG DỤNG CHAT
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 ý ạ.

PHP Note Online - Đổi mật khẩu (kết thúc)

Xin chào các bạn, chào mừng các bạn đã quy trở lại với series hướng dẫn xây dựng ứng dụng ghi chú online bằng PHP OOP và Ajax. Ở bài trước chúng ta đã hiển thị và viết các chức năng thêm/sửa/xoá ghi chú rồi. Trong bài học hôm nay mình sẽ hướng dẫn các bạn viết chức năng đổi mật khẩu và đây cũng là bài học cuối cùng của series này. Bây giờ chúng ta bắt đầu thôi !

1. Chức năng đổi mật khẩu

Layout

Các bạn mở file templates/change-pass-form.php lên và dán đoạn code này vào:

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.

 

<div class="container">
	<div class="row">
		<div class="col-md-12">
			<h3 class="text-primary">Đổi mật khẩu</h3>
			<form method="POST" onsubmit="return false;" id="formChangePass">
				<div class="form-group">
	    			<label for="user_signin">Mật khẩu cũ</label>
	    			<input type="password" class="form-control" id="old_pass">
	  			</div>
	  			<div class="form-group">
	    			<label for="user_signin">Mật khẩu mới</label>
	    			<input type="password" class="form-control" id="new_pass">
	  			</div>
	  			<div class="form-group">
	    			<label for="user_signin">Nhập lại mật khẩu mới</label>
	    			<input type="password" class="form-control" id="re_new_pass">
	  			</div>
	  			<a href="index.php" class="btn btn-default">
	  				<span class="glyphicon glyphicon-arrow-left"></span> Trở về
	  			</a>
	  			<button class="btn btn-primary" id="submit_change_pass">
	  				<span class="glyphicon glyphicon-ok"></span> Thay đổi
	  			</button>
	  			<br><br>
	  			<div class="alert alert-danger hidden"></div>
			</form>
		</div>
	</div>
</div>

Trong đó: #formChangePass là form đổi mật khẩu.

 

Viết Ajax gửi dữ liệu

File js/functions/change-pass.js sẽ đảm nhận chức năng này, các bạn mở file lên và copy nội dung này vào:

 

// Bắt đầu khi click vào nút Thay đổi
$('#submit_change_pass').on('click', function() {
	// Gán các giá trị trong form tạo note vào các biến
	$old_pass = $('#old_pass').val();
	$new_pass = $('#new_pass').val();
	$re_new_pass = $('#re_new_pass').val();

	// Nếu một trong các biến này rỗng
	if ($old_pass == '' || $old_pass == '' || $re_new_pass == '')
	{
		$('#formChangePass .alert').removeClass('hidden');
		$('#formChangePass .alert').html('Vui lòng điền đầy đủ thông tin bên trên.');
	}
	// Ngược lại
	else
	{
		// Thực thi gửi dữ liệu bằng Ajax
		$.ajax({
			url : 'change-pass.php', // Đường dẫn file nhận dữ liệu
			type : 'POST', // Phương thức gửi dữ liệu
			// Các dữ liệu
			data : {
				old_pass : $old_pass,
				new_pass : $new_pass,
				re_new_pass : $re_new_pass
			// Thực thi khi gửi dữ liệu thành công
			}, success : function(data) {
				$('#formChangePass .alert').removeClass('hidden');
				$('#formChangePass .alert').html(data);
			}
		});
	}
});

OK, bây giờ chúng ta sẽ viết PHP để nhận và xử lý dữ liệu.

 

Viết PHP xử lý dữ liệu

Mở file change-pass.php lên và paste đoạn code bên dưới :

 

<?php

// Kết nối database, session, general info
require_once 'core/init.php';

// Nếu không tồn tại $user
if (!$user)
{
	header('Location: index.php'); // Di chuyển đến trang chủ
}

// Nhận dữ liệu và gán vào các biến đồng thời xử lý chuỗi
$old_pass = @md5($_POST['old_pass']);
$new_pass = @$_POST['new_pass'];
$re_new_pass = @$_POST['re_new_pass'];

// Các biến chứa code JS về thông báo
$show_alert = "<script>$('#formChangePass .alert').removeClass('hidden');</script>";
$hide_alert = "<script>$('#formChangePass .alert').addClass('hidden');</script>";
$success_alert = "<script>$('#formChangePass .alert').attr('class', 'alert alert-success');</script>";

// Nếu mật khẩu cũ nhậ đúng
if ($old_pass != $data_user['password'])
{
	echo $show_alert.'Mật khẩu cũ nhập không chính xác, đảm bảo đã tắt caps lock.';
}
// Ngược lại nếu độ dài mật khẩu mới nhỏ hơn 6 ký tự
else if (strlen($new_pass) < 6)
{
	echo $show_alert.'Mật khẩu quá ngắn, hãy thử với mật khẩu khác an toàn hơn.';
}
// Ngược lại nếu mật khẩu mởi nhập lại không khớp
else if ($new_pass != $re_new_pass)
{
	echo $show_alert.'Nhập lại mật khẩu mới không khớp, đảm bảo đã tắt caps lock.';
}
// Ngược lại
else
{
	$new_pass = md5($new_pass); // Mã hoá mật khẩu sang MD5
	// Lệnh SQL đổi mật khẩu
	$sql_change_pass = "UPDATE users SET password = '$new_pass' WHERE id_user = '$data_user[id_user]'";
	// Thực hiện truy vấn
	$db->query($sql_change_pass);
	// Giải phóng kết nối
	$db->close();
	
	// Hiển thị thông báo và tải lại trang
	echo $show_alert.$success_alert.'Đổi mật khẩu thành công.
		<script>
			location.reload();
		</script>
	';
}

?>

Xong rồi, giờ các bạn thử đổi mật khẩu xem được không nhé!

 

2. Lời kết

Series đến đây là kết thúc, mình hi vọng qua bài này các bạn có thể rèn luyện lại Ajax và đặc biệt là PHP OOP, ngoài ra cũng có thể tạo được một ứng dụng hay nữa. Trong series này nếu có chỗ nào thắc mắc, chưa hiểu rõ hoặc thiếu sót, các bạn có thể comment trên blog, đăng trên group hoặc inbox trực tiếp mình trên Facebook để nhận hỗ trợ sớm nhất nhé! Hẹn gặp lại và chúc bạn các bạn thành công!

Tổng hợp dữ liệu trong bài:

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