Chương 9: Làm Việc Với Form Trong PHP

Nội dung học:

1. Tổng quan về Form trong PHP

  • Form là phương tiện để thu thập dữ liệu từ người dùng, sau đó dữ liệu này được gửi đến máy chủ để xử lý.
  • Các phương thức gửi dữ liệu:
    • GET: Gửi dữ liệu qua URL.
    • POST: Gửi dữ liệu ẩn qua HTTP body.

2. Tạo một Form cơ bản

  • Ví dụ: <!DOCTYPE html> <html> <body> <form action=”xuly.php” method=”post”> <label for=”ten”>Tên:</label> <input type=”text” id=”ten” name=”ten”><br><br> <label for=”email”>Email:</label> <input type=”email” id=”email” name=”email”><br><br> <input type=”submit” value=”Gửi”> </form> </body> </html>

3. Xử lý dữ liệu từ Form

  • Dữ liệu từ Form được truy cập thông qua các mảng siêu toàn cục $_GET hoặc $_POST.
  • Ví dụ (xuly.php): <?php if ($_SERVER["REQUEST_METHOD"] == "POST") { $ten = $_POST['ten']; $email = $_POST['email']; echo "Tên của bạn là: $ten"; echo "<br>Email của bạn là: $email"; } ?>

4. Kiểm tra và bảo mật dữ liệu từ Form

a. Kiểm tra dữ liệu nhập vào
  • Kiểm tra xem các trường có được điền không.
  • Ví dụ: if (empty($_POST['ten'])) { echo "Vui lòng nhập tên."; }
b. Làm sạch dữ liệu
  • Sử dụng hàm htmlspecialchars() để tránh lỗi XSS (Cross-Site Scripting).
  • Ví dụ: $ten = htmlspecialchars($_POST['ten']);
c. Kiểm tra định dạng email
  • Sử dụng hàm filter_var() để xác minh email hợp lệ.
  • Ví dụ: if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { echo "Địa chỉ email không hợp lệ."; }

5. Sử dụng Form với GET

  • Form sử dụng phương thức GET: <form action="xuly.php" method="get"> <label for="tuoi">Tuổi:</label> <input type="number" id="tuoi" name="tuoi"> <input type="submit" value="Gửi"> </form>
  • Xử lý dữ liệu GET: <?php if ($_SERVER["REQUEST_METHOD"] == "GET") { $tuoi = $_GET['tuoi']; echo "Tuổi của bạn là: $tuoi"; } ?>

6. Tạo Form nâng cao

  • Checkbox: <input type="checkbox" id="dongy" name="dongy" value="Yes"> <label for="dongy">Tôi đồng ý với các điều khoản.</label>
  • Radio button: <input type="radio" id="nam" name="gioitinh" value="Nam"> <label for="nam">Nam</label> <input type="radio" id="nu" name="gioitinh" value="Nữ"> <label for="nu">Nữ</label>
  • Dropdown (select): <select name="ngonngu" id="ngonngu"> <option value="php">PHP</option> <option value="javascript">JavaScript</option> <option value="python">Python</option> </select>

7. Xử lý nhiều trường dữ liệu (mảng)

  • Form gửi dữ liệu dạng mảng: <input type="text" name="sothich[]" value="Chơi game"> <input type="text" name="sothich[]" value="Đọc sách">
  • Xử lý trong PHP: $sothich = $_POST['sothich']; foreach ($sothich as $item) { echo $item . "<br>"; }

Bài tập thực hành:

  1. Bài tập 1: Tạo form nhập tên, email, và kiểm tra tính hợp lệ của dữ liệu.
  2. Bài tập 2: Tạo form sử dụng radio button để chọn giới tính và in ra giới tính đã chọn.
  3. Bài tập 3: Tạo form có checkbox để chọn sở thích, sau đó in ra danh sách sở thích đã chọn.
  4. Bài tập 4: Tạo form sử dụng dropdown để chọn ngôn ngữ lập trình yêu thích và hiển thị kết quả.
  5. Bài tập 5: Tạo form có các trường nhập liệu, checkbox, và radio, sau đó xử lý toàn bộ dữ liệu trong một script PHP.

Lưu ý quan trọng:

  • Luôn kiểm tra và làm sạch dữ liệu trước khi xử lý.
  • Hạn chế sử dụng phương thức GET để gửi thông tin nhạy cảm.
  • Thực hành bảo mật bằng cách sử dụng các hàm như htmlspecialchars(), filter_var(), và strip_tags() để tránh các lỗi bảo mật phổ biến.

Viết một bình luận