PHP-表单

2 篇文章 0 订阅

1.PHP表单处理

PHP的超全局变量 GET _POST用于收集表单数据

一个简单的HTML表单如下

<html>
<head>
    <meta charset="utf-8">
</head>
<body>

<form action="welcome.php" method="post">
    Name:<input type="text" name="name"><br>
    E-mail:<input type="text" name="email"><br>
    <input type="submit">
</form>

</body>
</html>

当用户填写该表单并点击提交按钮后,表单会发送到名为”welcome.php”的PHP文件供处理,表单数据是通过HTTP POST方法发送的

如需显示出被提交的数据,可以简单的输出echo所有变量。

welcome.php如下

<html>
<head>
    <meta charset="utf-8">
</head>
<body>
<?php
    echo $_GET["name"];
    echo "<br>";
    echo $_GET["email"];
    echo "<br>";
?>
</body>
</html>

上述.php实例中我们的method方法使用了get方法,其实我们也可以使用post方法,那么他俩有什么区别呢?

.GET和POST都会创建关联数组,此数组包含键/值对,其中的键是表单控件的名称,值是来自用户输入数据。
.GET和POST被视作 GET _POST。他们都是超全局变量,这意味着对他们的访问无需考虑作用域,无需任何特殊代码,您能够从任何函数,类或文件访问他们
. GETURL. _POST是通过HTTP POST传递到当前脚本的变量数组

何时该使用GET?

通过GET方法从表单发送信息对任何人都是可见的。GET对所发的信息数量也有限制,大约在2000个字符左右,GET可以用来发送非敏感数据

何时用POST

通过POST方法从表单发送的信息对其他人是不可见的,并且对所发数据的数量也无限制

2.表单验证

对于HTML验证不仅可以防范垃圾邮件也可以防范黑客
具体实例如下

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style>
        .error {color: red;}
    </style>
</head>
<body>

<?php
    //定义变量并设置空值
    $nameErr = $emailErr = $genderErr = $websiteErr = "";
    $name = $email = $gender = $comment = $website = "";

    if($_SERVER['REQUEST_METHOD'] == 'POST'){
        if(empty($_POST['name'])){
            $nameErr = '姓名是必填的';
        }
        else{
            $name = test_input($_POST['name']);
            //检查姓名是否包含字母和空白符
            if(!preg_match('/^[a-zA-Z]*$/',$name)){
                $nameErr = '只允许字母和空格';
            }
        }
        if(empty($_POST['email'])){
            $emailErr = '电邮是必填的';
        }
        else{
            $email = test_input($_POST['email']);
            //检查电子邮件地址语法是否有效
            if(!preg_match('/([\w\-]+\@[\w\-]+\.[\w\-]+)/',$email)){
                $emailErr = '无效的email格式';
            }
        }
    }

    function test_input($data){
        $data = trim($data);
        $data = stripslashes($data);
        $data = htmlspecialchars($data);
        return $data
    }

?>

<h2>PHP 验证实例</h2>
<p><span>* 必须的字段</span></p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>">
    姓名:<input type="text" name="name">
    <span class="error"> * <?php echo $nameErr; ?></span>
    <br><br>
    电邮:<input type="text" name="email">
    <span class="error"> * <?php echo $emailErr; ?></span>
    <br><br>
    <input type="submit" name="submit" value="提交">
</form>

<?php
    echo "<h2>您的输入<h2>";
    echo $name;
    echo "<br>";
    echo $email;
    echo "<br>";
?>

</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值