Làm thế nào để lấy dữ liệu từ biểu mẫu HTML trong PHP?

Ngày đăng: 05/07/2024   -    Cập nhật: 08/07/2024

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.

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.


Để 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.


Bình luận Facebook
Khóa học liên quan đến bài viết

KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS

56 giờ
Học Lập trình Front end hiện đại với ReactJS. Học làm chủ HTML, CSS, JS và thư viện JavaScript phổ biến nhất hiện nay. Sẵn sàng đi thực tập / đi làm ngay sau khóa học.

LẬP TRÌNH JAVA WEB VỚI FRAME WORK

40 giờ
Khóa học Lập trình JAVA Web với Framework giúp học viên nắm vững các kiến thức hiện nay như: JSF, Hibernate, Spring Boot. Sử dụng tốt một Framework rất nổi tiếng hiện nay là Spring Boot ... Biết cách kết hợp giữa Spring Boot với các công nghệ khác như: JPA, Hibernate, Restful WebServices.

Lập trình Web với Django

30
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

KHÓA HỌC LẬP TRÌNH PHP WEB

54 giờ
NIIT - ICT Hà Nội cung cấp Khóa học Lập trình Web Fullstack với PHP, phiên bản cập nhật lần thứ 5 (T8/2019). Dạy Lập trình PHP bài bản, chi tiết (từ Front-end đến Back-end)

Khóa học Lập trình Game Unity

40 giờ
Nắm vững các kiến thức C# hướng đối tượng, Có khả năng xây dựng và phát tiển các ý tường game của bản thân. Hiểu được những khái niệm và các vận hành của các tựa Game

KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG

50 giờ
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Lập trình PHP với Laravel Framework

42 giờ
Khóa học Lập trình PHP với Laravel Framework được NIIT - ICT HÀ NỘI xây dựng nhằm hoàn thiện kỹ năng lập trình web các các bạn đã biết Lập trình Web PHP thuần.

Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM

5 buổi
Khai giảng Khóa học C&B Excel tại TP HCM. Khóa học Tiền lương, Bảo hiểm xã hội, Phúc lợi... Sử dụng Excel giải quyết bài toán tính thuế TNCN, quy tình tính bảo hiểm...

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate

KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)

48 giờ
Khóa học Angular & TypeScript (Front end) sẽ giúp bạn làm chủ được nền tảng Angular từ đó phát triển được các ứng dụng mạnh mẽ, đa nền tảng.

Lập trình Android Nâng cao

56 giờ
Khóa học Android nâng cao cung cấp kiến thức và kỹ năng chuyên sâu về lập trình Android. Phát triển ứng dụng tiên triến như: Lập trình giao diện tùy biến, xử lý dữ liệu nâng cao
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!