Ở bài viết trước chúng ta đã tiến hành Tạo cơ sở dữ liệu cho website , hôm nay mình sẽ tiếp tục chia sẽ đến các bạn tạo trang đăng ký thành viên và lưu dữ liệu trang đăng ký vào database website của chúng ta

TẠO TRANG ĐĂNG KÝ THÀNH VIÊN

1. Thiết kế giao diện trang đăng ký thành viên

Trong thư mục website mà chúng ta đã tạo ra ở Phần 1, các bạn tạo 1 file mới tên là dang-ky.php có nội dung như sau :

<?php include "includes/header.php" ?>
	<form action="dang-ky.php" method="post">
		<table>
			<tr>
				<td colspan="2">Form dang ky</td>
			</tr>	
			<tr>
				<td>Username :</td>
				<td><input type="text" id="username" name="username"></td>
			</tr>
			<tr>
				<td>Password :</td>
				<td><input type="password" id="pass" name="pass"></td>
			</tr>
			<tr>
				<td>Ho Ten :</td>
				<td><input type="text" id="name" name="name"></td>
			</tr>
			<tr>
				<td>Email :</td>
				<td><input type="text" id="email" name="email"></td>
			</tr>
			<tr>
				<td colspan="2" align="center"><input type="submit" name="btn_submit" value="Dang ky"></td>
			</tr>

		</table>
		
	</form>
<?php include "includes/footer.php" ?>

Ở trang đăng ký này chúng ta sẽ có :

  • Username : dùng để nhập username
  • Passsword : nhập mật khẩu
  • Ho Ten : Nhập họ tên người dùng
  • Email : địa chỉ thư điện tử email
  • Dang ky : Ấn nút đăng ký thông tin
trang đăng ký

2. Tạo kết nối đến database website

Để tạo kết nối đến database website, chúng ta sẽ tạo 1 file đặt tên là connection.php trong thư mục includes

File này sẽ có nội dung như sau :

<?php
$server_username = "root"; // thông tin đăng nhập host
$server_password = ""; // mật khẩu, trong trường hợp này là trống
$server_host = "localhost"; // host là localhost
$database = 'website'; // database là website

// Tạo kết nối đến database dùng mysqli_connect()
$conn = mysqli_connect($server_host,$server_username,$server_password,$database) or die("không thể kết nối tới database");
// Thiết lập kết nối ủa chúng ta khi truy vấn là dạng UTF8 trong trường hợp dữ liệu là tiếng việt có dâu
mysqli_query($conn,"SET NAMES 'UTF8'");
  • $server_host :tên host chưa database, ở đây mình dùng là localhost vì chạy ở máy tính cục bộ, còn khi upload website lên các host khác thì chúng ta có thể thay đổi tham số này cho phù hợp.
  • $server_username  : tên đăng nhập vào database, mặc định ở local là root
  • $server_password ; mật khẩu đăng nhập vào database, mặc định ở local là rỗng

3. Tiến hành làm chức năng đăng ký:

Mở file dang-ky.php chúng ta vửa tạo, bảng thêm đoạn code sau :

<?php require_once("lib/connection.php"); ?>

như vậy chúng ta sẽ có file dang-ky.php có nội dung như sau :

<?php include "includes/header.php" ?>
<?php require_once("includes/connection.php"); ?>
	<form action="dang-ky.php" method="post">
		<table>
			<tr>
				<td colspan="2">Form dang ky</td>
			</tr>	
			<tr>
				<td>Username :</td>
				<td><input type="text" id="username" name="username"></td>
			</tr>
			<tr>
				<td>Password :</td>
				<td><input type="password" id="pass" name="pass"></td>
			</tr>
			<tr>
				<td>Ho Ten :</td>
				<td><input type="text" id="name" name="name"></td>
			</tr>
			<tr>
				<td>Email :</td>
				<td><input type="text" id="email" name="email"></td>
			</tr>
			<tr>
				<td colspan="2" align="center"><input type="submit" name="btn_submit" value="Dang ky"></td>
			</tr>

		</table>
		
	</form>
<?php include "includes/footer.php" ?>

Sau khi đã require_once tập tin connection.php vào, chúng ta đến giai đoạn kiểm tra thông tin đăng ký hợp lệ và lưu dữ liệu vào database, ở đây mình sẽ lấy các thông tin ở form đăng ký đã tạo ở trên bằng phương thức POST, các bạn lưu ý là :

  • Trong thẻ <form> ở trên có phương thức method mình cố tình để sẵn là method=”POST” nên các bạn phải dùng từ khóa $_POST để có thể lấy được thông tin
  • Trong PHP, từ khóa $_POST chỉ lấy được giá trị của thẻ input thông qua thuộc tính name, không phải thẻ id nhé các bạn
  • Ngoài phương thức POST, chúng ta còn có thể sử dụng phương thức GET và sử dụng từ khóa $_GET để lấy dữ liệu

Trong trang đăng ký, chúng ta sẽ tiếp tục thêm vào đoạn code sau :

<?php
	if (isset($_POST["btn_submit"])) {
		//lấy thông tin từ các form bằng phương thức POST
		$username = $_POST["username"];
		$password = $_POST["pass"];
		$name = $_POST["name"];
		$email = $_POST["email"];
		//Kiểm tra điều kiện bắt buộc đối với các field không được bỏ trống
		if ($username == "" || $password == "" || $name == "" || $email == "") {
			echo "bạn vui lòng nhập đầy đủ thông tin";
		}else{
			//thực hiện việc lưu trữ dữ liệu vào db
		}
	}
?>

Ở đoạn code bên trên đây, mình dùng từ khóa isset để kiểm tra button có name là btn_submit đã được click hay chưa, nếu click rồi thì mới bắt đầu lấy thông tin và insert dữ liệu vào database, tranh trường hợp khi load trang, đoạn code thực thi sẽ tự động chạy. Như đã nói ở trên, mình dùng từ khóa $_POST để lấy các thông tin username, password, name, email và kiểm tra nếu 1 trong các field này rỗng thì sẽ xuất ra thông báo là “bạn vui lòng nhập đầy đủ thông tin”, ngược lại sẽ là thực thi việc lưu trữ dữ liệu như sau:

<?php
	if (isset($_POST["btn_submit"])) {
		//lấy thông tin từ các form bằng phương thức POST
		$username = $_POST["username"];
		$password = $_POST["pass"];
		$name = $_POST["name"];
		$email = $_POST["email"];
		//Kiểm tra điều kiện bắt buộc đối với các field không được bỏ trống
		if ($username == "" || $password == "" || $name == "" || $email == "") {
			echo "bạn vui lòng nhập đầy đủ thông tin";
		}else{
			$sql = "INSERT INTO users(username, password, fullname, email, createdate ) VALUES ( '$username', '$password', '$name', '$email', now())";
			// thực thi câu $sql với biến conn lấy từ file connection.php
			mysqli_query($conn,$sql);
			echo "chúc mừng bạn đã đăng ký thành công";
		}
	}

?>

Như vậy, toàn bộ đoạn code đầy đủ của trang dang-ky.php sẽ có nội dung như sau :

<?php include "includes/header.php" ?>
<?php require_once("includes/connection.php"); ?>
<?php
	if (isset($_POST["btn_submit"])) {
		//lấy thông tin từ các form bằng phương thức POST
		$username = $_POST["username"];
		$password = $_POST["pass"];
		$name = $_POST["name"];
		$email = $_POST["email"];
		//Kiểm tra điều kiện bắt buộc đối với các field không được bỏ trống
		if ($username == "" || $password == "" || $name == "" || $email == "") {
			echo "bạn vui lòng nhập đầy đủ thông tin";
		}else{
			$sql = "INSERT INTO users(username, password, fullname, email, createdate ) VALUES ( '$username', '$password', '$name', '$email', now())";
			// thực thi câu $sql với biến conn lấy từ file connection.php
			mysqli_query($conn,$sql);
			echo "chúc mừng bạn đã đăng ký thành công";
		}
	}

?>
	<form action="dang-ky.php" method="post">
		<table>
			<tr>
				<td colspan="2">Form dang ky</td>
			</tr>	
			<tr>
				<td>Username :</td>
				<td><input type="text" id="username" name="username"></td>
			</tr>
			<tr>
				<td>Password :</td>
				<td><input type="password" id="pass" name="pass"></td>
			</tr>
			<tr>
				<td>Ho Ten :</td>
				<td><input type="text" id="name" name="name"></td>
			</tr>
			<tr>
				<td>Email :</td>
				<td><input type="text" id="email" name="email"></td>
			</tr>
			<tr>
				<td colspan="2" align="center"><input type="submit" name="btn_submit" value="Dang ky"></td>
			</tr>

		</table>
		
	</form>
<?php include "includes/footer.php" ?>

Vậy là chúng ta đã thiết kế xong trang đăng ký cho phép người dùng nhập dữ liệu và lưu trữ vào database. Bài viết cũng khá dài nên mình tạm dừng ở đây, các bạn có thắc mắc gì thì hãy để lại comment bên dưới bài viết nhé. Trong bài tiếp theo mình sẽ nói về việc kiểm tra thông tin có trong database và tạo form đăng nhập.

Chúc các bạn học tốt !