Php đếm hàng

Hướng dẫn tạo trang đăng ký, đăng nhập, thoát bằng PHP với kết nối PDO

Hôm nay, chúng tôi gửi đến các bạn bài hướng dẫn đăng ký và đăng nhập bằng PHP dễ dàng bằng cách sử dụng kết nối PDO với mã hóa mật khẩu tốt hơn, có ưu điểm là làm việc trên các hệ thống cơ sở dữ liệu . PDO là một phần mở rộng của PHP cho phép chúng tôi thực thi mã được chuyển qua nhiều cơ sở dữ liệu và nền tảng
BảngNgười dùng
Người dùng bảng chứa tất cả các chi tiết đăng ký của người dùng

 CREATE TABLE `users` (
`uid` int NOT NULL PRIMARY KEY AUTO_INCREMENT ,
`username` varchar(25) NOT NULL UNIQUE,
`password` varchar(200) NOT NULL ,
`email` varchar(100) NOT NULL,
`name` varchar(100) NOT NULL,
`profile_pic` varchar(200) NOT NULL,
);

Kích hoạt tính năng mở rộng PDO cho PHP, tìm tệp tin này trong tệp cấu hình

exec("set names utf8");
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbConnection;
}
catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
}
?>
0
cấu hình. php
Tập tin cấu hình kết nối cơ sở dữ liệu, ở đây bạn phải sửa đổi tên người dùng, mật khẩu và chi tiết cơ sở dữ liệu. Nếu bạn đang sử dụng cơ sở dữ liệu khác, hãy thay đổi giá trị kết nối của trình điều khiển PDO ()

exec("set names utf8");
$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return $dbConnection;
}
catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
}
?>

Kết nối PDO PostgreSQL
Bật tiện ích mở rộng PDO_PGSQL và sử dụng
postgresql. máy chủ=$dbhost;port=5432;dbname=$dbname;$dbuser, $dbpass
Mã HTML đăng nhập
Content code HTML đơn giản

Login

Username or Email Password

Php đếm hàng

Mã HTML trang đăng ký
Trang đăng ký người dùng

Registration

Name Email Username Password

Php đếm hàng

Mã CSS

#login,#signup{
width: 300px; border: 1px solid #d6d7da;
padding: 0px 15px 15px 15px;
border-radius: 5px;font-family: arial;
line-height: 16px;color: #333333; font-size: 14px;
background: #ffffff;rgba(200,200,200,0.7) 0 4px 10px -1px
}
#login{float:left;}
#signup{float:right;}
h3{color:#365D98}
form label{font-weight: bold;}
form label, form input{display: block;margin-bottom: 5px;width: 90%}
form input{
border: solid 1px #666666;padding: 10px;
border: solid 1px #BDC7D8; margin-bottom: 20px
}
.button {
background-color: #5fcf80 ;
border-color: #3ac162;
font-weight: bold;
padding: 12px 15px;
max-width: 100px;
color: #ffffff;
}
.errorMsg{color: #cc0000;margin-bottom: 10px}

lớp người dùng. php
Lớp này bao gồm các phương thức userLogin, userRegistion và userDetails

prepare("SELECT uid FROM users WHERE (username=:usernameEmail or email=:usernameEmail) AND password=:hash_password");
$stmt->bindParam("usernameEmail", $usernameEmail,PDO::PARAM_STR) ;
$stmt->bindParam("hash_password", $hash_password,PDO::PARAM_STR) ;
$stmt->execute();
$count=$stmt->rowCount();
$data=$stmt->fetch(PDO::FETCH_OBJ);
$db = null;
if($count)
{
$_SESSION['uid']=$data->uid; // Storing user session value
return true;
}
else
{
return false;
}
}
catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
/* User Registration */
public function userRegistration($username,$password,$email,$name)
{
try{
$db = getDB();
$st = $db->prepare("SELECT uid FROM users WHERE username=:username OR email=:email");
$st->bindParam("username", $username,PDO::PARAM_STR);
$st->bindParam("email", $email,PDO::PARAM_STR);
$st->execute();
$count=$st->rowCount();
if($count<1)
{
$stmt = $db->prepare("INSERT INTO users(username,password,email,name) VALUES (:username,:hash_password,:email,:name)");
$stmt->bindParam("username", $username,PDO::PARAM_STR) ;
$hash_password= hash('sha256', $password); //Password encryption
$stmt->bindParam("hash_password", $hash_password,PDO::PARAM_STR) ;
$stmt->bindParam("email", $email,PDO::PARAM_STR) ;
$stmt->bindParam("name", $name,PDO::PARAM_STR) ;
$stmt->execute();
$uid=$db->lastInsertId(); // Last inserted row id
$db = null;
$_SESSION['uid']=$uid;
return true;
}
else
{
$db = null;
return false;
}
}
catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
/* User Details */
public function userDetails($uid)
{
try{
$db = getDB();
$stmt = $db->prepare("SELECT email,username,name FROM users WHERE uid=:uid");
$stmt->bindParam("uid", $uid,PDO::PARAM_INT);
$stmt->execute();
$data = $stmt->fetch(PDO::FETCH_OBJ); //User data
return $data;
}
catch(PDOException $e) {
echo '{"error":{"text":'. $e->getMessage() .'}}';
}
}
}
?>

mục lục. php
Bao gồm mã PHP và HTML , Hoạt động dựa trên việc gửi biểu mẫu người dùng

1 && strlen(trim($password))>1 )
{
$uid=$userClass->userLogin($usernameEmail,$password);
if($uid)
{
$url=BASE_URL.'home.php';
header("Location: $url"); // Page redirecting to home.php
}
else
{
$errorMsgLogin="Please check login details.";
}
}
}
/* Signup Form */
if (!empty($_POST['signupSubmit']))
{
$username=$_POST['usernameReg'];
$email=$_POST['emailReg'];
$password=$_POST['passwordReg'];
$name=$_POST['nameReg'];
/* Regular expression check */
$username_check = preg_match('~^[A-Za-z0-9_]{3,20}$~i', $username);
$email_check = preg_match('~^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.([a-zA-Z]{2,4})$~i', $email);
$password_check = preg_match('~^[A-Za-z0-9!@#$%^&*()_]{6,20}$~i', $password);
if($username_check && $email_check && $password_check && strlen(trim($name))>0)
{
$uid=$userClass->userRegistration($username,$password,$email,$name);
if($uid)
{
$url=BASE_URL.'home.php';
header("Location: $url"); // Page redirecting to home.php
}
else
{
$errorMsgReg="Username or Email already exists.";
}
}
}
?>
//HTML Code
....Login Form HTML Code....
....Signup Form HTML Code...

Ghi chú. Bạn phải thêm vào cách kiểm tra thông tin người dùng nhập bằng JavaScript để có trải nghiệm người dùng tốt hơn
phiên họp. php
Tệp này sẽ xác nhận và lưu trữ giá trị phiên của người dùng (phiên người dùng)

________số 8_______

Trang Chủ. php
Trang chào mừng người dùng, hiển thị chi tiết người dùng dựa trên giá trị phiên bản của người dùng

userDetails($session_uid);
?>
Welcome name; ?>

Logout

đăng xuất. php
Mã này sẽ xóa các giá trị phiên bản của người dùng

window.location='$url'";
}
?>

Bài viết này đã giúp ích cho bạn chưa?

Bài viết mới