Bài 4: Form và dữ liệu người dùng nhập trong PHP
Thẻ Form là một thẻ rất quan trọng trong lập trình Web, chúng được sử dụng để thu thập dữ liệu người sử dụng nhập vào.
Trong PHP các biến $_GET và $_POST thường được sử dụng để lấy lại các thông tin nhập từ người sử dụng thông qua các Form.
Xử lý Form trong PHP
Các giao dịch giữa form HTML (các phần tử trong trang HTML) và PHP sẽ thực hiện hoàn toàn tự động.
Ví dụ
Dưới đây là một ví dụ có một form HTML với hai ô nhập dữ liệu (input) và một nút submit:
<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>
Với Form ở trên và kích vào nút submit, dữ liệu trong form sẽ được gửi tới trang PHP có tên là “welcome.php”:
Trang “welcome.php” có code như sau:
<html>
<body>
Chào mừng bạn <?php echo $_POST["fname"]; ?>!<br />
Bạn có tuổi là <?php echo $_POST["age"]; ?>.</body>
</html>
Kết quả đầu ra khi người dùng nhập vào Tên là Toàn, Tuổi là 21:
Chào mừng bạn Toàn!
Bạn có tuổi là 21.
Bạn có thể xem trang 77 của slide bài giảng này để hiểu rõ hơn các hàm $_GET và $_POST.
Kiểm tra dữ liệu hợp lệ trong Form (Form Validation)
Dữ liệu người dùng nhập cần được kiểm tra xem có hợp lệ không trước khi gửi, ví dụ như địa chỉ email không được kiểm tra tính hợp lệ hay không mà được thêm ngay vào cơ sở dữ liệu có thể các chức năng sử dụng đến email sẽ không hoạt động.
Có hai cách kiểm tra dữ liệu hợp lệ:
- Kiểm tra tại phía client (dùng các ngôn ngữ script tại phía client như javascript, vbscript)
- Kiểm tra tại phía server (dùng các ngôn ngữ tạị phía Server như PHP, C#, Java …): dữ liệu từ client sẽ được gửi lên server và sau khi server kiểm tra xong sẽ gửi kết quả lại cho client). Thông thường nên sử dụng kiểm tra tại phía client nếu có thể vì quá trình xử lý sẽ nhanh hơn và giảm tải cho server.
Bạn cũng nên xem xét việc kiểm tra tại phía server nếu dữ liệu cần kiểm tra nằm trong cơ sở dữ liệu tại phía server, ví dụ khi người sử dụng tạo một tài khoản mới, cần kiểm tra xem tài khoản đó đã tồn tại chưa, chắc chắn chỉ có thể kiểm tra tại phía server vì tên người sử dụng chọn cần được gửi lên server để kiểm tra xem tên đó đã có ai sử dụng chưa và sẽ gửi kết quả kiểm tra về cho client.
Một cách tốt để kiểm tra tính hợp lệ ở phía server là gửi tới chính form đó thay vì gửi tời một trang khác. Người sử dụng sẽ nhận các thông báo lỗi trên cùng trang của form này. Điều này làm cho dễ dàng quản lý lỗi.
Chi tiết cách kiểm tra tính hợp lệ dữ liệu nhập ở cả hai phía client và server sẽ được giới thiệu ở các bài sau.
Xong bài 4, giờ ai chỉ dùm mình sao qua xem được bài 5.