Trong quá trình phát triển ứng dụng web, việc thu thập và xử lý dữ liệu từ người dùng là điều cực kỳ quan trọng, để thực hiện được điều này, chúng ta cần sử dụng các biểu mẫu HTML.
Nhưng để lấy được dữ liệu từ biểu mẫu này trong PHP thì lại không phải là điều đơn giản. Vì vậy, trong bài viết này, chúng ta sẽ cùng tìm hiểu cách lấy dữ liệu từ biểu mẫu HTML trong PHP.
![](/pic/News/images/bieu-mau.jpg)
Cách tạo biểu mẫu HTML trong PHP
Trước khi có thể lấy dữ liệu từ biểu mẫu HTML trong PHP, chúng ta cần tạo ra một biểu mẫu HTML đầy đủ thông tin. Để làm được điều này, chúng ta sử dụng các thẻ <form> và <input> để tạo các trường nhập liệu cho người dùng. Ví dụ:
<form method="POST" action="process.php">
<label for="name">Họ và tên:</label>
<input type="text" id="name" name="name"><br>
<label for="email">Email:</label>
<input type="email" id="email" name="email"><br>
<label for="password">Mật khẩu:</label>
<input type="password" id="password" name="password"><br>
<input type="submit" value="Đăng ký">
</form>
Trong ví dụ trên, chúng ta sử dụng thuộc tính method="POST" để chỉ định rằng dữ liệu trong biểu mẫu sẽ được gửi đi bằng phương thức POST. Ngoài ra, còn có thuộc tính action để chỉ định đường dẫn đến tập tin xử lý dữ liệu của biểu mẫu.
Sau khi đã có biểu mẫu HTML, chúng ta cần tạo một tập tin xử lý dữ liệu (trong ví dụ này là process.php) để nhận và xử lý dữ liệu từ biểu mẫu này.
Bước tiếp theo là xử lý dữ liệu từ biểu mẫu HTML trong PHP. Việc này được thực hiện bởi tập tin xử lý dữ liệu mà chúng ta đã tạo ở bước trước. Để lấy được dữ liệu từ biểu mẫu, chúng ta sử dụng một số hàm có sẵn trong PHP như $_POST hoặc $_GET. Hãy cùng tìm hiểu chi tiết hơn về từng phương thức này.
Sử dụng phương thức POST để lấy dữ liệu từ biểu mẫu HTML
Phương thức POST được sử dụng để gửi dữ liệu đi một cách bảo mật hơn so với GET. Khi sử dụng phương thức này, dữ liệu sẽ không hiển thị trên URL, giúp bảo vệ dữ liệu của người dùng.
Để lấy dữ liệu từ biểu mẫu sử dụng POST, chúng ta sử dụng biến $_POST. Ví dụ tiếp tục với đoạn mã PHP sau đây:
// Kiểm tra xem người dùng đã click vào nút "Đăng ký" hay chưa
if (isset($_POST['submit'])) {
// Lấy dữ liệu từ các trường nhập liệu trong biểu mẫu
$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];
// Thực hiện các thao tác xử lý dữ liệu ở đây
}
Như vậy, chúng ta đã lấy được dữ liệu từ biểu mẫu sử dụng phương thức POST và có thể sử dụng các biến $name, $email, $password để xử lý dữ liệu.
Sử dụng phương thức GET để lấy dữ liệu từ biểu mẫu HTML
Ngược lại với phương thức POST, phương thức GET cho phép dữ liệu hiển thị trên URL, làm cho việc gửi đi dữ liệu trở nên dễ dàng hơn. Tuy nhiên, điều này cũng có thể khiến dữ liệu của người dùng bị lộ đi.
![](/pic/News/images/phuong-thuc-trong-php.jpg)
Để lấy dữ liệu từ biểu mẫu sử dụng GET, chúng ta sử dụng biến $_GET. Ví dụ tiếp tục với đoạn mã PHP sau đây:
// Kiểm tra xem người dùng đã click vào nút "Tìm kiếm" hay chưa
if (isset($_GET['submit'])) {
// Lấy dữ liệu từ trường nhập liệu "từ khóa"
$keyword = $_GET['keyword'];
// Thực hiện các thao tác xử lý dữ liệu ở đây
}
Nếu chúng ta muốn sử dụng phương thức GET để gửi dữ liệu đi, ta cần chỉnh sửa thuộc tính method="GET" ở trong thẻ <form>.
Lấy giá trị từ các trường input trong biểu mẫu HTML
Trong ví dụ ở phần trước, chúng ta đã sử dụng các trường input như type="text", type="email" và type="password" để tạo các trường nhập liệu cho người dùng. Để lấy giá trị từ các trường này, chúng ta sử dụng thuộc tính name trong thẻ <input>. Ví dụ:
<input type="text" id="name" name="name">
Khi người dùng nhập vào trường này và gửi đi biểu mẫu, giá trị của trường này sẽ được lưu vào biến $_POST['name'] hoặc $_GET['name'] (tùy thuộc vào phương thức sử dụng ở phần trước).
Kiểm tra và xử lý dữ liệu đầu vào từ biểu mẫu
Trong quá trình lập trình, việc kiểm tra và xử lý dữ liệu đầu vào là rất quan trọng để đảm bảo tính đúng đắn và an toàn của ứng dụng. Vì vậy, khi lấy dữ liệu từ biểu mẫu trong PHP, chúng ta cần kiểm tra và xử lý dữ liệu này trước khi sử dụng.
Có nhiều cách để kiểm tra và xử lý dữ liệu đầu vào từ biểu mẫu, tùy thuộc vào loại dữ liệu và mục đích sử dụng. Dưới đây là một số ví dụ về cách kiểm tra và xử lý dữ liệu từ các trường nhập liệu khác nhau:
Kiểm tra và xử lý dữ liệu nhập tên
Khi người dùng nhập vào tên của mình, chúng ta cần kiểm tra và loại bỏ những ký tự không hợp lệ như số, ký tự đặc biệt hay các khoảng trắng ở đầu và cuối chuỗi.
Ví dụ:
$name = trim($_POST['name']); // Loại bỏ khoảng trắng ở đầu và cuối chuỗi
if (!preg_match("/^[a-zA-Z ]*$/", $name)) { // Kiểm tra xem chuỗi chỉ chứa các ký tự và khoảng trắng
echo "Tên không hợp lệ!";
} else {
// Thực hiện các thao tác xử lý dữ liệu ở đây
}
Kiểm tra và xử lý dữ liệu nhập email
Khi người dùng nhập vào email, chúng ta cần kiểm tra và đảm bảo định dạng email là hợp lệ.
Ví dụ:
$email = trim($_POST['email']); // Loại bỏ khoảng trắng ở đầu và cuối chuỗi
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { // Kiểm tra định dạng email
echo "Email không hợp lệ!";
} else {
// Thực hiện các thao tác xử lý dữ liệu ở đây
}
Kiểm tra và xử lý dữ liệu nhập mật khẩu
Khi người dùng nhập vào mật khẩu, chúng ta cần kiểm tra và đảm bảo độ dài của mật khẩu đủ lớn để tăng tính bảo mật.
Ví dụ:
$password = trim($_POST['password']); // Loại bỏ khoảng trắng ở đầu và cuối chuỗi
if (strlen($password) < 6) { // Kiểm tra độ dài mật khẩu
echo "Mật khẩu phải có ít nhất 6 ký tự!";
} else {
// Thực hiện các thao tác xử lý dữ liệu ở đây
}
Xử lý tập tin được tải lên từ biểu mẫu HTML trong PHP
Ngoài việc thu thập và xử lý dữ liệu từ các trường nhập liệu, chúng ta còn có thể cho phép người dùng tải lên các tập tin thông qua biểu mẫu HTML. Để thực hiện việc này, chúng ta cần sử dụng thuộc tính enctype="multipart/form-data" trong thẻ <form>.
<form method="POST" action="upload.php" enctype="multipart/form-data">
<input type="file" name="avatar">
<input type="submit" value="Tải lên">
</form>
Sau khi người dùng đã chọn tập tin và gửi biểu mẫu đi, chúng ta cần xử lý tập tin này trong tập tin xử lý dữ liệu (upload.php trong ví dụ trên). Để lấy tên và đường dẫn tạm của tập tin, chúng ta sử dụng biến $_FILES.
$avatarName = $_FILES['avatar']['name']; // Lấy tên tập tin
$avatarTempPath = $_FILES['avatar']['tmp_name']; // Lấy đường dẫn tạm của tập tin
Sau đó, chúng ta có thể sử dụng các hàm có sẵn trong PHP như move_uploaded_file() để di chuyển tập tin tới vị trí mong muốn và lưu lại đường dẫn của tập tin này trong database.
$targetPath = "uploads/" . $avatarName; // Đường dẫn tới thư mục lưu trữ tập tin
if (!move_uploaded_file($avatarTempPath, $targetPath)) { // Di chuyển tập tin từ đường dẫn tạm sang đường dẫn vị trí mong muốn
echo "Có lỗi xảy ra khi tải lên tập tin!";
} else {
// Lưu đường dẫn của tập tin vào database
}
Kết luận: như vậy, chúng ta đã tìm hiểu cách lấy dữ liệu từ biểu mẫu HTML trong PHP một cách chi tiết. Chỉ cần thực hiện đúng các bước tạo biểu mẫu HTML, xử lý dữ liệu và kiểm tra dữ liệu đầu vào, chúng ta có thể dễ dàng lấy được dữ liệu từ biểu mẫu và áp dụng vào trong ứng dụng web của mình.
Hy vọng rằng bài viết này sẽ giúp ích cho bạn trong quá trình học tập và phát triển ứng dụng web bằng PHP.