By GokiSoft.com|
19:54 04/03/2022|
Học PHP
[Video] Quản lý tài khoản người dùng PHP/MySQL - Tạo tài khoản User trong phpmyadmin
#api_user.php
<?php
require_once('dbhelp.php');
$action = getPost('action');
switch ($action) {
case 'delete':
deleteUserFromDB();
break;
}
function deleteUserFromDB() {
$id = getPost('id');
$query = "delete from Users where id = '$id'";
execute($query);
}
#config.php
<?php
define('HOST', 'localhost');
define('DATABASE', 'C2108L');
// define('USERNAME', 'dieptv');
// define('PASSWORD', 'F3!KcshQRe8otOjO');
define('USERNAME', 'root');
define('PASSWORD', '');
function getPost($key, $slash = '\'') {
$value = '';
if(isset($_POST[$key])) {
$value = $_POST[$key];
// $value = Sinh Vien ' ABC ' => Sinh Vien \' ABC \'
// \\ -> \
// \' -> '
// \' (Hieu la: ') -> \\\' (Hieu la: \')
$value = str_replace($slash, "\\".$slash, $value);
}
return $value;
}
function getMD5Pwd($pwd) {
$encrypt = md5($pwd);
//length: 32 ky tu (a-zA-Z0-9)
//Chu y: md5 -> hack -> Ko an toan nua -> table hash -> Tim ra mat khau goc
$encrypt = md5('4957sdJKHG987&*^dfhdfd'.$encrypt.'()49085IUYd9854574Jhdh');
return $encrypt;
}
#dbhelp.php
<?php
require_once('config.php');
/**
* Ham nay se su dung cho TH cau truy van: insert, update, delete
*/
function execute($query) {
// Mo ket noi toi CSDL
$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
mysqli_set_charset($conn, 'utf8');
// Thuc hien query -> insert du lieu vao database
// $query = "insert into Users(fullname, email, password, address) values ('$fullname', '$email', '$pwd', '$address')";
// echo $query;
mysqli_query($conn, $query);
// Dong ket noi CSDL
mysqli_close($conn);
}
function executeResult($query) {
// Mo ket noi toi CSDL
$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
mysqli_set_charset($conn, 'utf8');
// Thuc hien query -> insert du lieu vao database
// $query = "insert into Users(fullname, email, password, address) values ('$fullname', '$email', '$pwd', '$address')";
// echo $query;
// $query = "select * from Users where email = '$email' and password = '$pwd'";
$resultset = mysqli_query($conn, $query);
$data = [];
while(($row = mysqli_fetch_array($resultset, 1)) != null) {
$data[] = $row;
}
// Dong ket noi CSDL
mysqli_close($conn);
return $data;
}
#list.php
<?php
require_once('dbhelp.php');
$query = "select * from Users";
$userList = executeResult($query);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Register Page</title>
<!-- Bootstrap -> thiet ke GUI -->
<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.5.1/jquery.min.js"></script>
<style type="text/css">
.form-group {
margin-bottom: 20px;
}
</style>
</head>
<body>
<div class="container">
<table class="table table-bordered">
<thead>
<tr>
<th style="width: 50px">No</th>
<th>Full Name</th>
<th>Email</th>
<th>Address</th>
<th style="width: 60px"></th>
<th style="width: 60px"></th>
</tr>
</thead>
<tbody>
<?php
$index = 0;
foreach($userList as $item) {
echo '<tr>
<td style="width: 50px">'.(++$index).'</td>
<td>'.$item['fullname'].'</td>
<td>'.$item['email'].'</td>
<td>'.$item['address'].'</td>
<td style="width: 60px"><button class="btn btn-warning">Edit</button></td>
<td style="width: 60px"><button class="btn btn-danger" onclick="deleteUser('.$item['id'].')">Delete</button></td>
</tr>';
}
?>
</tbody>
</table>
</div>
<script type="text/javascript">
function deleteUser(id) {
var option = confirm('Are you sure to delete this user?')
if(!option) return
$.post('api_user.php', {
'action': 'delete',
'id': id
}, function(data) {
location.reload()
})
}
</script>
</body>
</html>
#login.php
<?php
$msg = $email = $pwd = "";
if(!empty($_POST)) {
// Them thong tin nguoi dung vao CSDL
require_once('dbhelp.php');
$email = getPost('email');
$pwd = getPost('pwd');
$pwd = getMD5Pwd($pwd);
// Mo ket noi toi CSDL
// $conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
// mysqli_set_charset($conn, 'utf8');
// Thuc hien query -> insert du lieu vao database
// $query = "insert into Users(fullname, email, password, address) values ('$fullname', '$email', '$pwd', '$address')";
// echo $query;
$query = "select * from Users where email = '$email' and password = '$pwd'";
$data = executeResult($query);
// $resultset = mysqli_query($conn, $query);
// $data = [];
// while(($row = mysqli_fetch_array($resultset, 1)) != null) {
// $data[] = $row;
// }
// Dong ket noi CSDL
// mysqli_close($conn);
if(count($data) == 1) {
//login thanh cong
header('Location: list.php');
die();
} else {
$msg = 'Danh Nhap That Bai!';
}
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Register Page</title>
<!-- Bootstrap -> thiet ke GUI -->
<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.5.1/jquery.min.js"></script>
<style type="text/css">
.form-group {
margin-bottom: 20px;
}
</style>
</head>
<body>
<div class="container">
<h1 style="text-align: center; color: red;"><?=$msg?></h1>
<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">
<button class="btn btn-success">Login</button>
</div>
</form>
</div>
</body>
</html>
#readme.txt
Nội dung học:
- Giới thiệu về phpmyadmin (mysql)
- Thiết kế 1 CSDL quản lý người dùng
- Phát triển 1 dự án quản lý người dùng
1) Tài khoản người dùng:
- IP: PC Name -> localhost
- TK:
User Name:root
Pwd:
- Tạo được 1 TK mới:
User Name: dieptv
Pwd: F3!KcshQRe8otOjO
2) MySQL
- CSDL: C2108L
- Tạo 1 bảng User
create table Users (
id int primary key auto_increment,
fullname varchar(50),
email varchar(150),
password varchar(32),
address varchar(200)
)
3) Phat trien du an ket noi PHP & MySQL
#register.php
<?php
$fullname = $email = $pwd = $address = "";
if(!empty($_POST)) {
// Them thong tin nguoi dung vao CSDL
require_once('dbhelp.php');
$fullname = getPost('fullname');
$email = getPost('email');
$pwd = getPost('pwd');
$pwd = getMD5Pwd($pwd);
//Yeu cau: pwd -> ma hoa -> ma hoa 1 chieu: password -> encrypt -> encrypt code -> ko the dich nguoc lai mat khau goc
$address = getPost('address');
// Mo ket noi toi CSDL
// $conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
// mysqli_set_charset($conn, 'utf8');
// Thuc hien query -> insert du lieu vao database
// insert, update, delete
$query = "insert into Users(fullname, email, password, address) values ('$fullname', '$email', '$pwd', '$address')";
execute($query);
// echo $query;
// mysqli_query($conn, $query);
// Dong ket noi CSDL
// mysqli_close($conn);
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Register Page</title>
<!-- Bootstrap -> thiet ke GUI -->
<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.5.1/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>Fullname</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>Address</label>
<input required type="text" name="address" class="form-control">
</div>
<div class="form-group">
<button class="btn btn-success">Register</button>
</div>
</form>
</div>
</body>
</html>
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)