1. Form – Biểu mẫu
Một điều quan trọng đáng lưu ý khi sử dụng HTML form và PHP là khi người dùng submit form đi. Thì mọi thông tin trong các phần tử của form đều đã được PHP lưu trữ lại, bao gồm cả thông tin mà người dùng đã nhập.
Ví dụ, form sau gồm 2 hộp text để người dùng nhập dữ liệu, và một nút submit để gửi form đi:
<
html
>
<
body
>
<
form
action
=
"welcome.php"
method
=
"post"
>
Name: <
input
type
=
"text"
name
=
"fname"
/>
Age: <
input
type
=
"text"
name
=
"age"
/>
<
input
type
=
"submit"
/>
</
form
>
</
body
>
</
html
>
Khi người dùng điền đầy đủ thông tin vào form, và ấn nút submit. Dữ liệu trong form này sẽ được gửi đến một file PHP phía máy chủ để xử lí. trong trường hợp này là file “welcome.php”:
Xét một ví dụ nhỏ về nội dung mà file welcome.php có thể chứa:
<html>
<body >
Chao <?php echo $_POST["fname"]; ?>!<br />
Tuoi cua ban la <?php echo $_POST["age"]; ?>.
</body>
</html>
Output sẽ tựa tựa thế này:
Chao Nhut!
Tuoi cua ban la 18.
Nếu mình điền vào form lúc đầu với thông tin là “Nhut” và “18″. Chú ý lại trong form html phía trên cùng. Trong thẻ form có 2 giá trị mà ta phải chú ý:
+ Một là action, đây là địa chỉ đến file sẽ nhận dữ liệu của form.
+ Hai là method, tức phương thức truyền thông tin. Có 2 cách đó là POST và GET. Ta sẽ tìm hiểu ngay sau đây.
2. $_POST
Phương thức POST, không giống như GET. Các thông tin được người dùng nhập vào sẽ không được hiển thị trong địa chỉ mà sẽ được truyền ngằm (người dùng không thể nhìn thấy) đến file php của ta. Và tất nhiên để lấy các giá trị đó thì ta sẽ dùng $_POST['index']. Với index là tên (name) của phần tử mà người dùng nhập dữ liệu. Như trong ví dụ từ đầu bài tới giờ đó là fname và age.
Ví dụ file welcome.php cho phương thức POST bạn xem phần 1.
3. $_GET
$_GET là một hàm dùng để lấy thông tin từ form sử dụng phương thức GET. Cũng với form html ở phần 1. Khi điền thông tin là Nhut và 18 và ấn Submit. Người dùng sẽ được chuyển đến địa chỉ tương tự như: http://daotaolaptrinh.edu.vn/welcome.php?fname=Nhut&age=18
Bạn có thấy phần ?fname=Nhut&age=18. Quá rõ ràng đó chính là thông tin mà ta đã nhập. Nó được hiển thị ngay ở địa chỉ, đó chính là GET method.
Trong file “welcome.php” bây giờ có thể sử dụng $_GET để lấy những dữ liệu do người dùng nhập đó, tên (name) của các phần tử của form sẽ được đặt đúng vào tên của nó trên mảng $_GET:
$_GET["fname"] -> cho ra [b]Nhut[/b]
$_GET["age"] -> cho ra [b]18[/b]
File welcome.php lúc bấy giờ sẽ phải sửa lại như sau để lấy thông tin theo kiểu GET:
<html>
<body >
Chao <?php echo $_GET["fname"]; ?>!<br />
Tuoi cua ban la <?php echo $_GET["age"]; ?>.
</body>
</html>
và form html ban đầu phải sửa lại thành method=”GET”
4. Dùng GET hay POST?
Xét lợi thế của từng cái.
Về phần POST:
với GET dữ liệu được truyền đi sẽ hiển thị ở thanh địa chỉ theo dạng ?bien1=giatri1&bien2=giatri2&bien3=giatri3 … . Điều này sẽ gây bất tiện nếu thông tin truyền đi là thông tin quan trọng, như tên người dung hay mật khẩu. Bạn thử nghĩ chuyện mật khẩu hiển thị tè le ra thành địa chỉ xem? Không được, trong trường hợp này POST là một lợi thế. Do biến được truyền đi ngầm. (Lưu ý, vẫn có các công cụ giúp bắt các thông tin truyền bằng POST tuy nhiên không hiển thị thông tin ở thanh địa chỉ vần là một lợi thế lớn).
Về phần GET:
Địa chỉ sẽ trở nên dài một tí, do phải mang thêm thông tin về biến (?bien1=giatri1&bien2=giatri2&bien3=giatri3 …). Nhưng một điều bạn cần phải biết đó là form có thể truyền thông tin bằng kiểu GET. Nhưng muốn truyền thông tin bằng kiểu GET thì không nhất thiết phải dùng form. Bạn có thể truy cập vào file ví dụ như index.php?id=2. Bạn vẫn có thể lấy thông tin id từ địa chỉ bằng $_GET như thường.
Từ địa chỉ dạng đó, bạn đã thấy gì chưa nhỉ? vâng trong địa chỉ của chúng ta có một biến. Đó là biến động và có thể thay đổi dễ dàng => Ta có thể dùng biến đó để dùng cho nhiều mục đích => xuất ra nhiều nội dung một cách linh hoạt => đó chính là yếu tố làm nên trang web động.
Kết luận:
Tùy mục đích sử dụng mà lựa chọn GET hay POST.
5. $_REQUEST
Cũng là một kiểu lấy thông tin từ người dùng. $_REQUEST bao hàm luôn cả $_GET và $_POST. Từ đó bạn không cần bân khuân lẫn lộn là POST hay GET.
Lưu ý, khi dùng cái này thì bất kỳ gì được truyền qua POST hay GET đều được $_REQUEST thu thập.
6. Kiểm tra những gì người dùng nhập
Cái này về bên bảo mật, nhưng cũng phải nói luôn. Bạn nên kiểm tra những gì người dùng đã nhập và được truyền đến file php của bạn, nếu như bạn dùng các thông tin đó để thực hiện một số thao tác với cơ sở dữ liệu, người dùng có thể cố tình chèn các mã độc gây thiệt hại cho server của bạn. Kiểm tra kỹ lưỡng các biến đầu vào, và xem xét coi có phải là form được gửi từ chính trang web của bạn chứ không phải từ một trang khác qua.
Ngoài ra bạn có thể dùng một đoạn javascript nhỏ kèm với form để kiểm tra ngay từ phía người dùng nếu như dữ liệu truyền đi không có đụng chạm gì với CSDL.
Việc cố tình nhập những giữ liệu không hợp lệ có thể dẫn tới lỗi hệ thống, và form không được thực thi.
Tiêu chí bảo mật hàng đầu: Đừng tin những gì người dùng nhập vào
Xem thêm tài liệu lập trình php
An Tâm Đức - Đào tạo lập trình - Đào tạo SEO
Không có nhận xét nào:
Đăng nhận xét