使用php写一个数据收集表单

以下是一个使用PHP编写的简单数据收集表单:

<!DOCTYPE html>
<html>
<head>
    <title>Data Collection Form</title>
</head>
<body>
    <?php
    // 定义变量并初始化为空
    $name = $email = $age = "";

    // 定义错误信息变量并初始化为空
    $nameErr = $emailErr = $ageErr = "";

    // 处理表单提交
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        // 验证姓名
        if (empty($_POST["name"])) {
            $nameErr = "姓名是必填项";
        } else {
            $name = test_input($_POST["name"]);
        }

        // 验证邮箱
        if (empty($_POST["email"])) {
            $emailErr = "邮箱是必填项";
        } else {
            $email = test_input($_POST["email"]);
            if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
                $emailErr = "无效的邮箱格式";
            }
        }

        // 验证年龄
        if (empty($_POST["age"])) {
            $ageErr = "年龄是必填项";
        } else {
            $age = test_input($_POST["age"]);
            if (!is_numeric($age) || $age < 1 || $age > 120) {
                $ageErr = "无效的年龄";
            }
        }
    }

    // 清除不必要的字符(空格、标签等)
    function test_input($data) {
        $data = trim($data);
        $data = stripslashes($data);
        $data = htmlspecialchars($data);
        return $data;
    }
    ?>

    <h2>Data Collection Form</h2>
    <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
        <label for="name">姓名:</label>
        <input type="text" name="name" id="name">
        <span class="error"><?php echo $nameErr; ?></span>
        <br><br>

        <label for="email">邮箱:</label>
        <input type="text" name="email" id="email">
        <span class="error"><?php echo $emailErr; ?></span>
        <br><br>

        <label for="age">年龄:</label>
        <input type="text" name="age" id="age">
        <span class="error"><?php echo $ageErr; ?></span>
        <br><br>

        <input type="submit" name="submit" value="提交">
    </form>

    <?php
    // 如果表单提交且没有错误,则显示收集到的数据
    if ($_SERVER["REQUEST_METHOD"] == "POST" && $nameErr == "" && $emailErr == "" && $ageErr == "") {
        echo "<h2>收集到的数据:</h2>";
        echo "姓名: " . $name . "<br>";
        echo "邮箱: " . $email . "<br>";
        echo "年龄: " . $age . "<br>";
    }
    ?>
</body>
</html>

在上面的代码中,我们首先定义了一些变量来存储用户输入的数据(姓名、邮箱、年龄)以及错误信息。然后,我们通过$_SERVER["REQUEST_METHOD"]来检查表单是否已经提交,如果是的话,我们会验证表单数据。 对于每个字段,我们都检查是否为空,并在必要时添加错误信息。此外,我们还验证了邮箱字段的格式是否正确,以及年龄字段的值是否为有效的数字。 最后,我们使用htmlspecialchars()来确保用户输入的数据不包含任何恶意的HTML标签,并显示收集到的数据。

注意:上述代码仅为示例,并没有进行充分的验证和过滤。在实际应用中,还需要根据实际需求做更多的验证和过滤,以确保数据的安全性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值