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 Bài tập - Tạo website bán hàng lư niệm - Login - Lập trình PHP/MySQL

Bài tập - Tạo website bán hàng lư niệm - Login - Lập trình PHP/MySQL

by GokiSoft.com - 19:51 17/07/2021 4,942 Lượt Xem

Bạn được yêu cầu phát triển dự án như sau

- Phát triển 1 trang init.php thực hiện các chức năng sau.

1) Tạo CSDL đặt tên là gift_db -> nếu chưa tồn tại

2) Tạo bảng gift nếu chưa tồn tại gồm các column sau: id tự tăng, tiêu đề, thumbnail, nội dung, giá tiền, ngày tạo, ngày sửa, id_user

Bảng user: id tự tăng, tên, email, mật khẩu, token.

- Trang login.php -> sau khi login thành công thì chuyển sang trang quantri.php

- Trang register.php -> sau khi đăng ký thành công thì chuyển sang trang login.php

- quantri.php -> Hiển thị thông tin gift trong database. Cho phép thêm/sửa/xoá -> thực hiện viết phân trang. Chỉ xem khi tài khoản đã login -> và chỉ xem được sản phẩm mình đã thêm vào.

Bình luận



Chia sẻ từ lớp học

GokiSoft.com [Teacher]

Ngày viết: 19:49 17/07/2021



1) Xay dung database

- create database if not exists gift_db_2
- create tables

create table if not exists user (
	id int primary key auto_increment,
	fullname varchar(50),
	email varchar(150),
	password varchar(32),
	token varchar(32)
)

create table if not exists gift (
	id int primary key auto_increment,
	title varchar(200) not null,
	thumbnail varchar(500),
	content longtext,
	price float,
	created_at datetime,
	updated_at datetime,
	id_user int references user (id)
)

2) Phat trien phan mem
- Xay dung khung chuong trinh
	db
		config.php
		dbhelper.php


GokiSoft.com [Teacher]

Ngày viết: 19:48 17/07/2021




#config.php


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


#register.php


<?php
session_start();

require_once ('db/dbhelper.php');
require_once ('form_register.php');
?>
<!DOCTYPE html>
<html>
<head>
	<title>Register Page</title>

	<style type="text/css">
		.main {
			width: 640px;
			margin: 0px auto;
		}
	</style>
</head>
<body>
	<div class="main">
		<h1 style="text-align: center;">Register Form</h1>
		<form method="post">
			<label>Full Name: </label>
			<input required="true" type="text" name="fullname" style="width: 100%;" placeholder="Enter full name">
			<br/><br/>
			<label>Email: </label>
			<input required="true" type="email" name="email" style="width: 100%;" placeholder="Enter email">
			<br/><br/>
			<label>Password: </label>
			<input required="true" type="password" name="password" style="width: 100%;" placeholder="Enter password">
			<br/><br/>
			<label>Confirm Password: </label>
			<input required="true" type="password" name="confirm_password" style="width: 100%;" placeholder="Enter confirm password">
			<br/><br/>
			<p>
				<a href="login.php">I have a account</a>
			</p>
			<button type="submit">Register</button>
		</form>
	</div>
</body>
</html>


#quantri.php


<?php
session_start();

require_once ('db/dbhelper.php');

$sql    = "select gift.*, user.fullname from gift left join user on gift.id_user = user.id";
$result = executeResult($sql);
?>
<!DOCTYPE html>
<html>
<head>
	<title>Gift Page</title>

	<style type="text/css">
		.main {
			width: 640px;
			margin: 0px auto;
		}
	</style>
</head>
<body>
	<div class="main">
		<h1 style="text-align: center;">Gift Page</h1>
		<a href="gift_editor.php"><button>Add new gift</button></a>
		<table border="1" cellspacing="3" cellpadding="3" style="width: 100%;margin-top: 10px;">
			<thead>
				<tr>
					<th>No</th>
					<th>Title</th>
					<th>Price</th>
					<th>Updated At</th>
					<th>Created By</th>
					<th></th>
					<th></th>
				</tr>
			</thead>
			<tbody>
<?php
$count = 0;
foreach ($result as $item) {
	echo '<tr>
					<td>'.(++$count).'</td>
					<td>'.$item['title'].'</td>
					<td>'.$item['price'].'</td>
					<td>'.$item['updated_at'].'</td>
					<td>'.$item['fullname'].'</td>
					<td><a href="gift_editor.php?id='.$item['id'].'"><button>Edit</button></a></td>
					<td>
						<form method="post" action="form_delete_gift.php" onsubmit="return confirmDelete();">
							<input type="text" name="id" style="width: 100%;" placeholder="Enter id" value="'.$item['id'].'" hidden>
							<button>Delete</button>
						</form>
					</td>
				</tr>';
}
?>
			</tbody>
		</table>
	</div>
<script type="text/javascript">
	function confirmDelete() {
		option = confirm('Ban chac chan muon xoa gift nay ko?')
		if(!option) return false
		return true
	}
</script>
</body>
</html>


#login.php


<?php
session_start();

require_once ('db/dbhelper.php');
require_once ('form_login.php');
?>
<!DOCTYPE html>
<html>
<head>
	<title>Login Page</title>

	<style type="text/css">
		.main {
			width: 640px;
			margin: 0px auto;
		}
	</style>
</head>
<body>
	<div class="main">
		<h1 style="text-align: center;">Login Form</h1>
		<form method="post">
			<label>Email: </label>
			<input required="true" type="email" name="email" style="width: 100%;" placeholder="Enter email">
			<br/><br/>
			<label>Password: </label>
			<input required="true" type="password" name="password" style="width: 100%;" placeholder="Enter password">
			<br/><br/>
			<p>
				<a href="login.php">Create a new account</a>
			</p>
			<button type="submit">Login</button>
		</form>
	</div>
</body>
</html>


#init.php


<?php
if (!empty($_POST)) {
	require_once ('db/dbhelper.php');
	createDB();

	$sql = "create table if not exists user (
		id int primary key auto_increment,
		fullname varchar(50),
		email varchar(150),
		password varchar(32),
		token varchar(32)
	)";

	execute($sql);

	$sql = "create table if not exists gift (
		id int primary key auto_increment,
		title varchar(200) not null,
		thumbnail varchar(500),
		content longtext,
		price float,
		created_at datetime,
		updated_at datetime,
		id_user int references user (id)
	)";

	execute($sql);
}
?>
<!DOCTYPE html>
<html>
<head>
	<title>Init Page</title>
</head>
<body>
	<h1 style="text-align: center;">Init Database</h1>
	<center>
		<form method="post">
			<button name="action" value="init">Start Init Database</button>
		</form>
	</center>
</body>
</html>


#gift_editor.php


<?php
session_start();

require_once ('db/dbhelper.php');
require_once ('form_gift.php');
?>
<!DOCTYPE html>
<html>
<head>
	<title>Gift Editor Page</title>

	<style type="text/css">
		.main {
			width: 640px;
			margin: 0px auto;
		}
	</style>
</head>
<body>
	<div class="main">
		<h1 style="text-align: center;">Gift Editor</h1>
		<form method="post">
			<label>Title: </label>
			<input type="text" name="id" style="width: 100%;" placeholder="Enter id" value="<?=$id?>" hidden>
			<input required="true" type="text" name="title" style="width: 100%;" placeholder="Enter title" value="<?=$title?>">
			<br/><br/>
			<label>Thumbnail: </label>
			<input required="true" type="text" name="thumbnail" style="width: 100%;" placeholder="Enter thumbnail" value="<?=$thumbnail?>">
			<br/><br/>
			<label>Price: </label>
			<input required="true" type="number" name="price" style="width: 100%;" placeholder="Enter price" value="<?=$price?>">
			<br/><br/>
			<label>Content: </label>
			<textarea name="content" rows="5" style="width: 100%;"><?=$content?></textarea>

			<button type="submit">Save</button>
		</form>
	</div>
</body>
</html>


#form_register.php


<?php
$fullname = $email = $password = $confirm_password = "";

if (!empty($_POST)) {
	$fullname         = $_POST['fullname'];
	$email            = $_POST['email'];
	$password         = $_POST['password'];
	$confirm_password = $_POST['confirm_password'];

	if ($confirm_password == $password) {
		$sql = "insert into user (fullname, email, password) values ('$fullname', '$email', '$password')";
		execute($sql);

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


#form_login.php


<?php
$fullname = $email = $password = $confirm_password = "";

if (!empty($_POST)) {
	$email    = $_POST['email'];
	$password = $_POST['password'];

	$sql    = "select * from user where email = '$email' and password = '$password'";
	$result = executeResult($sql);

	if (count($result) > 0) {
		//login thanh cong
		$_SESSION['user'] = $result[0];

		header("Location: quantri.php");
		die();
	}
}


#form_gift.php


<?php
$title = $thumbnail = $content = $price = "";

if (!empty($_POST)) {
	$id         = $_POST['id'];
	$title      = $_POST['title'];
	$thumbnail  = $_POST['thumbnail'];
	$content    = $_POST['content'];
	$price      = $_POST['price'];
	$id_user    = $_SESSION['user']['id'];
	$created_at = $updated_at = date('Y-m-d H:i:s');

	if ($confirm_password == $password) {
		if ($id > 0) {
			$sql = "update gift set title = '$title', thumbnail = '$thumbnail', content = '$content', price = '$price', updated_at = '$updated_at' where id = $id";
		} else {
			$sql = "insert into gift (title, thumbnail, content, price, id_user, created_at, updated_at) values ('$title', '$thumbnail', '$content', '$price', '$id_user', '$created_at', '$updated_at')";
		}

		execute($sql);

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

$id = '0';
if (isset($_GET['id'])) {
	$id     = $_GET['id'];
	$sql    = "select * from gift where id = ".$id;
	$result = executeResult($sql);
	if (count($result) > 0) {
		$title     = $result[0]['title'];
		$thumbnail = $result[0]['thumbnail'];
		$content   = $result[0]['content'];
		$price     = $result[0]['price'];
	} else {
		$id = '0';
	}
}


#form_delete_gift.php


<?php
session_start();

require_once ('db/dbhelper.php');

if (!empty($_POST)) {
	$id  = $_POST['id'];
	$sql = "delete from gift where id = $id";
	execute($sql);

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


#dbhelper.php


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

/**
 * Su dung cho lenh: insert/update/delete
 */
function createDB() {
	// Them du lieu vao database
	//B1. Mo ket noi toi database
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD);
	//connect error
	if (mysqli_connect_errno()) {
		echo "database error > ".mysqli_connect_error();
		exit();
	}

	mysqli_set_charset($conn, 'utf8');

	//B2. Thuc hien truy van insert
	$sql = "create database if not exists ".DATABASE;
	mysqli_query($conn, $sql);

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

/**
 * Su dung cho lenh: insert/update/delete
 */
function execute($sql) {
	// Them du lieu vao database
	//B1. Mo ket noi toi database
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
	//connect error
	if (mysqli_connect_errno()) {
		echo "database error > ".mysqli_connect_error();
		exit();
	}
	mysqli_set_charset($conn, 'utf8');

	//B2. Thuc hien truy van insert
	mysqli_query($conn, $sql);

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

/**
 * Su dung cho lenh: select
 */
function executeResult($sql) {
	// Them du lieu vao database
	//B1. Mo ket noi toi database
	$conn = mysqli_connect(HOST, USERNAME, PASSWORD, DATABASE);
	//connect error
	if (mysqli_connect_errno()) {
		echo "database error > ".mysqli_connect_error();
		exit();
	}

	mysqli_set_charset($conn, 'utf8');

	//B2. Thuc hien truy van insert
	$resultset = mysqli_query($conn, $sql);
	$data      = [];

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

	//B3. Dong ket noi database
	mysqli_close($conn);

	return $data;
}


Tài Liệu Tham Khảo

Đã sao chép!!!