Làm cách nào để tạo phiên đăng nhập và đăng xuất trong PHP?
Tôi biết với tư cách là người mới bắt đầu sử dụng PHP, Phiên và Cookie là một trong những chủ đề khó hiểu. Bởi vì cả hai đều lưu trữ dữ liệu người dùng. Nhưng sự khác biệt ở cả hai là dữ liệu người dùng được lưu trữ phiên trong máy chủ trong khi cookie lưu trữ dữ liệu người dùng trong trình duyệt người dùng. Dữ liệu phiên chỉ khả dụng cho phiên hiện tại trong khi cookie có thể được lưu trữ trong một khoảng thời gian dài hơn Show
Trong hướng dẫn này, tôi sẽ không đề cập đến cookie nhưng tôi sẽ đề cập đến Phiên PHP bằng cách sử dụng ví dụ đăng nhập và đăng xuất. Chúng ta hãy xem những gì phiên làm
Phiên trong ví dụ PHP để đăng nhập và đăng xuấtTôi sẽ tạo một biểu mẫu Đăng nhập HTML với các trường email và mật khẩu. Khi người dùng gửi biểu mẫu, trước tiên tôi sẽ kiểm tra xem cả hai trường phải có giá trị hay không, sau đó tôi sẽ kiểm tra email của người dùng có tồn tại hay không. nếu email sẽ tồn tại thì tôi sẽ xác nhận mật khẩu người dùng. Mật khẩu sẽ được kiểm tra bằng chức năng Tạo nên cơ sở dữ liệu1 2 3
Tạo cơ sở dữ liệu bản trình diễn;
Tạo bảng cơ sở dữ liệu1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
TẠO BẢNG `người dùng` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `first_name` VARCHAR(255) NULL DEFAULT NULL, `last_name` VARCHAR(255) NULL DEFAULT NULL, `email` VARCHAR(255) NULL DEFAULT NULL, `điện thoại` VARCHAR(255) NOT NULL, `mật khẩu` VARCHAR(255) NULL DEFAULT NULL, `đã tạo` NGÀY KHÔNG NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, CHÍNH CHÍNH KEY (`id`) ) THUỘC TÍNH = 'latin1_swedish_ci' ĐỘNG CƠ = InnoDB AUTO_INCREMENT = 7 ;
Tạo tệp cấu hình cơ sở dữ liệu. (cấu hình. php)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
$host = 'localhost'; $DBUser = "root"; $DBPassword = ''; $db = 'demo'; $conn = mysqli_connect($host,$DBUser, $DBPassword, $db); nếu(. $conn) { die(mysqli_error()); } ?>
Đây là hướng dẫn dành cho người mới bắt đầu nên tôi đang sử dụng chức năng Biểu mẫu đăng nhập HTML. (mục lục. php)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
<div class = "vùng chứa"> <h1>PHP Đăng nhập and Logout with Session</h1> <hình thức hành động = " echo $_SERVER['PHP_SELF']?>" method="post"> <div class = "field-container"> <nhãn>Email</label> <đầu vào loại = "email" name="email" required placeholder="Enter Your Email"> < / div> <div class = "field-container"> <nhãn>Mật khẩu</label> <đầu vào loại = "mật khẩu" name="password" required placeholder="Enter Your Password"> < / div> <div class = "field-container"> <nút loại = "gửi" name="submit">Submit</button> < / div> < / biểu mẫu> < / div>
Như bạn có thể thấy trong mã html ở trên. Chỉ có một vùng chứa div dưới đó mã biểu mẫu được viết. Hành động biểu mẫu có Phong cách. css1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
cơ thể{ phông chữ - gia đình. xanh tươi; nền - màu. #aaaae3; }
.vùng chứa{ chiều rộng. 40%; lề. 10% tự động; đường viền. 1px rắn #eeeeee; nền. #ffffff; }
.vùng chứa - trang tổng quan{ chiều rộng. 90%; đường viền. 1px rắn #eeeeee; nền. #ffffff; phần đệm. 10px; }
.trường - vùng chứa{ lề. 10px tự động; chiều rộng. 400px; } h1{ văn bản - căn chỉnh. trung tâm; đường - chiều cao. 30px; phông chữ - kích thước. 24px; màu. #061e5a; }
nhãn{ hiển thị. chặn; phần đệm - đáy. 5px; màu. #F05519; phông chữ - trọng lượng. 500; }
đầu vào[loại = email],input[type=password]{ đường viền. 1px rắn #eeeeee; chiều rộng. 100%; chiều cao. 30px; phần đệm - trái. 4px; }
nút{ nền. #061e5a; đường viền. 1px rắn #061e5a; màu. #ffffff; lề. 10px 0px; phần đệm. 5px; }
nút. di chuột{ nền. #F05519; đường viền. 1px rắn #F05519; }
.lỗi - tin nhắn{ đường viền. 1px rắn #ee0000; nền. #ee0000; màu. #ffffff; phần đệm. 2px; phông chữ - kích thước. 13px; }
.thành công - tin nhắn{ đường viền. 1px rắn #0ebc6f; nền. #0ebc6f; màu. #ffffff; phông chữ - kích thước. 13px; phần đệm. 2px; }
.người dùng - tên{ màu. #ee0000; }
.đăng xuất - liên kết{ lề - top. 10px; hiển thị. chặn; nền. #061e5a; đường viền. 1px rắn #061e5a; màu. #ffffff; chiều rộng. 48px; phần đệm. 5px; văn bản - trang trí. không có; phông chữ - kích thước. 13px; }
Sau khi gửi biểu mẫu Gửi mã PHP. (mục lục. php)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
yêu cầu('config. php'); session_start(); if(isset($_POST['submit'])) { if((isset($_POST['email']) && $_POST['email'] !='') && (isset($_POST['password']) && $_POST['password'] !='')) { $email = trim($_POST['email']); $password = trim($_POST['password']); $sqlEmail = "chọn * từ những người dùng có email = '". $email. "'"; $rs = mysqli_query($conn,$sqlEmail); $numRows = mysqli_num_rows($rs); if($numRows == 1) { $row = mysqli_fetch_assoc($rs$rs$rs$rs$rs$rs$rs$rs$rs$rs$rs$rs$rs$rs$rs$rs$rs$rs$rs$rs$rs$rs); if(password_verify($password,$row['password'])) { $_SESSION['user_id'] =< $row['id']; $_SESSION['first_name'] =< $row['first_name']; $_SESSION['last_name'] =< $row['last_name']; tiêu đề('vị trí. bảng điều khiển. php'); thoát; } khác { $errorMsg = "Email hoặc mật khẩu sai"; } } khác { $errorMsg = "Không tìm thấy người dùng"; } } } ?>
Tôi đã đề cập rằng biểu mẫu đăng nhập sẽ được đăng trên cùng một trang nên tôi đã viết mã gửi biểu mẫu ở đầu tệp
Sau đó, tôi đã sử dụng Hàm Nếu mật khẩu do người dùng gửi và mật khẩu cơ sở dữ liệu khớp nhau thì tôi đã lưu id người dùng trong biến Biến Cũng đọc. Biểu mẫu liên hệ PHP với xác thực jQuery và mã gửi email Sau khi đăng nhập thành công. (Bảng điều khiển. php)1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
session_start(); nếu(. isset($_SESSION)) { tiêu đề('vị trí. mục lục. php'); thoát; } ?>
<. DOCTYPE html> <html> <đầu> <tiêu đề>Trang tổng quan . PHP Đăng nhập và đăng xuất ví dụwith session</title> <liên kết rel = "biểu định kiểu" href="style.css"> < / đầu>
<nội dung> <div class = "container-dashboard"> Chào mừng đến với trang tổng quan. <span lớp = "> echo ucwords($_SESSION['first_name'])?> echo ucwords($_SESSION['last_name']);?> </span> <br> <a href = "đăng xuất. php?logout=true" lớp = "liên kết đăng xuất">Logout</a> < / div> < / body> < / html>
Ở phần Sau đó, có một đoạn html nhỏ trong đó có văn bản chào mừng với tên người dùng. Và trong dòng tiếp theo có một nút đăng xuất đi tới Hủy phiên. (đăng xuất. php)1 2 3 4 5 6 7 8 9 10 11
if(isset($_GET['logout'])) { session_destroy(); tiêu đề('vị trí. mục lục. php?logout=true'); thoát; } ?>
Trong tệp Thông báo lỗi. (mục lục. php)1 2 3 4 5 6 7 8 9 10 11
if(isset($errorMsg)) { echo "; echo $errorMsg; echo ""; bỏ đặt($errorMsg); } ?>
Thông báo đăng xuất thành công. (mục lục. php)1 2 3 4 5 6 7 8 9 10 11
if(isset($_GET['logout'])) { echo "; echo "Bạn đã đăng xuất thành công"; echo ""; } ?>
Ngay bây giờ có một người dùng trong mã tải xuống. Email id đăng nhập là johndoe@example. com và mật khẩu là john123. Nếu bạn sẽ gặp phải bất kỳ vấn đề nào, vui lòng bình luận bên dưới bài đăng Làm cách nào để tạo chức năng đăng xuất trong php?php session_start(); . đăng nhập. php"); exit; ?> Đến đây, chúng ta đã thêm thành công chức năng đăng xuất cho website.
Làm cách nào để sử dụng phiên trong php để đăng nhập người dùng?phiên lớp php { private $logged_in=false;
Làm cách nào để tạo phiên trong php?Bạn có thể bắt đầu một phiên trong PHP bằng cách sử dụng hàm session_start() . Theo mặc định, chức năng này sẽ kiểm tra phiên hiện có trước tiên. Nếu một phiên đã tồn tại, nó sẽ không làm gì cả, nhưng nó sẽ tạo một phiên nếu không có phiên nào tồn tại trước đó.
Làm cách nào để duy trì phiên đăng nhập trong php?$name = mysqli_real_escape_string( $connect , $_POST [ "user_name" ]); |