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 khác nhau. PDO là một phần mở rộng của PHP cho phép chúng ta thực hiện mã được di chuyển qua nhiều cơ sở dữ liệu và nền tảng.
Bạn đang xem: Code đăng ký đăng nhập php
BảngUsersBảng users 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 PDO extension cho PHP, tìm tệp tin này trong tệp cấu hình php.ini.config.phpTậ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à các chi tiết cơ sở dữ liệu. Nếu bạn đang sử dụng cơ sở dữ liệu khác thay đổi giá trị kết nối 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();}}?>
PostgreSQL PDO connectionBật PDO_PGSQL extension và sử dụngpgsql:host=$dbhost;port=5432;dbname=$dbname;$dbuser, $dbpassMã HTML đăng nhậpNội dung mã HTML đơn giản.
Xem thêm: Timetostr Php Strtotime Reverse, Converting To A String: Date()


#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}
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 valuereturn 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($countprepare("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 datareturn $data;}catch(PDOException $e) {echo "{"error":{"text":". $e->getMessage() ."}}";}}}?>
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("~^
#$%^&*()_>{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...
Note: Bạn phải thêm vào cách kiểm trang thông tin người dùng nhập bằngJavaScript để có trải nghiệm người dùng tốt hơn.session.phpFile này sẽ xác nhận và lưu trữ giá trị phiên của người dùng (user session).
home.phpTrang chào mừng của người dùng, hiển thị chi tiết người dùng dựa trên giá trị phiên của người dùng.