PHP语言之表单进阶

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        .error {color: #FF0000;}
    </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 = formatted_input($_POST['name']);
        /********** Begin *********/
        if (!preg_match("/^[a-zA-Z ]*$/", $name)) {  
            $nameErr = '只允许字母和空格';  
            $name = '';  //格式非法,将$name变量清空  
        }  
        /********** End *********/
        /********** Begin *********/  
        if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) {  
            $emailErr = '非法的邮箱格式';  
            $email = '';  //格式非法,将$email变量清空  
        }  
        /********** End *********/
    }
    if (empty($_POST['email'])) {
        $emailErr = '邮箱是必需的';
    } else {
        $email = formatted_input($_POST['email']);
        /********** Begin *********/
    if (!preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i",$website)) {  
        $websiteErr = '非法的 URL 地址';  
        $website = '';  //格式非法,将$website变量清空  
    }  
        /********** End *********/
    }
        /********** Begin *********/
      if (empty($_POST['website'])) {
        $website = '';
    } else {
        $website = formatted_input($_POST['website']);
        /********** End *********/
    }
    if (empty($_POST['comment'])) {
        $comment = '';
    } else {
        $comment = formatted_input($_POST['comment']);
    }
    if (empty($_POST['gender'])) {
        $genderErr = '性别是必需的';
    } else {
        $gender = formatted_input($_POST['gender']);
    }
}
function formatted_input($data)
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    return $data;
}
?>

<p>
    <span class="error">* 为必需字段</span>
</p>
<form method="post" action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>">
    <label>
        姓名:<input type="text" name="name">
    </label>
    <span class="error">* <?php echo $nameErr;?></span>
    <br><br>
    <label>
        邮箱:<input type="text" name="email">
        <span class="error">* <?php echo $emailErr;?></span>
    </label>
    <br><br>
    <label>
        博客:<input type="text" name="website">
        <span class="error"><?php echo $websiteErr;?></span>
    </label>
    <br><br>
    <label>
        备注:<textarea name="comment" rows="5" cols="40"></textarea>
    </label>
    <br><br>
    <label>
        性别:<input type="radio" name="gender" value="male">男
        <input type="radio" name="gender" value="female">女
        <span class="error">* <?php echo $genderErr;?></span>
    </label>
    <br><br>
    <input type="submit" name="submit" value="提交">
</form>

<?php
echo '你输入的内容是:'."<br>";
echo $name."<br>";
echo $email."<br>";
echo $website."<br>";
echo $comment."<br>";
echo $gender."<br>";
?>
</body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

六弦绿漪。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值