Xu Hướng 2/2023 # Tạo Trang Đăng Nhập Đăng Ký Đơn Giản Bằng Php Mysql # Top 4 View | Rafs.edu.vn

Xu Hướng 2/2023 # Tạo Trang Đăng Nhập Đăng Ký Đơn Giản Bằng Php Mysql # Top 4 View

Bạn đang xem bài viết Tạo Trang Đăng Nhập Đăng Ký Đơn Giản Bằng Php Mysql được cập nhật mới nhất trên website Rafs.edu.vn. Hy vọng những thông tin mà chúng tôi đã chia sẻ là hữu ích với bạn. Nếu nội dung hay, ý nghĩa bạn hãy chia sẻ với bạn bè của mình và luôn theo dõi, ủng hộ chúng tôi để cập nhật những thông tin mới nhất.

Bài viết này tôi sẽ hướng dẫn chi tiết cách để tạo một trang đăng nhập, đăng ký đơn giản bằng php và mysql. Chức năng đơn giản đó là đăng nhập, đăng ký và đăng xuất.

Các bước làm

Tạo một bảng cơ sở dữ liệu

Tạo trang đăng ký

Tạo trang đăng nhập

Kết nối với cơ sở dữ liệu

Xác thực người dùng đã đăng nhập

Tạo trang chủ

Tạo trang bảng điều khiển

Tạo trang đăng xuất

Tạo style cho trang

1) Tạo một bảng cơ sở dữ liệu

CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, `email` varchar(50) NOT NULL, `password` varchar(50) NOT NULL, `trn_date` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;

2) Tạo trang đăng ký

Tạo một file có tên là registration.phpvà dán đoạn code sau vào.

<?php <?php require('db.php'); if (isset($_REQUEST['username'])){ $username = stripslashes($_REQUEST['username']); $username = mysqli_real_escape_string($con,$username); $email = stripslashes($_REQUEST['email']); $email = mysqli_real_escape_string($con,$email); $password = stripslashes($_REQUEST['password']); $password = mysqli_real_escape_string($con,$password); $trn_date = date("Y-m-d H:i:s"); $query = "INSERT into `users` (username, password, email, trn_date) VALUES ('$username', '".md5($password)."', '$email', '$trn_date')"; $result = mysqli_query($con,$query); if($result){ } }else{

3) Tạo trang đăng nhập

Tương tự, tạo một file login.phpvà dán code dưới vào.

<?php <?php require('db.php'); session_start(); if (isset($_POST['username'])){ $username = stripslashes($_REQUEST['username']); $username = mysqli_real_escape_string($con,$username); $password = stripslashes($_REQUEST['password']); $password = mysqli_real_escape_string($con,$password); $query = "SELECT * FROM `users` WHERE username='$username' and password='".md5($password)."'"; $result = mysqli_query($con,$query) or die(mysql_error()); $rows = mysqli_num_rows($result); if($rows==1){ $_SESSION['username'] = $username; header("Location: index.php"); }else{ } }else{ Mật khẩu: sharescript.net

4) Kết nối với cơ sở dữ liệu

Tạo file db.phpvà dán code vào.

<?php $con = mysqli_connect("localhost","database_username","password","database_name"); if (mysqli_connect_errno()) { echo "Không thể kết nối đến MySQL: " . mysqli_connect_error(); }

Chú ý: Trong đoạn code mysqli_connect("localhost","database_username","password","database_name")chỉnh sửa thành thông tin database của bạn

5) Xác thực người dùng đã đăng nhập

Dán đoạn code sau vào file auth.php

<?php session_start(); if(!isset($_SESSION["username"])){ header("Location: login.php"); exit(); }

6) Tạo trang chủ

Trang chủ này chính là file index.php, sau khi đăng nhập thành công sẽ chuyển hướng đến file này.

<?php

7) Tạo trang bảng điều khiển

Trang này tương tự như index.phpnhưng là một trang khác. Bạn có thể bỏ qua trang này.

<?php require('db.php');

8) Tạo trang đăng xuất

Trang đăng xuất tôi sẽ đặt tên là logout.php, khi người dùng vào trang này sẽ tự động destroy session.

<?php session_start(); if(session_destroy()) { header("Location: login.php"); }

9) Tạo style cho trang

Cuối cùng là làm đẹp cho trang thôi!

body {font-family:Arial, Sans-Serif;} .clearfix:before, .clearfix:after { content: ""; display: table; } .clearfix:after { clear: both; } a {color:#0067ab; text-decoration:none;} a:hover {text-decoration:underline;} .form{width: 300px; margin: 0 auto;} input[type='text'], input[type='email'], input[type='password'] {width: 200px; border-radius: 2px;border: 1px solid #CCC; padding: 10px; color: #333; font-size: 14px; margin-top: 10px;} input[type='submit']{padding: 10px 25px 8px; color: #fff; background-color: #0067ab; text-shadow: rgba(0,0,0,0.24) 0 1px 0; font-size: 16px; box-shadow: rgba(255,255,255,0.24) 0 2px 0 0 inset,#fff 0 1px 0 0; border: 1px solid #0164a5; border-radius: 2px; margin-top: 10px; cursor:pointer;} input[type='submit']:hover {background-color: #024978;}

Tạo Form Đăng Ký Trong Php

Đối với các bạn mới bắt đầu học lập trình PHP các bạn nên gõ theo từng đoạn code để nhớ bài và hiểu vấn đề hơn, đừng copy nguyên đoạn code như vậy sẽ không nắm được lâu kiến thức.Chuẩn bị :

Để bắt đầu thực hành bài này, các bạn hãy chuẩn bị cho mình những điều cần thiết sau : – Đã khởi chạy (start) môi trường để lập trình PHP (coi lại bài Hướng dẫn cài đặt môi trường lập trình PHP) – Chuẩn bị công cụ editor phù hợp để có thể code (các bạn có thể tham khảo bài Giới thiệu về các editor cho nhà phát triển web)

– Trong thư mục gốc của website (ở đây mình dùng wamp nên thư mục gốc sẽ là www, còn đối với các bạn dùng xampp, thì thư mục gốc sẽ là htdocs), các bạn tạo 1 folder đặt tên là my_website để chưa tất cả source code mà mình sẽ hướng dẫn các bạn từng bước làm 1 website hoàn chỉnh bằng ngôn ngữ lập trình PHP từ đây trở về sau.

Trong thư mục my_website , các bạn tạo cho mình cấu trúc thư mục như sau :

Đầu tiên mình sẽ thiết kế một form đăng ký, đặt tên là chúng tôi (đặt trong thư mục my_website) bao gồm các trường : – trường để người dùng nhập nickname – trường để người dùng nhập mật khẩu – trường để người dùng nhập họ tên – trường để người dùng nhập địa chỉ email

Chạy đoạn code trên (vào browser gõ đường dẫn http:// localhost/my_website/register.php) ta được form đăng ký đơn giản như sau

Tiếp đến, ta sẽ thiết kế cơ sở dữ liệu và tạo bảng lưu trữ thông tin người dùng, ở đây mình lấy tên cho database là “kungfuphp” và bảng là “users”. Trong bảng uses sẽ bao gồm các cột

id : kiểu int, khóa chính, thuộc tính tự tăng (auto increment)

username : tên đăng nhập, kiểu var char, độ dài là 30 kí tự

password : mật khẩu, kiểu var char, độ dài 30 kí tự

name : tên người dùng, kiểu var char, độ dài 255 kí tự

email : địa chỉ email, kiểu var char, đồ dài 255 kí tự

CREATE DATABASE IF NOT EXISTS `kungfuphp` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; USE `kungfuphp`; CREATE TABLE IF NOT EXISTS `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(30) NOT NULL, `password` varchar(30) NOT NULL, `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;

3. Bắt đầu code

<?php $server_username = "root"; $server_password = ""; $server_host = "localhost"; $database = 'kungfuphp'; $conn = mysqli_connect($server_host,$server_username,$server_password,$database) or die("không thể kết nối tới database"); mysqli_query($conn,"SET NAMES 'UTF8'");

Ở đoạn code trên, chúng ta dùng phương thức mysqli_connect của PHP để PHP có thể kết nối tới dữ liệu mysql với 3 tham số:

$server_host :tên host chưa database, ở đây mình dùng là localhost vì chạy ở máy tính cục bộ, còn khi upload website lên các host khác thì chúng ta có thể thay đổi tham số này cho phù hợp.

$server_username : tên đăng nhập vào database, mặc định ở local là root

$server_password ; mật khẩu đăng nhập vào database, mặc định ở local là rỗng

phương thức or die nhằm kiểm tra nếu kết nối thất bại sẽ xuất ra dòng chữ “không thể kết nối tới database”

phương thức mysqli_query($conn,”SET NAMES ‘UTF8′”) bạn có thể thêm vào hoặc không đều được, đây là phương thức tùy chọn, dành cho trong trường hợp cơ sở dữ liệu của bạn có các kí tự đặc biệt dạng utf-8 thì khi truy vấn hoặc cập nhật dữ liệu sẽ không bị lỗi font chữ

Tiếp đến trong file chúng tôi bạn cần phải require file chúng tôi vừa tạo vào bằng cách dùng từ khóa require_once (hoặc include, include_once, require)

require_once("lib/connection.php");

Sau khi đã require_once tập tin chúng tôi vào, chúng ta đến giai đoạn kiểm tra thông tin đăng ký hợp lệ và lưu dữ liệu vào database, ở đây mình sẽ lấy các thông tin ở form đăng ký đã tạo ở trên bằng phương thức POST, các bạn lưu ý là :

Ngoài phương thức POST, chúng ta còn có thể sử dụng phương thức GET và sử dụng từ khóa $_GET để lấy dữ liệu

Sự khác nhau giữa POST và GET thì mình sẽ nói rõ hơn trong các bài sau 🙂

<?php if (isset($_POST["btn_submit"])) { $username = $_POST["username"]; $password = $_POST["pass"]; $name = $_POST["name"]; $email = $_POST["email"]; echo "bạn vui lòng nhập đầy đủ thông tin"; }else{ } }

<?php if (isset($_POST["btn_submit"])) { $username = $_POST["username"]; $password = $_POST["pass"]; $name = $_POST["name"]; $email = $_POST["email"]; echo "bạn vui lòng nhập đầy đủ thông tin"; }else{ $sql = "INSERT INTO users( username, password, name, email ) VALUES ( '$username', '$password', '$name', '$email' )"; mysqli_query($conn,$sql); echo "chúc mừng bạn đã đăng ký thành công"; } }

Toàn bộ code đầy đủ trong file chúng tôi sẽ như sau :

<?php require_once("lib/connection.php"); if (isset($_POST["btn_submit"])) { $username = $_POST["username"]; $password = $_POST["pass"]; $name = $_POST["name"]; $email = $_POST["email"]; echo "bạn vui lòng nhập đầy đủ thông tin"; }else{ $sql="select * from users where username='$username'"; $kt=mysqli_query($conn, $sql);

echo "Tài khoản đã tồn tại"; }else{ $sql = "INSERT INTO users( username, password, name, email ) VALUES ( '$username', '$password', '$name', '$email' )"; mysqli_query($conn,$sql); echo "chúc mừng bạn đã đăng ký thành công"; }

} }

Cách Tải Weibo? Đăng Ký, Đăng Nhập Weibo Thế Nào?

Hệ điều hành IOS

Hệ điều hành Android

Cách 1. Đăng ký tài khoản Weibo trên Web

– Sau đó ấn vào phần “注册”giao diện sẽ hiện ra phần điền thông tin ở bước 2.

– Các bạn sẽ điền đầy đủ thông tin vào phần yêu cầu để đăng ký tài khoản sử dụng Weibo. Weibo sẽ để mặc định cho người dùng đăng ký tài khoản bằng Email , để đổi sang đăng ký bằng số điện thoại , bạn nhấn vào Use Mobile Phone/ 或使用邮箱注册.

– Đối với nhập số điện thoại, bạn tìm tới chữ 越南 Việt Nam, thứ 2 từ dưới lên. Hoặc ngồi dò danh sách các quốc gia sao cho hiện ra số 0084. Sau đó nhập số điện thoại cá nhân 10 số vào. Khi nhập số điện thoại đăng ký bỏ số 0 ở đằng trước. Lúc đăng nhập tài khoản Weibo phải điền 008498595xx.

– Tiếp theo đến dòng nhập mật khẩu phải có từ 6-16 kí tự, bạn có thể dùng số, chữ cái, kí hiệu, phân biệt cả chữ hoa và chữ thường tùy ý bạn, nhưng nhớ đặt mật khẩu nào bạn quen thuộc, đừng đặt dài quá khéo quên, lấy lại rắc rối.

– Dòng mã xác minh khi nhấn dòng nhận mã thì mã sẽ được gửi tới số điện thoại của bạn. Từ lúc nhấn nút nhận mã sẽ có 60 giây đề điền mã. Quá 60 giây bạn sẽ phải nhận mã khác.

– Sau khi điền xong các thông tin cơ bản nhấn nút màu cam để tiến hành đăng ký thông tin tài khoản Weibo.

– Bước này bạn tích chọn vào các ô theo sở thích của bạn. Có thể chọn ngẫu nhiên cũng được, rồi nhấn nút màu cam bên dưới là xong.

– Như vậy bạn đã đăng ký tài khoản Weibo bằng số điện thoại cá nhân của mình rồi đó.

Với mail thì bạn cũng điền đầy đủ thông tin và làm tương tự.

Cách 2. Đăng ký tài khoản Weibo qua điện thoại

– Sau khi đã tải, bạn mở ứng dụng Weibotừ màn hình làm việc của điện thoại lên.

Bước 2:

– Nhấn Login để chuyển sang màn hình Đăng nhập/Đăng ký tài khoản.

Hiện Weibo mới có thêm ngôn ngữ Trung Quốc và Anh, chưa hỗ trợ Tiếng Việt nên sẽ hơi khó khăn cho ai sử dụng mà không biết tiếng Trung. Mẹo nhỏ là các bạn có thể sử dụng Weibo trên trình duyệt Chorme, có chức năng dịch, sẽ dễ sử dụng hơn đó nha.

Những cách trên dành cho các bạn mới Tài khoản Weibo lần đầu bằng số điện thoại Việt Nam.

Còn với trường hợp trước đây bạn đã tạo tài khoản Weibo nhưng không qua số điện thoại thì chúng ta có thể xác minh tài khoản đó bằng số điện thoại cá nhân của mình.

III. Đăng nhập và xác nhận tài khoản Weibo có sẵn với số điện thoại Việt Nam

Bước 3:

– Lúc này, bạn nhập số điện thoại cá nhân để xác minh tài khoản Weibo. Chọn địa chỉ mã vùng Việt Nam rồi nhập số điện thoại. Sau đó nhấn nút màu cam để nhận mã xác minh.

– Cuối cùng người dùng cũng nhấn vào ô màu cam bên dưới để xác minh tài khoản Weibo thông qua số điện thoại.

Xây Dựng Trang Đăng Nhập Trong

Trong bài viết này mình sẽ hướng dẫn các bạn làm trang đăng nhập cho website hoặc ứng dụng. Đây là vấn đề mà mình thấy nhiều bạn còn gặp khó khắn và hỏi trên các diễn đàn.

Khi đăng nhập bạn cần Form đăng nhập bao gồm TenDangNhap và Mật khẩu. Khi người dùng nhập các thông tin đúng và đăng nhập bạn cần kiểm tra các thông tin này, nếu hợp lệ sẽ cho phép chuyển trang tiếp theo bằng việc khai báo và sử dụng các biến Session. Để thực hiện được trước tiên bạn cần tạo Table trong database có chứa các thông tin cần đăng nhập như sau:

Trong bài viết này mình cần quan tâm tới các trường TenDangNhap – Tên đăng nhập, MatKhau – Mật khẩu đã được mã hóa, TrangThai – Trạng thái của TenDangNhap mình phân tích sẽ có 3 trạng thái đó là: 1-Bình thường, 2 – Trạng thái khóa, 0 – Yêu cầu đổi mật khẩu. Còn các trường khác như MaPhongBan, MaQuyen, … mình sẽ nói ý nghĩa và sử dụng của các trường này ở bài sau về vấn đề phân quyền ứng dụng. Ta sẽ cần viết các thủ tục trong SQL như sau:

/*Create by: hungbv@hmweb.com.vn Muc đích: Kiểm tra thông tin đăng nhập có hợp lệ không Đầu vào: TenDangNhap MatKhau Đầu ra: */ CREATE PROCEDURE [dbo].[spTB_DangNhap_KiemTraDangNhap] @TenDangNhap nvarchar(50), @MatKhau nvarchar(150) AS BEGIN DECLARE @OutPut int DECLARE @KiemTraTenDangNhap int DECLARE @KiemTraMatKhau int DECLARE @TrangThai int SELECT @KiemTraTenDangNhap=isnull(Count(tdn.TenDangNhap),0) FROM TB_DangNhap tdn WHERE tdn.TenDangNhap=@TenDangNhap SELECT @TrangThai =isnull(tdn.TrangThai ,0) FROM TB_DangNhap tdn WHERE tdn.TenDangNhap=@TenDangNhap IF @KiemTraTenDangNhap=0 SET @OutPut=1 -- Sai TenDangNhap ELSE BEGIN SELECT @KiemTraMatKhau =isnull(count(*),0) FROM TB_DangNhap tdn WHERE tdn.TenDangNhap=@TenDangNhap AND tdn.MatKhau=@MatKhau IF @KiemTraMatKhau=0 SET @OutPut=2 -- Sai mật khẩu ELSE BEGIN IF @TrangThai=0 SET @OutPut=4 -- Phải đổi mật khẩu ELSE BEGIN IF @TrangThai=2 -- TenDangNhap đang bị khóa SET @OutPut=3 ELSE SET @OutPut=0 END END END SELECT @OutPut AS KetQua END

Trong Store trên bạn thấy ứng với các thông tin đăng nhập bạn nhập vào đúng hay sai thì Store đều trả về cho bạn giá trị tương ứng.

Tiếp theo ta sẽ xây dựng Form đăng nhập bao gồm các textbox và button trong trang aspx như sau:

Trong Form ta sẽ cần các Textbox txtUserName, txtPassword và các RequiredFieldValidator yêu cầu các trường này không được trống

<asp:TextBox runat="server" CssClass="login_TextForm" <asp:RequiredFieldValidator runat="server" ControlToValidate="txtUserName" Display="Dynamic" <asp:TextBox runat="server" CssClass="login_TextForm" TextMode="Password" <asp:RequiredFieldValidator runat="server" ControlToValidate="txtPassword" Display="Dynamic" <asp:Button runat="server" CssClass="textbox" Text="Đăng nhập" Font-Bold="False"

Form mà mình xây dựng có hình ảnh như minh họa sau:

Tiếp theo chúng ta cần viết các hàm trong trang chúng tôi như sau:

Trong Database của bạn khi lưu thông tin đăng nhập bạn cũng cần lưu mật khẩu dưới dạng mã hóa như của hàm này. Ở đây mình sử dụng kiểu mã hóa SHA1 của lớp System.Security.Cryptography hàm được viết như sau: (Bạn cần khai báo using … các lớp cần sử dụng tương ứng)

public string MaHoaMatKhau(string password) { UnicodeEncoding encoding = new UnicodeEncoding(); Byte[] hashBytes = encoding.GetBytes(password); SHA1CryptoServiceProvider sha1 = new SHA1CryptoServiceProvider(); Byte[] cryptPassword = sha1.ComputeHash(hashBytes); return BitConverter.ToString(cryptPassword); }

Tiếp theo chúng ta cần viết các hàm để thực thi Store đã viết ở trên (Nếu các bạn dùng VS2008 thì có thể dùng Linq để thực hiện dễ dàng hơn. Vì ở đây trong bài viết mình không đưa Database lên nên mình chỉ minh họa bằng các hàm như sau)

private static DataSet ThucThiStore_DataSet( string StoredProcedure, params SqlParameter[] Parameters) { string ConnectionString = @"Server =.SQL2005;Initial Catalog=DatabaseName;User ID=sa;Password=***"; SqlConnection Conn = new SqlConnection(ConnectionString); SqlCommand Command = new SqlCommand(StoredProcedure, Conn); if (Parameters != null) { Command.Parameters.Clear(); Command.Parameters.AddRange(Parameters); } DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(StoredProcedure, Conn); Command.CommandType = CommandType.StoredProcedure; da.SelectCommand = Command; try { Conn.Open(); da.Fill(ds); } finally { if (Conn.State == ConnectionState.Open) Conn.Close(); Conn.Dispose(); } return ds; } private DataTable StoreToDataTable( string TenDangNhap, string MatKhau) { SqlParameter[] arrParam = { new SqlParameter("@TenDangNhap", SqlDbType.NVarChar), new SqlParameter("@MatKhau", SqlDbType.NVarChar) }; arrParam[0].Value = TenDangNhap; arrParam[1].Value = MatKhau; return ThucThiStore_DataSet("spTB_DangNhap_KiemTraDangNhap", arrParam).Tables[0]; } protected void Page_Load(object sender, EventArgs e) { { Response.Redirect("Default.aspx"); } } { KiemTraNhap(txtUserName.Text + "", MaHoaMatKhau(txtPassword.Text).Trim()); } private void KiemTraNhap(string TenDangNhap, string MatKhau) { DataTable dtb = StoreToDataTable(TenDangNhap, MatKhau); int num = 0; { num = int.Parse("0" + dtb.Rows[0][0]); switch (num) { case 0: Session["TenDangNhap"] = txtUserName.Text.ToString().ToLower(); Session["MatKhau"] = MaHoaMatKhau(txtPassword.Text); Response.Redirect("Default.aspx"); break; case 1: ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "alert('Lỗi: Tên đăng nhập không tồn tại');", true); break; case 2: ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "alert('Lỗi; Mật khẩu đăng nhập không đúng!');", true); break; case 3: ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "alert('Lỗi: Tên đăng nhập này đã bị khóa!');", true); break; case 4: ScriptManager.RegisterStartupScript(this, this.GetType(), "redirectMe", "alert('Bạn phải đổi mật khẩu trước khi đăng nhập!');location.href='DoiMatKhau.aspx?userid=" + TenDangNhap + "'", true); break; } } dtb.Dispose(); }

Cập nhật thông tin chi tiết về Tạo Trang Đăng Nhập Đăng Ký Đơn Giản Bằng Php Mysql trên website Rafs.edu.vn. Hy vọng nội dung bài viết sẽ đáp ứng được nhu cầu của bạn, chúng tôi sẽ thường xuyên cập nhật mới nội dung để bạn nhận được thông tin nhanh chóng và chính xác nhất. Chúc bạn một ngày tốt lành!