IMG-LOGO
×

Giáo Trình Môn Học

Khoá học lập trình PHP/MySQL

Kiến Thức Căn Bản

[Video] Lập trình PHP basic - Biến, hằng, toán tử và mảng trong PHP - lập trình PHP [Video] Hướng dẫn lập trình PHP căn bản với if, else if, else, switch- lập trình PHP [Video] Lập trình PHP basic - for, while, do while, foreach, function - lập trình PHP [Video] Hướng dẫn lập trình PHP căn bản - Function - lập trình PHP

Tìm Hiểu Form GET/POST

[Video] Hướng dẫn học lập PHP căn bản - Tìm hiểu GET/POST - lập trình PHP [Video] Hướng dẫn tạo dự án calculator bang PHP + JS - Lập trình PHP [Video] Ajax: Hướng dẫn tạo máy tính bằng PHP - Sử dụng Ajax - GET/POST form trong PHP - Lập trình PHP [Video] Form đăng ký tài khoản bằng PHP (GET/POST)- Form PHP [Video] huong dan chua bai tap dang ky & login su dung GET & POST - Lập trình PHP

Cookie

[Video] Lập trình PHP căn bản - cookie - lập trình PHP [Video] Hướng dẫn tìm hiểu cookie - Quản lý xác minh tài khoản login - cookie - Lập trình PHP/MySQL

Session

[Video] Lập trình PHP căn bản - session - lập trình PHP [Video] Thành thạo API - Ajax trọng dự án - Thành thạo về Session - Lập trình PHP/MySQL

Kết Nối CSDLPHP/ MySQL

[Video] Thực hiện truy vấn dữ liệu từ PHP tới MySql - Khoá học PHP căn bản [Video] Kết nối PHP với MySQL (Thực hiện insert) - Khoá PHP căn bản [Video] Tối ưu hoá code mysql + php, tạo thư viện chung trong lập trình PHP căn bản [Video] Tạo web tin tức - PHP/MySQL [Video] Thực hiện đăng nhập tài khoản sử dụng php mysql - khoá học PHP căn bản [Video]Cookie: Xây dựng cart (giỏ hàng) + checkout (thanh toán) sử dụng Cookie & localStorage - Lập trình PHP/MySQL [Video] Session: Xây dựng web hoàn thiện gồm cart page + checkout page + complete page - Lập trình PHP/MySQL [Video] Trang quản lý sản phẩm php - Lập trình PHP [Video] Viết website quản lý sinh viên PHP & MySQL - Lập Trình PHP [Video] Hướng dẫn phân trang bằng PHP - Lập trình PHP

OOP & Nâng Cao

[Video] OOP - Lập trình php [Video] Kế thừa OOP - Lập trình php [Video] Nắm chắc token login - Hướng dẫn login login multi devices, browsers trong lập trình PHP/MySQL [Video] Trở thành chuyên gia API Server - Hướng dẫn tất tần tật về API từ Server tới Client - Lập trình PHP

Examination & Ôn Tập

[Video] Kiểm Tra 60 phút - Test nhanh - Khóa học PHP

Thực Chiến: Web Bán Hoa Quả

[Video] Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Phần 1 [Video] Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Phần 2 [Video] Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Summernote editor - Phần 3 [Video] Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Phần 4 [Video] Xây dựng website bán hoa quả bằng PHP/MySQL - Lập trình PHP/MySQL - Phần 5

Thực Chiến: Web Bán Hàng

[Video] PHẦN 1 | Giới thiệu dự án-công nghệ sử dụng - phân tích chức năng dự án | Website bán hàng PHP/MySQL [Video] Phần 2 | Phân tích thiết kế CSDL (database) | Web bán hàng PHP/MySQL [Video] Phần 3 | Phân tích thiết kế CSDL (database) | Web bán hàng PHP/MySQL [Video] Phần 19 FINAL | Hướng dẫn cài đặt dự án từ source code mẫu | Web bán hàng PHP/MySQL

Hướng Dẫn Deploy Dự Án

[Video] Hướng dẫn upload website lên server -Hướng dẫn deploy project php trên heroku - Cài đặt Heroku




Trang Chủ Học PHP Quản lý sách bằng PHP - trang quản trị sách bằng PHP - Lập trình PHP

Quản lý sách bằng PHP - trang quản trị sách bằng PHP - Lập trình PHP

by GokiSoft.com - 20:10 08/05/2021 11,615 Lượt Xem

Thiết kế CSDL đặt tên library gồm 2 bảng.

- user gồm các trường : tên tài khoản, email, họ tên, sđt, mật khẩu

- book gồm các trường : tên sách, tác giả, giá bán, nhà sản xuất

Yêu cầu:

Khi vào web thì hiển thị trang login.php (có chức năng đăng ký => chuyển sang trang signup.php). Khi người dùng login => kiểm trang thông tin trong CSDL => nếu đúng thì đăng nhập thành công => chuyển sang trang quản lý sách

Trang signup.php => Cho phép đăng ký tài khoản mới => Lưu thông tin đăng ký vào CSDL (bảng user)

Thiết kế trang quản lý sách (thêm, sửa, xoá, tìm kiếm). Chỉ xem được trang này khi người dùng đã đăng nhập thành công.


Sử dụng cookie => lưu trạng thái login.

Bình luận



Chia sẻ từ lớp học

Đào Mạnh Dũng [C2010L]

Ngày viết: 14:40 14/05/2021


#form-add.php


<?php
require_once ('../db/dbhelper.php');

$name = $author = $price = $producer = '';

if (!empty($_POST)) {
	$name = getPOST('name');
	$author = getPOST('author');
	$price    = getPOST('price');
	$producer 	  =	getPOST('producer');

	if ($name != '' && $author != '' && $price != '') {
		//save user into database

		$sql = "insert into book (name , author , price , producer) values ('$name','$author', '$price' , '$producer')";
		// echo $sql;//SQL Injection
		execute($sql);

	}
}
?>


#form-delete.php


<?php
require_once ('../db/dbhelper.php');

$username = '';

if (!empty($_POST)) {
	$username = getPOST('username');

	if ($username != '') {
		$sql = "delete from book where name = '$username'";
		execute($sql);
	}
}
?>


#form-login.php


<?php
require_once ('../db/dbhelper.php');

$account = $password = '';

if (!empty($_POST)) {
	$account = getPOST('account');
	$password = getPOST('password');

	if ($account != '' && $password != '') {
		//save user into database
		$password = getPwdSecurity($password);

		$sql   = "select * from users where account = '$account' and password = '$password'";
		$users = executeResult($sql);
 
		if ($users != null && count($users) > 0) {
			//login successfully
			$token = getPwdSecurity(time().$users[0]['email']);
			setcookie('token', $token, time()+7*24*60*60, '/');

			$sql = "update users set token = '$token' where username = '".$users[0]['username']."'";
			execute($sql);
			 
			//chuyen sang trang users.php
			header('Location: users.php');
			die();
		}
	}
}
?>


#form-user.php


<?php
require_once ('../db/dbhelper.php');

$username = $password = $email = $phone = $account = '';

if (!empty($_POST)) {
	$username = getPOST('username');
	$password = getPOST('password');
	$email    = getPOST('email');
	$phone 	  =	getPOST('phone');
	$account  = getPOST('account');

	if ($username != '' && $password != '' && $email != '') {
		//save user into database
		$password = getPwdSecurity($password);

		$sql = "insert into users (account , username , phone , email, password ) values ('$account','$username', '$phone' , '$email' , '$password')";
		// echo $sql;//SQL Injection
		execute($sql);

		//chuyen sang trang login.php
		header('Location: login.php');
		die();
	}
}
?>


#login.php


<?php
require_once ('form-login.php');
?>

<!DOCTYPE html>
<html>
<head>
	<title>Registation Page</title>
	<!-- Latest compiled and minified CSS -->
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

	<!-- jQuery library -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

	<!-- Popper JS -->
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

	<!-- Latest compiled JavaScript -->
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>
	<div class="container">
		<div class="panel panel-primary">
			<div class="panel-heading">
				<h2 class="text-center">Login Page(<a href="register.php">signup</a>)</h2>
			</div>
			<div class="panel-body">
				<form method="post">
					<div class="form-group">
					  <label for="account">account:</label>
					  <input required="true" type="text" class="form-control" id="account" name="account" pattern="[a-zA-Z0-9]{3,}">
					</div>
					<div class="form-group">
					  <label for="pwd">Password:</label>
					  <input required="true" type="password" class="form-control" id="pwd" name="password">
					</div>
					<button class="btn btn-success">Login</button>

				</form>
					
			</div>
		</div>
	</div>
</body>
</html>


#logout.php


<?php
//Cach 1
// setcookie('login', 'true', time()-7*24*60*60, '/');

//Cach 2
$token = '';

if (isset($_COOKIE['token'])) {
	require_once ('../db/dbhelper.php');
	//require_once ('../utils/utility.php');

	$token = $_COOKIE['token'];
	$sql   = "update users set token = null where token = '$token'";
	execute($sql);
}

setcookie('token', '', time()-7*24*60*60, '/');

header('Location: login.php');


#register.php


<?php
require_once ('form-user.php');
?>

<!DOCTYPE html>
<html>
<head>
	<title>Registation Page</title>
	<!-- Latest compiled and minified CSS -->
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

	<!-- jQuery library -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

	<!-- Popper JS -->
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

	<!-- Latest compiled JavaScript -->
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>
	<div class="container">
		<div class="panel panel-primary">
			<div class="panel-heading">
				<h2 class="text-center">Registation Page</h2>
			</div>
			<div class="panel-body">
				<form method="post" id="RegisterForm">
					<div class="form-group">
					  <label for="account">account:</label>
					  <input required="true" type="text" class="form-control" id="account" name="account" pattern="[a-zA-Z0-9]{3,}">
					</div>
					<div class="form-group">
					  <label for="usr">User Name:</label>
					  <input required="true" type="text" class="form-control" id="usr" name="username" pattern="[a-zA-Z0-9]{3,}">
					</div>
					<div class="form-group">
					  <label for="email">Email:</label>
					  <input required="true" type="email" class="form-control" id="email" name="email">
					</div>
					<div class="form-group">
					  <label for="phone">phone:</label>
					  <input required="true" type="number" class="form-control" id="phone" name="phone">
					</div>
					<div class="form-group">
					  <label for="pwd">Password:</label>
					  <input required="true" type="password" class="form-control" id="pwd" name="password">
					</div>
					<div class="form-group">
					  <label for="confirmation_pwd">Confirmation Password:</label>
					  <input required="true" type="password" class="form-control" id="confirmation_pwd" name="confirmation_pwd">
					</div>
					<button class="btn btn-success">Register</button>
				</form>
			</div>
		</div>
	</div>
<script type="text/javascript">
	$(function() {
		$('#RegisterForm').submit(function() {
			if($('[name=password]').val() != $('[name=confirmation_pwd]').val()) {
				alert('Password is not matching, plz check it again!!!')
				return false;
			}
			return true;
		})
	})
</script>
</body>
</html>


#users.php


<?php
require_once ('../db/dbhelper.php');
require_once ('form-add.php');
$user = valiToken();
if ($user == null) {
	header('Location: login.php');
	die();
}
$sql      = "select * from book";
$bookList = executeResult($sql);
?>
<!DOCTYPE html>
<html>
<head>
	<title>Users Page</title>
	<!-- Latest compiled and minified CSS -->
	<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">

	<!-- jQuery library -->
	<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>

	<!-- Popper JS -->
	<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js"></script>

	<!-- Latest compiled JavaScript -->
	<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"></script>
</head>
<body>


	<div class="container">
		<div class="panel panel-primary">
			<div class="panel-heading">
				<h2 class="text-center">Users Page - <?=$user['username']?>(<a href="logout.php">logout</a>)</h2>
			</div>
			<div class="panel-body">
				<div class="bs-example">
    <div class="accordion" id="accordionExample">


        <div class="card">
            <div class="card-header" id="headingOne">
                <h2 class="mb-0">
                    <button type="button" class="btn btn-link" data-toggle="collapse" data-target="#collapseOne">1. thêm sách</button>									
                </h2>
            </div>
            <div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordionExample">
                <div class="card-body">


                    <form method="post" id="RegisterForm">
					<div class="form-group">
					  <label for="name">name:</label>
					  <input required="true" type="text" class="form-control" id="name" name="name">
					</div>
					<div class="form-group">
					  <label for="author">author:</label>
					  <input required="true" type="text" class="form-control" id="author" name="author">
					</div>
					<div class="form-group">
					  <label for="price">price:</label>
					  <input required="true" type="number" class="form-control" id="price" name="price">
					</div>
					<div class="form-group">
					  <label for="producer">producer:</label>
					  <input required="true" type="text" class="form-control" id="producer" name="producer">
					</div>
					<button class="btn btn-success">add</button>
				</form>
                </div>
            </div>
        </div>


        <div class="card">
            <div class="card-header" id="headingTwo">
                <h2 class="mb-0">
                    <button type="button" class="btn btn-link collapsed" data-toggle="collapse" data-target="#collapseTwo">2. quản lý sách</button>
                </h2>
            </div>
            <div id="collapseTwo" class="collapse show" aria-labelledby="headingTwo" data-parent="#accordionExample">
                <div class="card-body">
                                   
	<table class="table table-bordered">
					<thead>
						<tr>
							<th>No</th>
							<th>tên sách</th>
							<th>tác giả</th>
							<th>giá bán</th>
							<th>nhà sản xuất</th>
							<th style="width: 50px;"></th>
							<th style="width: 50px;"></th>
						</tr>
					</thead>
					<tbody>
<?php
$count = 0;
foreach ($bookList as $item) {
	echo '<tr>
			<td>'.(++$count).'</td>
			<td>'.$item['name'].'</td>
			<td>'.$item['author'].'</td>
			<td>'.$item['price'].'</td>
			<td>'.$item['producer'].'</td>
			<td><button class="btn btn-warning">Edit</button></td>
			<td><button class="btn btn-danger" onclick="deleteUsers(\''.$item['name'].'\')">Delete</button></td>
		</tr>';
}
?>
					</tbody>
				</table>



                                   
                </div>
            </div>
        </div>


        

    </div>
</div>
			</div>
		</div>
	</div>
<script type="text/javascript">
	function deleteUsers(username) {
		option = confirm('Are you sure to delete this user?')
		if(!option) return

		$.post('form-delete.php', {
			'username': username
		}, function(data) {//callback -> khi du lieu dc tra ve tu server
			location.reload() //load website -> khong load cung dc -> su dung jquery de update data -> tuy vao nghiep cua du an.
		})
	}
</script>
</body>
</html>


Đỗ Văn Huấn [T1907A]

Ngày viết: 22:33 23/06/2020

Minh Nghia [T1907A]

Ngày viết: 22:54 22/06/2020



https://github.com/minhnghia07/abc/tree/master/Book


Trần Mạnh Dũng [T1907A]

Ngày viết: 21:17 22/06/2020

Phí Văn Long [T1907A]

Ngày viết: 00:59 22/06/2020

https://bookmanagerusephp.herokuapp.com/

https://github.com/philong192001/BookManagerUsePHP.github.io.git

Phân Loại Bài Viết

Tài Liệu Tham Khảo

Đã sao chép!!!