Trong bài hướng dẫn tự học Lập trình PHP này, mình sẽ giúp bạn tìm hiểu cách lấy, thu thập dữ liệu đầu vào của người dùng được gửi qua một biểu mẫu (form) bằng cách sử dụng các biến superglobal trong PHP như: $_GET, $_POST và $_REQUEST.
Bước 1: Tạo biểu mẫu đơn giản với HTML
Trong bài hướng dẫn này, chúng tôi sẽ tạo một biểu mẫu liên hệ bằng HMTL đơn giản.
Biểu mẫu này cho phép người dùng nhập nhận xét và phản hồi của họ sau đó hiển thị nó cho trình duyệt bằng PHP.
Mở phần mềm soạn lập trình php yêu thích của bạn và tạo một tệp PHP mới. Bây giờ hãy nhập đoạn mã sau và lưu tệp này dưới dạng ‘contact-form.php‘ trong thư mục gốc của dự án.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Biểu mẫu trong PHP</title>
</head>
<body>
<h2>Contact Us</h2>
<p>Điền vào biểu mẫu và nhấn Gửi.</p>
<form action="process-form.php" method="post">
<p>
<label for="inputName">Tên:<sup>*</sup></label>
<input type="text" name="name" id="inputName">
</p>
<p>
<label for="inputEmail">Email:<sup>*</sup></label>
<input type="text" name="email" id="inputEmail">
</p>
<p>
<label for="inputSubject">Tiêu đề:</label>
<input type="text" name="subject" id="inputSubject">
</p>
<p>
<label for="inputComment">Nội dung:<sup>*</sup></label>
<textarea name="message" id="inputComment" rows="5" cols="30"></textarea>
</p>
<input type="submit" value="Gửi">
<input type="reset" value="Làm lại">
</form>
</body>
</html>
Giải thích đoạn code biểu mẫu HTML trên
Lưu ý rằng có hai thuộc tính trong thẻ mở <form>:
- Thuộc tính action: Tham chiếu tệp PHP ‘process-form.php‘ nhận dữ liệu được nhập vào biểu mẫu khi người dùng gửi nó. Nôm na là thuộc tính action chỉ định giai đoạn sau khi thực hiện Gửi dữ liệu thành công.
- Thuộc tính method: Yêu cầu trình duyệt gửi dữ liệu biểu mẫu thông qua phương thức POST.
Phần còn lại của các thành phần bên trong biểu mẫu là các thành phần cơ bản để nhận thông tin người dùng nhập vào.
Bước 2: Lấy dữ liệu người dùng nhập vào biểu mẫu bằng PHP
Để truy cập giá trị của một trường cụ thể trong biểu mẫu, bạn có thể sử dụng các biến superglobal sau đây. Các biến này có sẵn trong tất cả các phạm vi trong tập lệnh.
- $_GET: Chứa danh sách tất cả các tên và giá trị trường được gửi bởi một biểu mẫu bằng phương thức get (dữ liệu sẽ hiển thị trong URL).
- $_POST: Chứa danh sách tất cả các tên và giá trị trường được gửi bởi một biểu mẫu bằng phương thức đăng (dữ liệu sẽ không hiển thị trong URL).
- $_REQUEST: Chứa các giá trị của cả hai biến $_GET và $_POST cũng như các giá trị của biến superglobal $_COOKIE.
Khi người dùng gửi biểu mẫu liên hệ ở trên thông qua việc nhấp vào nút submit, dữ liệu biểu mẫu được gửi đến tệp ‘process-form.php‘ trên máy chủ để xử lý.
Nó chỉ đơn giản là nắm bắt thông tin được gửi bởi người dùng và hiển thị nó cho trình duyệt.
Code PHP của tệp ‘process-form.php’ sẽ được viết như sau:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Contact Form</title>
</head>
<body>
<h1>Cám ơn bạn!</h1>
<p>Đây là thông tin bạn đã gửi:</p>
<ol>
<li><em>Tên:</em> <?php echo $_POST["name"]?></li>
<li><em>Email:</em> <?php echo $_POST["email"]?></li>
<li><em>Tiêu đề:</em> <?php echo $_POST["subject"]?></li>
<li><em>Nội dung:</em> <?php echo $_POST["message"]?></li>
</ol>
</body>
</html>
Đoạn code PHP ở trên khá đơn giản. Vì dữ liệu biểu mẫu được gửi qua phương thức POST, bạn có thể truy xuất giá trị của trường biểu mẫu cụ thể bằng cách chuyển tên của nó đến mảng superglobal $_POST và hiển thị từng giá trị trường bằng câu lệnh echo().
Cú pháp truy cập dữ liệu trong mảng superglobal:
$_POST["name"]
Trong thực tế, khi lấy, thu thập dữ liệu người dùng bằng biểu mẫu thì nội dung người dùng gửi cần phải được xử lý trước khi chuyển lên server. (Tránh trường hợp lợi dụng gửi mã độc lên server)
Luc này bạn phải thực hiện một số bước xác thực dữ liệu để đảm bảo dữ liệu người dùng sạch và đúng chuẩn cho phép.
Trong bài học tiếp theo, mình sẽ hướng dẫn bạn cách làm sạch và xác thực dữ liệu biểu mẫu liên hệ và gửi qua email bằng PHP.