By GokiSoft.com| 21:17 21/05/2022|
Học PHP

[Source Code] Bài tập - Tạo trang login và register - kết nối CSDL trong PHP - Lập trình PHP/MySQL - C2110L

Bài tập - Tạo trang login và register - kết nối CSDL trong PHP - Lập trình PHP/MySQL

#welcome.php


<?php
session_start();

if(!isset($_SESSION['user'])) {
	header('Location: login.php');
	die();
}

require_once('dbhelper.php');

$username = $email = "";

if(isset($_SESSION['user'])) {
	$username = $_SESSION['user']['username'];
	$email = $_SESSION['user']['email'];
}
?>

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>User Info Page</title>

	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
	<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

	<style type="text/css">
		.form-group {
			margin-bottom: 20px;
		}
	</style>
</head>
<body>
<div class="container">
	<table class="table table-bordered">
		<tr>
			<th>User Name</th>
			<td><?=$username?></td>
		</tr>
		<tr>
			<th>Email</th>
			<td><?=$email?> <a href="logout.php">Logout</a></td>
		</tr>
	</table>
</div>
</body>
</html>


#register.php


<?php
session_start();

if(isset($_SESSION['user'])) {
	header('Location: welcome.php');
	die();
}

require_once('dbhelper.php');

$fullname = $email = $pwd = $msg = "";

if(!empty($_POST)) {
	// $fullname = $_POST['fullname'];
	// $email = $_POST['email'];
	// $pwd = $_POST['pwd'];
	$fullname = getPost('fullname');
	$email = getPost('email');
	$pwd = getPost('pwd');
	$pwd = getMD5Security($pwd);

	// Them du lieu vao database
	$sql = "select * from student where email = '$email'";
	$data = executeResult($sql, true);

	if($data != null) {
		//Tai khoan da ton tai
		$msg = "Email existed";
	} else {
		$sql = "insert into student (username, email, password) values ('$fullname', '$email', '$pwd')";
		execute($sql);
		$fullname = $email = $pwd = $msg = "";
	}
}
?>

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Register Page</title>

	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
	<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

	<style type="text/css">
		.form-group {
			margin-bottom: 20px;
		}
	</style>
</head>
<body>
<div class="container">
	<form method="post">
		<div class="form-group">
			<label>Full Name: </label>
			<input required type="text" name="fullname" class="form-control" value="<?=$fullname?>">
		</div>
		<div class="form-group">
			<label>Email: </label>
			<input required type="email" name="email" class="form-control">
			<p style="color: red;"><?=$msg?></p>
		</div>
		<div class="form-group">
			<label>Password: </label>
			<input required type="password" name="pwd" class="form-control">
		</div>
		<div class="form-group">
			<p>
				<a href="login.php">I have a account</a>
			</p>
			<button class="btn btn-success">Register</button>
		</div>
	</form>
</div>
</body>
</html>


#readme.txt


- Bước triển khai dự án:

1) Thiết kế database
	- Tao CSDL
	- Tao tables

2) Xay dung cau truc du an
	- config.php -> Chua thong tin cau hinh database
	- dbhelper.php -> thu vien -> ket noi vao CSDL
	- Page chuc nang cua du an

MK -> giai thuat -> ma hoa 1 chieu -> mat khau da dc ma hoa


#logout.php


<?php
session_start();
header('Location: login.php');
session_destroy();


#login.php


<?php
session_start();

if(isset($_SESSION['user'])) {
	header('Location: welcome.php');
	die();
}

require_once('dbhelper.php');

$email = $pwd = $msg = "";

if(!empty($_POST)) {
	// $email = $_POST['email'];
	$email = getPost('email');
	// $pwd = $_POST['pwd'];
	$pwd = getPost('pwd');
	$pwd = getMD5Security($pwd);

	// Them du lieu vao database
	$sql = "select * from student where email = '$email' and password = '$pwd'";
	// echo $sql;die();
	$data = executeResult($sql, true);

	if($data != null) {
		//Dang nhap thanh cong
		$_SESSION['user'] = $data;
		header('Location: welcome.php');
		die();
	} else {
		//Dang nhap that bai
		$msg = 'Login failed';
	}
}
?>

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Login Page</title>

	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/css/bootstrap.min.css" rel="stylesheet">
	<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.1.3/dist/js/bootstrap.bundle.min.js"></script>
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>

	<style type="text/css">
		.form-group {
			margin-bottom: 20px;
		}
	</style>
</head>
<body>
<div class="container">
	<form method="post">
		<h2 style="text-align: center;"><?=$msg?></h2>
		<div class="form-group">
			<label>Email: </label>
			<input required type="email" name="email" class="form-control">
		</div>
		<div class="form-group">
			<label>Password: </label>
			<input required type="password" name="pwd" class="form-control">
		</div>
		<div class="form-group">
			<p>
				<a href="register.php">Create a new account</a>
			</p>
			<button class="btn btn-success">Login</button>
		</div>
	</form>
</div>
</body>
</html>


#dbhelper.php


<?php
require_once('config.php');

/**
 * Insert, Update, Delete
 */
function execute($sql) {
	// Them du lieu vao CSDL
	// B1. Cach ket noi CSDL
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
	mysqli_set_charset($conn, 'utf8');

	// B2. Luu du lieu
	// $sql = "delete from student where id = $id";
	mysqli_query($conn, $sql);

	// B3. Ngat ket noi toi CSDL
	mysqli_close($conn);
}

/**
 * Select
 */
function executeResult($sql, $isSingle = false) {
	// Them du lieu vao CSDL
	// B1. Cach ket noi CSDL
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
	mysqli_set_charset($conn, 'utf8');

	// B2. Luu du lieu
	$resultset = mysqli_query($conn, $sql);

	if($isSingle) {
		$data = mysqli_fetch_array($resultset, 1);
	} else {
		$data = [];
		while(($row = mysqli_fetch_array($resultset, 1)) != null) {
			$data[] = $row;
		}
	}

	// B3. Ngat ket noi toi CSDL
	mysqli_close($conn);

	return $data;
}

function getPost($key) {
	$value = '';
	if(isset($_POST[$key])) {
		$value = $_POST[$key];
		$value = fix_sql_injection($value);
	}

	return $value;
}

function getGet($key) {
	$value = '';
	if(isset($_GET[$key])) {
		$value = $_GET[$key];
		$value = fix_sql_injection($value);
	}

	return $value;
}

function fix_sql_injection($str, $replace = "'") {
	return str_replace("'", "\\'", $str);
}

function getMD5Security($pwd) {
	//&^384jdsgfJFFas826^%6523j -> go la j cung dc
	return md5(md5($pwd).'&^384jdsgfJFFas826^%6523j');
}


#config.php


<?php
define('HOST', 'localhost');
define('DATABASE', 'C2110L');
define('USERNAME', 'root');
define('PASSWORD', '');


Tags:

Phản hồi từ học viên

5

(Dựa trên đánh giá ngày hôm nay)