PHP - $_POST
PHP $_POST
$_POST chứa một mảng các biến được nhận thông qua phương thức HTTP POST.
Có hai cách chính để gửi biến thông qua phương thức HTTP Post:
- biểu mẫu HTML
- Yêu cầu HTTP JavaScript
$_POST ở dạng HTML
Biểu mẫu HTML gửi thông tin qua phương thức HTTP POST nếu thuộc tính method
của biểu mẫu được đặt thành "POST"
.
Để chứng minh điều này, chúng tôi bắt đầu bằng cách tạo một biểu mẫu HTML đơn giản:
Biểu mẫu HTML
<html>
<body>
<form method="POST" action="demo_request.php">
Name: <input type="text" name="fname">
<input type="submit">
</form>
</body>
</html>
Khi người dùng nhấp vào nút gửi, dữ liệu biểu mẫu sẽ được gửi đến tệp PHP được chỉ định trong thuộc tính action
của thẻ <form>
.
Trong tệp hành động, chúng ta có thể sử dụng biến $_POST
để thu thập giá trị của trường đầu vào.
tập tin PHP
$name = $_POST['fname'];
echo $name;
Trong ví dụ bên dưới, chúng tôi đã đặt biểu mẫu HTML và mã PHP trong cùng một tệp PHP.
Chúng tôi cũng đã thêm một số dòng bổ sung để bảo mật.
Ví dụ
<html>
<body>
<form method="POST" action="<?php echo $_SERVER['PHP_SELF'];?>">
Name: <input type="text" name="fname">
<input type="submit">
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = htmlspecialchars($_POST['fname']);
if (empty($name)) {
echo "Name is empty";
} else {
echo $name;
}
}
?>
</body>
</html>
Hãy tự mình thử »$_POST trong các yêu cầu HTTP JavaScript
Khi gửi yêu cầu HTTP bằng JavaScript, bạn có thể chỉ định rằng phương thức HTTP là POST.
Để chứng minh điều này, chúng tôi bắt đầu bằng cách tạo một hàm JavaScript chứa yêu cầu HTTP:
hàm JavaScript
function myfunction() {
const xhttp = new XMLHttpRequest();
xhttp.open("POST", "demo_phpfile.php");
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.onload = function() {
document.getElementById("demo").innerHTML = this.responseText;
}
xhttp.send("fname=Mary");
}
}
Đoạn mã trên sẽ:
- Bắt đầu một yêu cầu HTTP
- Đặt phương thức HTTP thành POST
- Đặt tiêu đề yêu cầu hợp lệ
- Tạo một hàm để thực thi khi yêu cầu được thực hiện
- Gửi yêu cầu HTTP với
fname
biến được đặt thànhMary
Hãy xem hàm sẽ được thực thi khi yêu cầu được thực hiện:
xhttp.onload = function() {
document.getElementById("demo").innerHTML = this.responseText;
}
Nó sẽ cố gắng viết phản hồi từ thao tác trong phần tử HTML với id="demo"
.
Chúng ta hãy tạo một trang HTML có thành phần như vậy và cũng có một nút thực thi chức năng.
Nếu chúng tôi cũng thêm JavaScript, trang sẽ trông như thế này:
Ví dụ
Cách đăng và nhận dữ liệu từ yêu cầu HTTP:
<html>
<script>
function myfunction() {
const xhttp = new XMLHttpRequest();
xhttp.open("POST", "demo_ajax.php");
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.onload = function() {
document.getElementById("demo").innerHTML = this.responseText;
}
xhttp.send("fname=Mary");
}
}
</script>
<body>
<button onclick="myfunction()">Click me!</button>
<h1 id="demo"></h1>
</body>
</html>
Hãy tự mình thử » Trong tệp PHP nhận yêu cầu HTTP này ( demo_ajax.php
), chúng tôi chỉ cần sử dụng biến $_POST
để truy xuất biến fname
và ghi nó dưới dạng phản hồi.
tập tin PHP
$name = $_POST['fname'];
echo $name;