Appearance
表单接收模板
GET 方式接收表单数据
表单示例
html
<form method="get" action="process.php">
<label for="name">姓名:</label>
<input type="text" id="name" name="name">
<br>
<label for="age">年龄:</label>
<input type="number" id="age" name="age">
<br>
<input type="submit" value="提交">
</form>接收数据
php
<?php
// 接收 GET 数据
$name = isset($_GET['name']) ? $_GET['name'] : '';
$age = isset($_GET['age']) ? $_GET['age'] : '';
// 验证数据
if (empty($name)) {
echo "姓名不能为空";
exit;
}
if (empty($age) || !is_numeric($age)) {
echo "年龄必须是数字";
exit;
}
// 处理数据
echo "姓名:" . htmlspecialchars($name) . "<br>";
echo "年龄:" . htmlspecialchars($age) . "<br>";
?>POST 方式接收表单数据
表单示例
html
<form method="post" action="process.php">
<label for="username">用户名:</label>
<input type="text" id="username" name="username">
<br>
<label for="password">密码:</label>
<input type="password" id="password" name="password">
<br>
<input type="submit" value="登录">
</form>接收数据
php
<?php
// 接收 POST 数据
$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
// 验证数据
if (empty($username)) {
echo "用户名不能为空";
exit;
}
if (empty($password)) {
echo "密码不能为空";
exit;
}
// 处理数据
echo "用户名:" . htmlspecialchars($username) . "<br>";
echo "密码:***";
?>混合方式接收表单数据
表单示例
html
<form method="post" action="process.php?id=123">
<label for="name">姓名:</label>
<input type="text" id="name" name="name">
<br>
<input type="submit" value="提交">
</form>接收数据
php
<?php
// 接收 GET 数据
$id = isset($_GET['id']) ? $_GET['id'] : '';
// 接收 POST 数据
$name = isset($_POST['name']) ? $_POST['name'] : '';
// 验证数据
if (empty($id) || !is_numeric($id)) {
echo "ID 必须是数字";
exit;
}
if (empty($name)) {
echo "姓名不能为空";
exit;
}
// 处理数据
echo "ID:" . htmlspecialchars($id) . "<br>";
echo "姓名:" . htmlspecialchars($name) . "<br>";
?>文件上传表单
表单示例
html
<form method="post" action="upload.php" enctype="multipart/form-data">
<label for="file">选择文件:</label>
<input type="file" id="file" name="file">
<br>
<input type="submit" value="上传">
</form>接收数据
php
<?php
// 检查是否有文件上传
if (isset($_FILES['file'])) {
$file = $_FILES['file'];
// 检查上传错误
if ($file['error'] === UPLOAD_ERR_OK) {
// 检查文件类型
$allowed_types = array('image/jpeg', 'image/png', 'image/gif');
if (!in_array($file['type'], $allowed_types)) {
echo "只允许上传 JPEG、PNG 和 GIF 图片";
exit;
}
// 检查文件大小
$max_size = 2 * 1024 * 1024; // 2MB
if ($file['size'] > $max_size) {
echo "文件大小不能超过 2MB";
exit;
}
// 生成唯一文件名
$filename = uniqid() . '.' . pathinfo($file['name'], PATHINFO_EXTENSION);
$upload_dir = 'uploads/';
// 创建上传目录
if (!is_dir($upload_dir)) {
mkdir($upload_dir, 0777, true);
}
// 移动上传文件
$file_path = $upload_dir . $filename;
if (move_uploaded_file($file['tmp_name'], $file_path)) {
echo "文件上传成功:" . $filename;
} else {
echo "文件上传失败";
}
} else {
// 处理上传错误
switch ($file['error']) {
case UPLOAD_ERR_INI_SIZE:
echo "文件大小超过了 php.ini 中的限制";
break;
case UPLOAD_ERR_FORM_SIZE:
echo "文件大小超过了表单中的限制";
break;
case UPLOAD_ERR_PARTIAL:
echo "文件只上传了一部分";
break;
case UPLOAD_ERR_NO_FILE:
echo "没有上传文件";
break;
case UPLOAD_ERR_NO_TMP_DIR:
echo "临时文件夹不存在";
break;
case UPLOAD_ERR_CANT_WRITE:
echo "无法写入临时文件";
break;
case UPLOAD_ERR_EXTENSION:
echo "文件上传被扩展阻止";
break;
default:
echo "未知错误";
break;
}
}
} else {
echo "没有文件上传";
}
?>复选框表单
表单示例
html
<form method="post" action="process.php">
<label>兴趣爱好:</label>
<br>
<input type="checkbox" id="hobby1" name="hobbies[]" value="读书">
<label for="hobby1">读书</label>
<br>
<input type="checkbox" id="hobby2" name="hobbies[]" value="运动">
<label for="hobby2">运动</label>
<br>
<input type="checkbox" id="hobby3" name="hobbies[]" value="旅游">
<label for="hobby3">旅游</label>
<br>
<input type="submit" value="提交">
</form>接收数据
php
<?php
// 接收复选框数据
$hobbies = isset($_POST['hobbies']) ? $_POST['hobbies'] : array();
// 处理数据
if (empty($hobbies)) {
echo "请选择兴趣爱好";
} else {
echo "您选择的兴趣爱好:" . implode(', ', $hobbies);
}
?>下拉菜单表单
表单示例
html
<form method="post" action="process.php">
<label for="city">城市:</label>
<select id="city" name="city">
<option value="">请选择</option>
<option value="北京">北京</option>
<option value="上海">上海</option>
<option value="广州">广州</option>
<option value="深圳">深圳</option>
</select>
<br>
<input type="submit" value="提交">
</form>接收数据
php
<?php
// 接收下拉菜单数据
$city = isset($_POST['city']) ? $_POST['city'] : '';
// 验证数据
if (empty($city)) {
echo "请选择城市";
exit;
}
// 处理数据
echo "您选择的城市:" . htmlspecialchars($city);
?>文本域表单
表单示例
html
<form method="post" action="process.php">
<label for="message">留言:</label>
<br>
<textarea id="message" name="message" rows="4" cols="50"></textarea>
<br>
<input type="submit" value="提交">
</form>接收数据
php
<?php
// 接收文本域数据
$message = isset($_POST['message']) ? $_POST['message'] : '';
// 验证数据
if (empty($message)) {
echo "留言不能为空";
exit;
}
// 处理数据
echo "您的留言:" . htmlspecialchars($message);
?>总结
本文提供了 PHP 中处理各种表单的模板,包括 GET 方式接收表单数据、POST 方式接收表单数据、混合方式接收表单数据、文件上传表单、复选框表单、下拉菜单表单和文本域表单等。这些模板可以作为开发中的参考,帮助你快速实现表单处理功能。
在使用这些模板时,应该注意以下几点:
- 对输入数据进行验证和过滤
- 使用 htmlspecialchars() 函数防止 XSS 攻击
- 对文件上传进行严格的验证
- 遵循最佳实践和编码规范
通过使用这些模板,你可以更高效地开发 PHP 应用程序,提高代码质量和安全性。
