Thứ Ba, 18 tháng 11, 2014

Form và xử lý form trong PHP

Form và xử lý form trong PHP
Khi bạn vào một website để mua hàng, nghe nhạc , chia sẻ thông tin hay chat chít gì đó ... thì form là yếu tố không thể thiếu để giúp bạn thực hiện các thao tác này


Form và xử lý form trong PHP

 Cấu trúc của 1 form có dạng

<form action = "" method = "">
</form>

Trong đó action sẽ là nơi nhận và xử lý dữ liệu khi người dùng nhập vào form và ấn submit để gửi. Method là phương thức truyền dữ liệu trong form, có 2 phương thức truyền dữ liệu là POST và GET. Cụ thể chúng ta sẽ xét ví dụ sau

- Ta có form với method đang là POST và action dữ liệu sẽ được gửi đến file login.php

Form và xử lý form trong PHP

Giao diện của form khi view lên trình duyệt

- Khi người dùng nhấn nút "Đăng nhập" thì dữ liệu mà người dùng vừa nhập vào ( bao gồm username  và password) sẽ được truyền theo phương thức POST sang file login.php, Ở file login.php này chúng ta sẽ lấy được dữ liệu thông qua biến môi trường $_POST.

- Trong PHP chúng ta sẽ lấy được giá trị của các text field qua thuộc tính name, ở đây chúng ta đang có 2 text field là name="user_name" và name="user_pass" trong cặp thẻ input type="text" và input type="password" 

1
2
3
4
5
6
7
8
File login.php :

<?php
     $username = $_POST['user_name'];
     $password = $_POST['user_pass'];        
     echo "Your name : ".$username."<br />";      
     echo "Your pass : ".$password;
?>
- Tương tự nếu người truyền dữ liệu theo phương thức GET thì chúng ta sẽ lấy được dữ liệu qua biến $_GET
1
2
3
4
5
6
7
8
File login.php :

<?php
     $username = $_GET['user_name'];
     $password = $_GET['user_pass'];        
     echo "Your name : ".$username."<br />";      
     echo "Your pass : ".$password;
?>



- Sự khác nhau giữa POST và GET là gì ?

Với phương thức POST thì dữ liệ được truyền đi ngầm sang file login.php, còn với phương thức GET dữ liệu được gủi đi và dữ liệu mà chúng ta vừa nhập vào sẽ được show lên ở thanh address bar của trình duyệt

Form và xử lý form trong PHP
Việc truyền dữ liệu lên thanh địa chỉ như vậy khiến cho thông tin của chúng ta không được bảo mật, người dùng hoàn toàn có thể can thiệp đến dữ liệu của chúng ta vì vậy với những form có thông tin cần bảo mật như đăng nhập hay đăng ký thì chúng ta không nên sử dụng phương thức GET

- Okie đó là 2 phương thức POST và GET, tiếp theo chúng ta tiến hành check thông tin do người dùng nhập dữ liệu vào 


1.     <?php   

2.     $username  = "";          

3.     $password  = "";

4.     // Nếu người dùng chưa nhập dữ liệu, đưa ra thông báo 

5.     if($_POST['user_name'] == NULL){

6.     echo "Please enter your name";

7.     die();

8.     }else{

9.     $username = $_POST['user_name'];

10. }

11. // Nếu chưa nhập password

12. if($_POST['user_pass'] == NULL){

13. echo "Please enter your pass";

14. die();

15. }else{

16. $password = $_POST['user_pass'];

17. }

18. // Nhập đúng user và pass

19. if($username == "yourname" and $password == "123456"){

20. echo "Login successfuly";

21. }else{

22. echo "Login false";

23. }

24. ?>  


Ở ví dụ trên ta sẽ bắt các trường hợp xảy ra khi người dùng thao tác. Ban đầu nếu người dùng không nhập username thì báo lỗi yêu cầu họ nhập dữ liệu, ngược lại khi người dùng nhập dữ liệu thì chúng ta sẽ lấy được username mà họ vừa nhập vào thông qua biến $_POST['user_name'] và gán cho biến $username.

Tương tự password cũng như username vậy, nếu người dùng chưa nhập dữ liệu thì báo lỗi, ngược lại thì lấy dữ liệu họ vừa nhập và gán vào biến $password.

Kiểm tra xem người dùng có nhập username = "yourname" và password = "123456" hay không, nếu họ nhập đúng thì sẽ thông báo cho biết đã đăng nhập thành công, ngược lại thì báo cho họ biết họ nhập sai username và password

Đúng ra thì sau khi nhập username và password , chúng ta sẽ truy vấn với database để so sánh xem thông tin họ nhập vào có giống với thông tin lưu trong database hay không. ở đây chúng ta chưa học đến database nên tôi tạm thời lấy thông tin user và pass làm ví dụ, mục đích chính là để các bạn hiểu được cách xử lý đơn giản nhất.



Tin tức khác:

Không có nhận xét nào:

Đăng nhận xét