PHP - $_POST
PHP $_POST
$_POST 包含通过 HTTP POST 方法接收到的变量数组。
主要有两种方法可以通过 HTTP Post 方法发送变量
- HTML 表单
- JavaScript HTTP 请求
HTML 表单中的 $_POST
如果表单的 method
属性设置为 "POST"
,则 HTML 表单会通过 HTTP POST 方法提交信息。
为了演示这一点,我们首先创建一个简单的 HTML 表单
HTML 表单
<html>
<body>
<form method="POST" action="demo_request.php">
Name: <input type="text" name="fname">
<input type="submit">
</form>
</body>
</html>
当用户点击提交按钮时,表单数据将发送到 <form>
标签的 action
属性中指定的 PHP 文件。
在 action 文件中,我们可以使用 $_POST
变量来收集输入字段的值。
PHP 文件
$name = $_POST['fname'];
echo $name;
在下面的示例中,我们将 HTML 表单和 PHP 代码放在同一个 PHP 文件中。
我们还添加了一些额外的安全行。
示例
<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>
亲自试一试 »
JavaScript HTTP 请求中的 $_POST
在 JavaScript 中发送 HTTP 请求时,您可以指定 HTTP 方法为 POST。
为了演示这一点,我们首先创建一个包含 HTTP 请求的 JavaScript 函数
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");
}
}
上面的代码将
- 启动一个 HTTP 请求
- 将HTTP方法设置为POST
- 设置有效的请求头
- 创建一个在请求完成后执行的函数
- 发送HTTP请求,并将变量
fname
设置为Mary
查看请求完成后将执行的函数
xhttp.onload = function() {
document.getElementById("demo").innerHTML = this.responseText;
}
它将尝试将操作的响应写入具有id="demo"
的HTML元素中。
让我们创建一个包含此元素的HTML页面,以及一个执行该函数的按钮。
如果我们也添加JavaScript代码,页面看起来像这样
示例
如何发布和接收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>
亲自试一试 »
在接收此HTTP请求的PHP文件(demo_ajax.php
)中,我们只需使用$_POST
变量检索fname
变量,并将其作为响应写入。
PHP 文件
$name = $_POST['fname'];
echo $name;