$_POST 是一个超级全局变量,在 PHP 中用于收集通过 HTTP POST 方法发送到服务器的数据。与 $_GET 不同,$_POST 允许发送大量数据,且数据不会显示在 URL 中,因此更适用于提交敏感信息,如用户登录信息、表单数据等。
使用 $_POST 的基本情况
表单提交:通常用于 HTML 表单的提交,表单的 method 属性设置为 POST:
html
<form action="submit.php" method="POST">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" value="提交" />
</form>
关闭控制台
访问数据:在 submit.php 中,你可以使用 $_POST 来获取提交的表单数据:
<?php
$username = $_POST['username']; // 获取用户名
$password = $_POST['password']; // 获取密码
特点
数据安全性:虽然 $_POST 数据不会显示在 URL 中,但仍需对用户输入进行适当处理和验证,以防止安全漏洞(如 SQL 注入和 XSS 攻击)。
没有长度限制:与 GET 请求不同,POST 请求的数据量没有严格的限制,适合上传文件或发送大量数据。
适用于数据提交:POST 方法通常用于提交数据,如用户注册、登录、评论等。
示例
以下是一个简单的示例,演示如何使用 $_POST:
<?php
// 假设 URL 是 http://example.com/submit.php
// 在 submit.php 中
if (isset($_POST['username']) && isset($_POST['password'])) {
$username = htmlspecialchars($_POST['username']); // 处理用户输入以防止 XSS
$password = $_POST['password']; // 通常需要进行哈希处理
// 进行用户验证或其他操作
echo "欢迎, $username!";
} else {
echo "请填写用户名和密码。";
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>表单验证</title>
</head>
<body>
<form action="16.php" method="post">
姓名: <input type="text" value="请输入姓名" name="name"><br><br> <?php echo $name ?>
性别: <input type="text" name="gender" >
<input type="submit" name="submit" value="提交">
</form>
<?php
$name = $POST['name'];
echo $name;
echo "<br>";
$gender = $POST['gender'];
echo $gender;
?>
</body>
</html>
效果图: