By GokiSoft.com| 09:54 22/04/2022|
Học PHP

[Source Code] Thêm/sửa/xoá thông tin tài khoản người dùng PHP/MySQL - Khoá học PHP/MySQL - C2108G3

#readme.txt


Phát triển dự án:
	- db:
		- config.php
		- dbhelper.php
	- utils
		- utility.php
	list.php -> Hiển thị danh sách tài khoản người dùng
	add.php -> Thêm tài khoản người dùng
	edit.php -> Sửa tài khoản người dung
	delete.php -> Xoá tài khoản người

	Authentication:
		login.php
		register.php
		logout.php

	Xu ly luong:
		login thanh cong -> vao xem dc page: list.php, add.php, edit.php, delete.php
		chua login -> login.php, register.php

		$_SESSION['currentUser'] = ???


#config.php


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


#dbhelper.php


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

function execute($sql) {
	// B1) Ket noi CSDL
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
	mysqli_set_charset($conn, 'utf8');

	// B2) Insert du lieu vao database
	// echo $sql;die();
	// insert, update, delete
	mysqli_query($conn, $sql);

	// B3) Dong ket noi CSDL
	mysqli_close($conn);
}

// array index gom cac phan tu la array key & value
// chi lay 1 phan tu array key & value
function executeResult($sql, $isSingle = false) {
	// B1) Ket noi CSDL
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
	mysqli_set_charset($conn, 'utf8');

	// B2) Insert du lieu vao database
	// echo $sql;die();
	// insert, update, delete
	$resultset = mysqli_query($conn, $sql);

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

	// B3) Dong ket noi CSDL
	mysqli_close($conn);

	return $data;
}


#utility.php


<?php
function getPost($key, $special = "'") {
	$value = '';
	if(isset($_POST[$key])) {
		$value = $_POST[$key];

		//Huy ky tu dac biet trong $value
		$value = str_replace($special, "\\".$special, $value);
	}

	return $value;
}

function getGet($key, $special = "'") {
	$value = '';
	if(isset($_GET[$key])) {
		$value = $_GET[$key];

		//Huy ky tu dac biet trong $value
		$value = str_replace($special, "\\".$special, $value);
	}

	return $value;
}

function getMD5Security($pwd) {
	return md5(md5($pwd).'SDFKJH8907jgjgs8*(&(87234');
}

function checkLogin() {
	if(isset($_SESSION['currentUser']) && $_SESSION['currentUser'] != null) {
		return true;
	}
	return false;
}


#add.php


<?php
session_start();

require_once('utils/utility.php');
require_once('db/dbhelper.php');

if(!checkLogin()) {
	header('Location: login.php');
	die();
}

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

	$sql = "insert into student(fullname, email, pwd) values ('$fullname', '$email', '$pwd')";
	execute($sql);

	header('Location: list.php');
}
?>

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Add User Page</title>
	<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;
		}

		.card {
			margin-bottom: 20px;
		}
	</style>
</head>
<body>
<div class="container">
	<form method="post" onsubmit="return validateData();">
		<div class="form-group">
			<label>Full Name: </label>
			<input required type="text" name="fullname" class="form-control">
		</div>
		<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">
			<label>Confirm Password: </label>
			<input required type="password" name="confirmPwd" class="form-control">
		</div>
		<div class="form-group">
			<button class="btn btn-success">Save</button>
			<a href="list.php"><button type="button" class="btn btn-secondary">Back</button></a>
		</div>
	</form>
</div>
<script type="text/javascript">
	function validateData() {
		if($('[name=pwd]').val() != $('[name=confirmPwd]').val()) {
			alert('Password does not match')
			return false
		}
		return true
	}
</script>
</body>
</html>


#delete.php


<?php
session_start();

require_once('utils/utility.php');
require_once('db/dbhelper.php');

if(!checkLogin()) {
	header('Location: login.php');
	die();
}

if(!empty($_POST)) {
	$id = getPost('id');

	$sql = "delete from student where id = '$id'";
	execute($sql);

	header('Location: list.php');
	die();
}

$id = getGet('id');
$sql = "select * from student where id = '$id'";
$std = executeResult($sql, true);
if($std == null) {
	header('Location: list.php');
	die();
}
?>

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Delete User Page</title>
	<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;
		}

		.card {
			margin-bottom: 20px;
		}
	</style>
</head>
<body>
<div class="container">
	<form method="post" onsubmit="return validateData();">
		<div class="form-group">
			<label>Full Name: <?=$std['fullname']?></label>
			<input type="text" name="id" value="<?=$id?>" style="display: none;">
		</div>
		<div class="form-group">
			<label>Email: <?=$std['email']?></label>
		</div>
		<div class="form-group">
			<button class="btn btn-success">Confirm Delete</button>
			<a href="list.php"><button type="button" class="btn btn-secondary">Back</button></a>
		</div>
	</form>
</div>
</body>
</html>


#edit.php


<?php
session_start();

require_once('utils/utility.php');
require_once('db/dbhelper.php');

if(!checkLogin()) {
	header('Location: login.php');
	die();
}

$fullname = $email = $pwd = "";
if(!empty($_POST)) {
	$fullname = getPost('fullname');
	$email = getPost('email');
	$pwd = getPost('pwd');
	$id = getPost('id');

	if($pwd != "") {
		$pwd = getMD5Security($pwd);
		$sql = "update student set fullname='$fullname', email='$email', pwd='$pwd' where id = '$id'";
	} else {
		$sql = "update student set fullname='$fullname', email='$email' where id = '$id'";
	}
	execute($sql);

	header('Location: list.php');
	die();
}

$id = getGet('id');
$sql = "select * from student where id = '$id'";
$std = executeResult($sql, true);
if($std == null) {
	header('Location: list.php');
	die();
}
?>

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Add User Page</title>
	<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;
		}

		.card {
			margin-bottom: 20px;
		}
	</style>
</head>
<body>
<div class="container">
	<form method="post" onsubmit="return validateData();">
		<div class="form-group">
			<label>Full Name: </label>
			<input required type="text" name="fullname" class="form-control" value="<?=$std['fullname']?>">
			<input type="text" name="id" value="<?=$id?>" style="display: none;">
		</div>
		<div class="form-group">
			<label>Email: </label>
			<input required type="email" name="email" class="form-control" value="<?=$std['email']?>">
		</div>
		<div class="form-group">
			<label>Password: </label>
			<input type="password" name="pwd" class="form-control" value="">
		</div>
		<div class="form-group">
			<label>Confirm Password: </label>
			<input type="password" name="confirmPwd" class="form-control" value="">
		</div>
		<div class="form-group">
			<button class="btn btn-success">Save</button>
			<a href="list.php"><button type="button" class="btn btn-secondary">Back</button></a>
		</div>
	</form>
</div>
<script type="text/javascript">
	function validateData() {
		if($('[name=pwd]').val() != $('[name=confirmPwd]').val()) {
			alert('Password does not match')
			return false
		}
		return true
	}
</script>
</body>
</html>


#list.php


<?php
session_start();

require_once('utils/utility.php');
require_once('db/dbhelper.php');

if(!checkLogin()) {
	header('Location: login.php');
	die();
}

$sql = "select * from student";
$stdList = executeResult($sql);
?>

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>User Management Page</title>
	<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>

	<style type="text/css">
		.form-group {
			margin-bottom: 20px;
		}

		.card {
			margin-bottom: 20px;
		}
	</style>
</head>
<body>
<div class="container">
	<a href="add.php"><button class="btn btn-success mb-3">Add User</button></a>
	<a href="logout.php"><button class="btn btn-secondary mb-3">Logout (<?=$_SESSION['currentUser']['fullname']?>)</button></a>
	<table class="table table-bordered">
		<thead>
			<tr>
				<th>No</th>
				<th>Full Name</th>
				<th>Email</th>
				<th style="width: 60px"></th>
				<th style="width: 60px"></th>
			</tr>
		</thead>
		<tbody>
<?php
$index = 0;
foreach($stdList as $item) {
	echo '<tr>
				<td>'.(++$index).'</td>
				<td>'.$item['fullname'].'</td>
				<td>'.$item['email'].'</td>
				<td>
					<a href="edit.php?id='.$item['id'].'"><button class="btn btn-warning">Edit</button></a>
				</td>
				<td>
					<a href="delete.php?id='.$item['id'].'"><button class="btn btn-danger">Delete</button></a>
				</td>
			</tr>';
}
?>
		</tbody>
	</table>
</div>
</body>
</html>


#login.php


<?php
session_start();

require_once('utils/utility.php');
require_once('db/dbhelper.php');

if(checkLogin()) {
	header('Location: list.php');
	die();
}

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

	$sql = "select * from student where email = '$email' and pwd = '$pwd'";
	$data = executeResult($sql, true);
	if($data == null) {
		echo 'Login failed';
	} else {
		$_SESSION['currentUser'] = $data;
		header('Location: list.php');
	}
}
?>

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Add User Page</title>
	<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;
		}

		.card {
			margin-bottom: 20px;
		}
	</style>
</head>
<body>
<div class="container">
	<form method="post">
		<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>


#logout.php


<?php
session_start();

header('Location: login.php');

session_destroy();


#register.php


<?php
session_start();

require_once('utils/utility.php');
require_once('db/dbhelper.php');

if(checkLogin()) {
	header('Location: list.php');
	die();
}

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

	$sql = "insert into student(fullname, email, pwd) values ('$fullname', '$email', '$pwd')";
	execute($sql);

	header('Location: login.php');
}
?>

<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<title>Add User Page</title>
	<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;
		}

		.card {
			margin-bottom: 20px;
		}
	</style>
</head>
<body>
<div class="container">
	<form method="post" onsubmit="return validateData();">
		<div class="form-group">
			<label>Full Name: </label>
			<input required type="text" name="fullname" class="form-control">
		</div>
		<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">
			<label>Confirm Password: </label>
			<input required type="password" name="confirmPwd" class="form-control">
		</div>
		<div class="form-group">
			<p>
				<a href="login.php">I have a account</a>
			</p>
			<button class="btn btn-success">Save</button>
		</div>
	</form>
</div>
<script type="text/javascript">
	function validateData() {
		if($('[name=pwd]').val() != $('[name=confirmPwd]').val()) {
			alert('Password does not match')
			return false
		}
		return true
	}
</script>
</body>
</html>


Tags:



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

5

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

Đăng nhập để làm bài kiểm tra

Chưa có kết quả nào trước đó