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)