Trong bài này, chúng ta sẽ tìm hiểu về cách xử lý html form với PHP. Để học tốt bài này, các bạn cần đọc lại bài Cài đặt môi trường lập trình Web PHP với XAMPP để biết cách chạy ứng dụng web PHP với XAMPP.
1. Xây dựng html form đơn giản
Một html form được sử dụng để thu thập dữ liệu (data) do user nhập vào. Sau đó, các dữ liệu này thường được gửi đến web server để xử lý. Thẻ <form>
được sử dụng để tạo html form trong html. Các thẻ <form>
chứa các thẻ khác để user nhập dữ liệu như <input>, <textarea>, <button>,…
1.1. Xây dựng html form trong file .html
<html>
<head>
<title>Welcome to gochocit.com!</title>
</head>
<body>
<form action="welcome.php" method="post">
<b>Please, let we know who are you?</b><br>
Name:<br>
<input type="text" name="name"><br>
E-mail:<br>
<input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Trong ví dụ trên, thẻ <form> gồm thẻ <input> với type="text"
để user nhập dữ liệu. Thẻ <input> với type="submit"
giúp định nghĩa một button để gửi dữ liệu trong form đến web server. Với action="welcome.php" method="post"
, dữ liệu sẽ được gửi đến file welcome.php
trên web server để xử lý với method="post"
.
1.2. Xây dựng html form trong file .php
<html>
<head>
<title>Welcome to gochocit.com!</title>
</head>
<body>
<form action="welcome.php" method="post">
<b>Please, let we know who are you?</b><br>
Name:<br>
<input type="text" name="name"><br>
E-mail:<br>
<input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Trong file .php
, các bạn có thể nhúng các thẻ html như là trong file .html
.
2. Gửi dữ liệu từ html form đến php script
Khi nhấn button Submit, dữ liệu trong form sẽ được gửi đến file welcome.php
để xử lý. Chúng ta sẽ sử dụng 2 biến superglobals là $ _ GET
và $_POST
để lấy dữ liệu được gửi từ html form.
2.1. Gửi dữ liệu với method=”post”
Khi dữ liệu mà user nhập vào được gửi với method="post"
, chúng sẽ được ẩn với người dùng. Những dữ liệu này sẽ được gửi trong body của http request và không hiển thị trên url. Nếu sử dụng method="post"
, số lượng dữ liệu được gửi là không giới hạn.
<html>
<head>
<title>Welcome to gochocit.com!</title>
</head>
<body>
Welcome <b><?php echo $_POST["name"]; ?></b><br>
Your email address is <?php echo $_POST["email"]; ?>
</body>
</html>
Sử dụng biến $_POST
và thuộc tính name của thẻ <input> để lấy các dữ liệu được gửi từ html form. Ví dụ, $_POST["name"]
hay $_POST["email"]
.
Ví dụ, chúng ta request file index.php
chứa html form và nhập dữ liệu vào html form.
Sau đó, nhấn button Submit để gửi dữ liệu đến welcome.php
và được kết quả như bên dưới.
2.2. Gửi dữ liệu với method=”get”
Khi dữ liệu mà user nhập vào được gửi với method="get"
, chúng sẽ không được ẩn với người dùng. Những dữ liệu này sẽ được hiển thị trên url. Nếu sử dụng method="get"
, số lượng dữ liệu được gửi sẽ bị giới hạn khoảng 2000 ký tự.
<html>
<head>
<title>Welcome to gochocit.com!</title>
</head>
<body>
Welcome <b><?php echo $_GET["name"]; ?></b><br>
Your email address is <?php echo $_GET["email"]; ?>
</body>
</html>
Sử dụng biến $_GET
và thuộc tính name của thẻ <input> để lấy các dữ liệu được gửi từ html form. Ví dụ, $_GET["name"]
hay $_GET["email"]
.
Ví dụ, chúng ta request file index.php
chứa html form và nhập dữ liệu vào html form.
Sau đó, nhấn button Submit để gửi dữ liệu đến welcome.php
và được kết quả như bên dưới.
Khi gửi những dữ liệu không cần bảo mật thì có thể dùng method="get"
. Lưu ý: mật khẩu hoặc những dữ liệu quan trọng KHÔNG BAO GIỜ được gửi với method="get"
.