PHP 表单学习笔记
一、表单基础知识
1.1 什么是表单
表单(Form)是一种在 Web 页面中用于收集用户输入信息的 HTML 元素。
1.2 表单元素
常见的表单元素有:
- <input>:用于输入框、单选框、复选框等。
- <select>:用于下拉菜单。
- <textarea>:用于多行文本输入。
- <button>:用于按钮。
1.3 表单提交
当用户填写完表单后,可以通过表单提交将用户输入信息发送到服务器。表单提交有两种方式:
- GET 方法:将表单数据附加在 URL 后,发送给服务器。
- POST 方法:将表单数据放在 HTTP 请求主体中,发送给服务器。
二、PHP 处理表单
2.1 接收表单数据
PHP 可以通过 $_GET 和 $_POST 超全局变量接收表单提交的数据。
- $_GET:用于接收 GET 方法提交的数据。
- $_POST:用于接收 POST 方法提交的数据。
示例代码:
Copy Code<form method="POST" action="submit.php">
<label>Username:</label>
<input type="text" name="username">
<br>
<label>Password:</label>
<input type="password" name="password">
<br>
<button type="submit">Submit</button>
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST["username"];
$password = $_POST["password"];
echo "Username: " . $username . "<br>";
echo "Password: " . $password . "<br>";
}
?>
2.2 表单验证
表单数据需要进行验证,以确保数据的合法性和安全性。常见的表单验证方式有:
- 空值验证:确保用户输入的内容不为空。
- 数据类型验证:确保用户输入的数据类型正确。
- 正则表达式验证:确保用户输入的数据符合特定的格式要求。
- 安全性验证:确保用户输入的数据安全。
示例代码:
Copy Code<form method="POST" action="submit.php">
<label>Username:</label>
<input type="text" name="username" required>
<br>
<label>Password:</label>
<input type="password" name="password" required>
<br>
<button type="submit">Submit</button>
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST["username"];
$password = $_POST["password"];
// 空值验证
if (empty($username) || empty($password)) {
echo "Please fill in all fields.";
return;
}
// 安全性验证
if (!preg_match("/^[a-zA-Z0-9]*$/", $username)) {
echo "Username contains illegal characters.";
return;
}
echo "Username: " . $username . "<br>";
echo "Password: " . $password . "<br>";
}
?>
三、示例
以下是一个简单的登录表单示例:
Copy Code<form method="POST" action="login.php">
<label>Username:</label>
<input type="text" name="username" required>
<br>
<label>Password:</label>
<input type="password" name="password" required>
<br>
<button type="submit">Login</button>
</form>
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = $_POST["username"];
$password = $_POST["password"];
// 空值验证
if (empty($username) || empty($password)) {
echo "Please fill in all fields.";
return;
}
// 安全性验证
if (!preg_match("/^[a-zA-Z0-9]*$/", $username)) {
echo "Username contains illegal characters.";
return;
}
// 模拟用户验证
if ($username == "admin" && $password == "123456") {
echo "Login success!";
} else {
echo "Wrong username or password.";
}
}
?>
该示例展示了如何通过 PHP 处理表单提交,进行表单验证和模拟用户验证。