Skip to content

表单接收模板

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 应用程序,提高代码质量和安全性。

© 2026 编程马·菜鸟教程 版权所有