Đề Xuất 12/2022 # Bài 46: Xây Dựng Chức Năng Đăng Ký Thành Viên Với Php Và Mysql / 2023 # Top 15 Like | Jetstartakeontheworld.com

Đề Xuất 12/2022 # Bài 46: Xây Dựng Chức Năng Đăng Ký Thành Viên Với Php Và Mysql / 2023 # Top 15 Like

Cập nhật nội dung chi tiết về Bài 46: Xây Dựng Chức Năng Đăng Ký Thành Viên Với Php Và Mysql / 2023 mới nhất trên website Jetstartakeontheworld.com. Hy vọng thông tin trong bài viết sẽ đáp ứng được nhu cầu ngoài mong đợi của bạn, chúng tôi sẽ làm việc thường xuyên để cập nhật nội dung mới nhằm giúp bạn nhận được thông tin nhanh chóng và chính xác nhất.

Bài này chúng ta sẽ thực hành xây dựng chức năng đăng ký thành viên với PHP và MySQL, đây là một chức năng đơn giản và rất hay được sử dụng trong PHP. Để xem được bài này đòi hỏi bạn phải nghiên cứu qua hai phương thức POST và GET, các thẻ input thông dụng như text, textarea, …

Để làm được chức năng đăng nhập thì bạn phải thực hiện các bước như sau:

Nội dung chính

1. Xây dựng database bảng thành viên

2. Xây dựng form đăng ký thành viên

3. Xử lý thao tác đăng ký thành viên

4. Lời kết

1

2

3

4

5

6

7

8

9

CREATE TABLE IF NOT EXISTS `member` (

  `id` int(11) NOT NULL AUTO_INCREMENT,

  `username` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,

  `password` varchar(50) COLLATE utf8_unicode_ci DEFAULT NULL,

  `email` varchar(200) COLLATE utf8_unicode_ci DEFAULT NULL,

  `phone` varchar(15) COLLATE utf8_unicode_ci DEFAULT NULL,

  `level` tinyint(4) DEFAULT NULL COMMENT '1: admin, 0: member',

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

Tiếp theo ta sẽ Insert một user với tên là admin để làm người quản trị:

1

2

3

INSERT INTO `member` (

    `username`, `password`, `email`, `phone`, `level`

) VALUES ('admin', MD5('tinhoccuaem.com'), 'minhtham2006@gmail.com', '0988888888', '1')

Admin là thành viên quản trị của hệ thống website có và có level = 1. Nghĩa là:

Và mật khẩu của admin là MD5('tinhoccuaem.com'), nghĩa là trong hệ thống để bảo đảm an toàn thì ta sẽ dùng hàm MD5 để băm mật khẩu lưu vào trong cơ sở dữ liệu. Như vậy khi check Login thì phải dùng hàm MD5 trong PHP để mã hóa trước khi đưa vào so sánh.

Bạn tạo một file tên register.php với nội dung như sau:

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

Action của form mình trỏ đến file xuly.php nên khi submit form hệ thống sẽ gửi thông tin đến file này. Giao diện như sau:

Form đăng ký thành viên

Trước khi xử lý thao tác thêm thành viên thì ta có một số lưu ý như sau:

Trong hệ thống CSDL thì field idcó thuộc tính auto increment (tự động tăng) nên ta không cần truyền giá trị vào lúc thêm

Thuộc tính Username và Email phải là duy nhất nên trước khi thêm phải kiểm tra bị trùng hay không

Bây giờ bạn tạo file xuly.php với nội dung như sau:

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

45

46

47

48

49

50

header('Content-Type: text/html; charset=utf-8');

if (isset($_POST['do-register']))

{

    

    

    

    $username   = isset($_POST['username']) ? mysql_escape_string($_POST['username']) : '';

    $password   = isset($_POST['password']) ? md5($_POST['password']) : '';

    $email      = isset($_POST['email'])    ? mysql_escape_string($_POST['email']) : '';

    $phone      = isset($_POST['phone'])    ? mysql_escape_string($_POST['phone']) : '';

    $level      = isset($_POST['level'])    ? (int)$_POST['level'] : '';

     

    

     

    

    $conn = mysqli_connect('localhost', 'root', 'vertrigo', 'demo') or die ('Lỗi kết nối');

    mysqli_set_charset($conn, "utf8");

     

    

    $sql = "SELECT * FROM member WHERE username = '$username' OR email = '$email'";

     

    

    $result = mysqli_query($conn, $sql);

     

    

    {

        

         

        

        die ();

    }

    else {

        

        $sql = "INSERT INTO member (username, password, email, phone, level) VALUES ('$username','$password','$email','$phone', '$level')";

         

        if (mysqli_query($conn, $sql)){

        }

        else {

        }

    }

}

Trong file này bạn chú ý mình sử dụng alert được echo từ php để xuất ra thông báo là thành công hay thất bại. Bây giờ bạn chạy thử và kết quả sẽ:

Thông báo thành công nếu thao tác thành công

Thông báo username hoặc email đã tồn tại nếu bạn đăng ký trùng thông tin có sẵn trong CSDL

Thông báo thất bại nếu thao tác lỗi

Tạo Trang Đăng Nhập Đăng Ký Đơn Giản Bằng Php Mysql / 2023

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;}

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

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ách Tổ Chức Chiến Dịch Xây Dựng Liên Kết Lý Tưởng Cho Website / 2023

Chiến dịch là quá trình chủ động cố gắng gia tăng liên kết đến trang web, thường đi kèm với một số mục tiêu tổng thể. Nó sẽ sử dụng những tài sản của doanh nghiệp như: Nội dung, thông tin về sản phẩm dịch vụ để có được liên kết.

Các nguồn Xây dựng liên kết

Cấu trúc về một chiến dịch xây dựng liên kết

Có nhiều thành phần của một chiến dịch xây dựng liên kết, một số điểm rất quan trọng để thành công và những cái khác sẽ hữu ích, phần lớn sẽ phụ thuộc vào tài nguyên có sẵn trên trang của bạn.

Cấu trúc tổ chức chiến lược xây dựng liên kết

Đặt mục tiêu

Xây dựng liên kết là một hình thức tiếp thị trực tuyến và với bất kỳ hình thức tiếp thị bạn nên bắt đầu với mục tiêu rõ ràng. Việc biết được mục đích của chiến dịch ngay từ đầu đảm bảo rằng bạn tạo một chiến lược mang lại cơ hội thành công tốt nhất có thể. Bạn cũng cần phải đảm bảo rằng các mục tiêu của chiến dịch xây dựng liên kết gắn liến với các mục tiêu tổng thể của doanh nghiệp.

Liên kết là một phần quan trọng của các thuật toán xếp hạng công cụ tìm kiếm. Vì vậy sẽ không đạt được mục tiêu khi không có liên kết tốt và đa dạng để xếp hạng và tăng lưu lượng truy cập.

Các mục tiêu xây dựng liên kết phải gắn liền với các mục tiêu của tổ chức và cuối cùng có tác động tích cực đến kết quả kinh doanh của doanh nghiệp. Ví dụ: có thể bạn muốn tăng lưu lượng truy cập thông qua tìm kiếm để tăng doanh thu, đồng thời bạn cần phải nhớ răng SEO và xây dựng liên kết không phải thành công ngay tức thời, giống như bất kỳ tiếp thị nào trọng tâm là lợi ích lâu dài chứ không phải lợi ích trong ngắn hạn.

Tài sản bạn có

Những thứ bạn cung cấp trên trang như Nội dung, thông tin sản phẩm và dịch vụ để thu hút và kiếm được liên kết. Điều này có thể biết đến như là cái móc câu sẽ làm cho mọi người quan tâm đến những gì bạn cung cấp và sẽ thu hút họ liên kết với bạn. Tài sản sẽ thay đổi từ kinh doanh sang doanh nghiệp và cần xác định những tài sản mà doanh nghiệp có thể sử dụng trong xây dựng liên kết.

Các loại liên kết

Khi xác định chiến lược cho chiến dịch xây dựng liên kết của bạn, bạn sẽ cần phải suy nghĩ về các loại liên kết cần xây dựng

Liên kết đến trang chủ (Home page)

Liên kết có chứa thương hiệu / tên công ty của bạn

Liên kết có chứa các từ khoá bạn đang nhắm mục tiêu

Xác định loại liên kết bạn cần để bắt đầu phân tích liên kết chi tiết của trang web hiện tại của bạn cũng như xem cách xếp hạng cho các từ khoá so với đối thủ cạnh tranh. Bạn có thể sử dụng Open Site Explorer để phân tích và xem hồ sơ liên kết hiện tại của mình.

Nguồn liên kết đến bạn, chú ý các chỉ số PA, DA cao sẽ rất tốt

Tìm mục tiêu liên kết

Lý tưởng hơn, trước khi bạn bắt đầu chiến dịch xây dựng liên kết, nên có một ý tưởng sơ bộ về người mà bạn sẽ quan tâm đến những gì bạn cung cấp. Nếu bạn tạo một mẩu nội dung mà muốn liên kết đến, chẳng hạn như một trang thông tin điện tử, bạn nên tự hỏi ngay khi bắt đầu quá trình người sẽ quan tâm đến nó. Quan trọng hơn, những người sẽ quan tâm đủ để thực sự muốn liên kết đến nó?

Điều cuối cùng là rất quan trọng. Mặc dù bạn có thể thấy mọi người nhìn vào nội dung của bạn khá dễ dàng, nhưng mức độ cam kết của họ thực sự muốn liên kết đến nó. Liên kết đến một cái gì đó đòi hỏi sự nỗ lực và thời gian, vì vậy bạn cần phải làm cho một người nào đó đủ để họ không cảm thấy bị làm phiền. Nếu có tài khoản Twitter hoặc Facebook hoặc blog sẽ giúp chia sẻ dễ dàng hơn.

Vậy làm thế nào để bạn làm cho mọi người quan tâm và liên kết với bạn?

Bạn cần phải tìm một cái móc câu (hook một kỹ thuật chèn đoạn nội dung gây ấn tượng mạnh với người đọc) làm cho người ta quan tâm. Bạn cần phải đưa hook này vào nội dung ngay từ đầu. Nếu không tạo hook cho đến khi bạn bắt đầu tiếp cận, bạn có thể khám phá ra rằng không ai quan tâm đến nội dung của bạn, kết quả là bạn sẽ dành rất nhiều thời gian để tạo ra nội dung mà không ai muốn liên kết tới.

Chiến lược xây dựng liên kết 4 bước:

Create the Content – Tạo nội dung chất lượng cao

Find the Angle – Tìm kiếm mục tiêu liên kết

Do Outreach – Thực hiện tiếp cận

Follow Up – Theo vết bám đuổi

chiến lược xây dựng liên kết qua 4 bước

Một số móc câu bạn có thể nghĩ đến có thể là:

Tin tức sốc, độc, lạ

Buồn cười, Hài hước

Gây tranh cãi

Tài liệu hướng dẫn

Sử dụng video

Có rất nhiều móc câu, những ví dụ ở trên bạn nên tham khảo và có thể suy nghĩ sáng tạo thêm về những gì cung cấp cho những người mà sẽ làm cho họ muốn liên kết với trang của bạn.

Lời kết

Tổ chức Chiến dịch xây dựng liên kết tốt giúp bạn xác định mục tiêu rõ ràng những thứ bạn cung cấp và xác định đối tượng mục tiêu để liên kết, cung cấp những cách thức để tiếp cận hiệu quả và mục tiêu cuối cùng là đạt được hiệu quả kinh doanh tốt nhất có thể qua kênh tiếp thị search engine.

Bài viết tiếp theo sẽ hướng dẫn cách xác định đối tượng mục tiêu liên kết, bạn thực sự chờ đợi bài viết này hãy commet “I WANT” để động viên ad lấy tinh thần để viết tiếp và thân gửi tới bạn những người yêu mến SEO.

Dũng Hoàng

Nguồn: Moz – Link Building Campange

Bạn đang đọc nội dung bài viết Bài 46: Xây Dựng Chức Năng Đăng Ký Thành Viên Với Php Và Mysql / 2023 trên website Jetstartakeontheworld.com. Hy vọng một phần nào đó những thông tin mà chúng tôi đã cung cấp là rất hữu ích với bạn. Nếu nội dung bài viết 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. Chúc bạn một ngày tốt lành!