Ở bài trước “hướng dẫn tao form đăng ký” mình đã hướng dẫn các bạn tạo form đăng ký cho website của mình. Hôm nay mình sẽ tiếp tục chia sẽ đến các bạn bài viết về hướng dẫn tạo form đăng nhập. Trong bài viết này, mình sẽ tóm tắt như sau, đó là khi một người dùng điền thông tin đăng nhập, ta sẽ thực thi việc kiểm tra thông tin đăng nhập bao gồm username và password, nếu  thông tin trùng khớp với dữ liệu trong database ta sẽ tiến hành lưu , khởi tạo session và tiến hành lưu dữ liệu vào session. Tiếp theo ta sẽ dùng session đã được khởi tạo đó để check một số quyền hạn nhất định trên trang.

1. Tạo form đăng nhập :

Chúng ta sẽ tạo form đăng nhập login.php, đặt trong folder my_website

form đặng nhập

bao gồm :

  • ô input username : tài khoản mà người dùng đã đăng ký
  • ô input password : mật khẩu người dùng đã đăng ký

Gõ xong, các bạn vào đường dẫn

bạn sẽ thấy form như sau

form đăng nhập

 2. Xử lý thông tin đăng nhập

Đây là giai đoạn chúng ta sẽ tiến hành kiểm tra người dùng đã nhập đủ thông tin vào form đăng nhập hay chưa, nếu chưa hiện ra thông báo bắt buộc họ phải nhập đầy đủ thông tin, sau đó tiếp tục kiểm tra thông tin người dùng với dữ liệu họ đã đăng ký trong database xem đã trùng khớp hay chưa? nếu chưa thì tiếp tục hiện thống báo phản hồi, ngược lại tiến hành lưu thông tin đăng nhập vào session để xử lý

Lưu ý : muốn sử dụng session để lưu thông tin , thì bạn  phải khởi tạo session bằng function session_start() và thì tốt nhất nên đặt function session_start() đầu trang

Tiếp theo ta sẽ kiểm tra thông tin đăng nhập và lưu vào lại session như code đầy đủ dưới đây

3. Xử lý sau hậu đăng nhập

Ở phần 2, sau khi đăng nhập thành công, chúng ta sẽ chuyển hướng trang web tới trang index.php. Vì thế chúng ta tiếp tục tạo trang index.php (đặt trong thư mục my_website) để xử lý thông tin, gọi nôm na là xử lý hậu đăng nhập.

Trong file index.php gõ theo như đoạn code dưới đây:

Giải thích một tí về đoạn code trên, ở đoạn code

chúng ta sẽ tiến hành kiểm tra khi một ai đó chưa đăng nhập nhưng cố tình truy cập vào trang index.php bằng cách điền địa chỉ

, thì sẽ bị chuyển hướng ra lại trang đăng nhập, ngược lại thì ta sẽ xuất ra dòng chữ

Kết thúc bài viết, nếu bạn có bất kỳ thắc mắc nào thì để lại comment bên dưới, chúng ta sẽ cùng nhau thảo luận. Nếu thấy bài viết hay thì đừng quên ấn nút  share bên dưới để mọi người cùng nhau học nhé. Thân !

Đợi chút, bạn có muốn tự tay tạo thiết kế website bằng HTML, CSS, Bootstrap cho riêng mình ? Nếu có thì xem tại đây nhé

Nguon : kungfuphp.com
PHP cơ bản : Tạo form đăng ký, đăng nhập (phần 2)
5 (100%) 1 vote
Mình là Hiếu. Mình lập ra Kungfu PHP nhằm mục đích chia sẽ những gì mình biết đến với các bạn bao gồm các lĩnh vực như : tiền điện tử, kiếm tiền online, marketing, lập trình... Hy vọng nơi đây là mái nhà chung để chúng ta có thể học tập và trao đổi với nhau, cùng nhau phát triển. Chúc các bạn luôn vui !
Bạn có muốn tham gia nhóm thảo luận ICO tốt nhất ?

55 Comments Already

  1. Chào anh Hiếu Hoàng,

    Viết tặng cho em đoạn code cài đặc user và password mặt định giúp cho người dùng chỉ bấm login mà không cần nhập user và password. Cám ơn

    • cái này ko cần viết code gì nhé e, e cứ thêm 1 username và password mặc định vào cơ sở dữ liệu, còn chỗ 2 ô username và password e gắn 2 cái username và password vào giá trị value của ô input username và password là xong

  2. Sau khi làm login va index: vá chạy :http://localhost/my_website/index.php thì báo lỗi thế này Ad ơi:
    Object not found!

    The requested URL was not found on this server. If you entered the URL manually please check your spelling and try again.

    If you think this is a server error, please contact the webmaster.

    Error 404

    localhost
    Apache/2.4.25 (Win32) OpenSSL/1.0.2j PHP/5.6.30

    Mong Ad giúp mình vs

    • e kiểm tra lại e đã tạo file index.php trong folder my_website chưa ? Lỗi này là báo không tìm thấy file index.php

  3. Em tạo cơ sở giống y như bài, câu query cũng giống, em còn copy luôn code của bài để chạy mà vẫn không được. Nó còn hay báo lỗi dòng 28,29 trong bài. Lỗi như sau :

    Warning: mysqli_query() expects parameter 1 to be mysqli, resource given in C:\xampp\htdocs\my_website\login.php on line 28
    Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, null given in C:\xampp\htdocs\my_website\login.php on line 29
    tên đăng nhập hoặc mật khẩu không đúng !

  4. cái này e thử echo câu query ra, rồi kiểm tra xem câu query của e đã đúng chưa ?

  5. Ad ơi, mình làm phần đăng nhập xong rồi nhập đúng username và password trên cơ sở dữ liệu của mình luôn nhưng nó vẫn báo là tên đăng nhập và mật khẩu không đúng, mặc dù mình có copy code của ad vào chạy luôn mà vẫn không được.

  6. web này là bạn làm hay ai làm ? Nếu bạn làm thì có thể là do đã hết thời gian expire của session rồi

  7. Web của mình đăng nhập 1 thời gian không thao tác là tự động đăng xuất. Mình muốn không tự động đăng xuất thì chỉnh như thế nào ạ? Cám ơn nhiều 🙂 Web mình http://sakurafashion.vn/

  8. ban oi. đoạn section minh lưu nó vào đâu vậy

  9. just test the new comment

  10. có khó khăn các bạn cứ để comment bên dưới nhé

  11. ad oi!cho hoi trang login cua e ok oy vao dc tran index.php nhung khi dat dieu kien cho index.php nhu sau

    thi no quay lai trang login.php de minh dang nhap nhung mat khau va ten dang nhap dung lai k vao dc index.php la loi nhu the nao ạ?

  12. Mình mới học làm web, nhưng không dùng vào đăng ký mà dùng vào tải file host. mình muốn cái tên ảnh lúc mình add vào mà chưa đầy đủ thì nó ghi bạn chưa điền đầy đủ vào vậy đó, hiện mình chưa làm web chính thức

  13. Mình mới học làm web, nhưng không dùng vào đăng ký mà dùng vào tải file host. mình muốn cái tên ảnh lúc mình add vào mà chưa đầy đủ thì nó ghi bạn chưa điền đầy đủ vào vậy đó, hiện mình chưa làm web chính thức

  14. anh ơi, a xem hộ e xem cái lỗi này n làm sao mà e ko đăng nhập được vậy ạ
    Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given in D:\xampp\htdocs\thuvien\dangnhap.php on line 15
    code của e là :

    Đăng nhập

    Tên đăng nhập:

    Mật khẩu:

    • bạn phải lưu lại Session : $_SESSION[‘username’]=$username; trước khi thực hiện kiểm tra trong trang index …

  15. mấy bạn bị lỗi đăng nhập thành công không chuyển sang trang ĩndex mà fix được rồi share mọi người kinh nghiệm với!
    Cám ơn bài viết hay!

  16. Anh cho em hỏi sao vào trang login khi có thì vào k được nó ghi là This webpage is not available. còn bỏ thì lại vào được ạ

  17. Mình đã xem và thực hành bài tập php cơ bản tạo from đăng ký đăng nhập phần 1, phần 2 bây giờ mình muốn xem bài tiếp theo thì làm cách nào ?
    Mình có nhìn đấy ở cuối bài có phần bài kế tiếp, nhưng nội dung nó không phải là bài kế tiếp của bài mình đàng xem (tạo đăg nhập, ĐK p2)

    Tags: Form Dang Nhap

    « PHP cơ bản : Tạo form đăng ký, đăng nhập (phần 1) « Cài đặt php apache, cài đặt mysql trên ubuntu 14.0

    Ad nên sắp xếp cái bài có cùng nội dung để làm bài tiếp theo :
    vidu như : mình đang xem bài 1 => next thì sang bài 2 => next sang bài 3 của cùng nội dung đó.

    mình đang muốn học lập trình php xem đến bài 2 thì không biết tìm bài 3 4 5 … ở đâu cả mong ad giúp đỡ.

    có gì sai sót mong ace bỏ qua và chỉ bảo.
    thanks !

  18. Ad ơi cho hỏi mình copy code Ad về chạy thử nhưng đến khi vào trang index.php thì nó cứ đứng ở trang login.php hoài mặc dù đăng nhập thành công thì nó vẫn thế

  19. hi ad, mình có làm 1 form đăng nhập bằng dreamweawer cs3 và developer toolbox , tất cả đều ok, giờ mình ko biết làm sao để nó hiện đúng tên username vừa đăng nhập trên trang chủ( hoặc trang profile),truyền qua bằng cách nào và cách show tên username ra, hy vọng đc ad chỉ giáo thêm, mình là newbie, thanks rất nhiều

    • để hiện trường username bạn chỉ cần sử dụng : echo $_SESSION[‘username’]; ở bất cứ đâu trên trang nào . Vì username bạn đã lưu vào session rồi đó. Lưu ý là trên đầu trang cần hiện nhớ thêm đoạn code này : session_start(); để có thể sử dụng session nhé

  20. Thế còn đăng xuất thì sao ạ ad :3

  21. ad ơi cho mình hỏi mình muốn làm thêm nâng cao là khi người dùng nhập sai quá 3 lần thì tạm khóa sau 1 tiếng mới được đăng nhập lại thì làm sao ạ

  22. e đã làm video 🙂
    Link: https://youtu.be/W4llc8i8LwE

    • E fix lỗi đc rồi ad..mà nó thông báo xong rồi làm sao để ta chuyển tới trang quan-ly-thanh-vien được đây ad

  23. Ad xem và giải thích giúp e với….tks ad

  24. ad ơi em bị báo lỗi mysqli_num_rows : Warning: mysqli_num_rows() expects parameter 1 to be mysqli_result,… là sao ad

    • Lỗi này thường là do câu SQL của e bị sai, e copy câu sql của e vào phpmyadmin chạy xem có được ko ?

    • Bạn đã xử lý được lỗi này chưa? Mình cài Xampp 1.6.8 thì chạy được nhưng các bản Xampp mới hơn đều bị lỗi này không biết do đâu

  25. Anh ơi sao nó không chuyển qua trang login.php, cũng không thông báo là đăng nhập thành côn ghay thất bại gì hết.

  26. Ad ơi,cho em hỏi em dùng Xampp,nhưng thực hành CSDL trên trường dùng SQLQ Server 2005.e cài vào máy thì có xung đột với Xampp k ạ?? E cảm ơn ạ.

  27. Ad ơi,cái file lib là gì vậy ạ? E dùng Xampp ạ.

  28. Cho mình hỏi câu lệnh đó đâu ra vậy: “require_once(“lib/connection.php”);”, không có nó thì có sao không ,thank

    • bạn thử bỏ nó rồi chạy xem, nếu lỗi tức là không được bỏ, hì. require_one là hàm của PHP dùng để gọi đến 1 file nào đó để có thể sử dụng chức năng của file đó. Trong trường hợp này nếu bạn không require_one để gọi đến file connection.php, thì ko thể kết nối đến db, tức là sẽ lỗi 🙂

  29. :), gặp khó khăn bạn sẽ mau tiến bộ hơn, chúc học tốt ha:)

  30. admin ơi. đoạn “require_once(“connection.php”);” phải là require_once(“lib/connection.php”); mới dc.phần code còn lại mình làm y chang như admin mà đăng nhập ko dc.vẫn đứng yên ở trang đăng nhập,ko báo lỗi zi` hết @@

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

loading...