php表单验证用户名及提交留言

今天应公司数据统计人员的要求,要求对网站收集数据的表单进行一个限制,及限制同一个电话号码只能提交一次表单,对于初学PHP的我就选择了这个简单的写法,貌似对数据库不太友好,管他的,先用着,等我学习更高层次的时候再来进行修改。

以下是重新写的一个示例PHP,是限制了用户名,这个也可以为PHP页面注册提供简单的思路。

<?php
/*首先设置几个变量,设置数据库连接参数*/
$host='localhost';
$name='root';
$pass='root';
$dbName='demo6';
/*先设置页面初始参数为空值,要不然HTML文件会报错。*/
$userName=$userNameErr=' ';
$userEmail=$userEmailErr=' ';
$userAge=$userAgeErr=' ';
$userSex='';
/*如果请求数据方式为POST*/
if($_SERVER['REQUEST_METHOD']=='POST'){
    $conn=mysqli_connect($host,$name,$pass,$dbName)or die('数据库连接失败'.mysqli_connect_error());//连接数据库
    /*验证用户名,邮箱,年龄都不为空*/
    if(!($_POST['user']=='')&&!($_POST['email']=='')&&!($_POST['age']=='')){
        /*设置变量为用户输入的值*/
        $userName=$_POST['user'];
        $userEmail=$_POST['email'];
        $userAge=$_POST['age'];
        /*设置数据库查询语句,查询数据表中是否有和用户名相同的数据,查询结果数量大于0则有,否则无*/
        $sql_select="SELECT username FROM user_info WHERE username='$userName'";
        $result=mysqli_query($conn,$sql_select);
        if(mysqli_num_rows($result)>0){
            $userNameErr='用户名已存在';
        }else{
            /*将数据插入数据库user_info表中*/
            $sql_into="INSERT INTO user_info (id,username,useremail,userage) VALUES ('','$userName','$userEmail','$userAge')";
            if(mysqli_query($conn,$sql_into)){
                echo '<script>alert("提交成功");location.href="message.php";</script>';
            }else{
                echo '数据提交失败'.mysqli_error($conn);
            }
            mysqli_close($conn);
    }
    }else{//
        if($_POST['user']==''){
            $userNameErr="用户名不能为空";
        }
        if($_POST['email']==''){
            $userEmailErr='邮箱不能为空';
        }
        if($_POST['age']==''){
            $userAgeErr='年龄不能为空';
        }
    }

    /*if($_POST['user']==''){
        $userNameErr="用户名不能为空";
    }
    if($_POST['email']==''){
        $userEmailErr='邮箱不能为空';
    }
    if($_POST['age']==''){
        $userAgeErr='年龄不能为空';
    }*/

    /*$userName=$_POST['user'];
    $userEmail=$_POST['email'];
    $userAge=$_POST['age'];
    $sql_select="SELECT username FROM user_info WHERE username='$userName'";
    $result=mysqli_query($conn,$sql_select);
    if(mysqli_num_rows($result)>=1){
        $userNameErr='用户名已存在';
    }else{
        $sql_into="INSERT INTO user_info (id,username,useremail,userage) VALUES ('','$userName','$userEmail','$userAge')";
        if(mysqli_query($conn,$sql_into)){
            echo '<script>alert("提交成功");location.href="message.php";</script>';
        }else{
                echo '数据提交失败'.mysqli_error($conn);
            }*/
}

?>

接下来是简单的前台页面,因为示例是把前台页面和后台文件写在一个php内的,所以action为空。

<!DOCTYPE html>
<html >
<head>
    <meta charset="UTF-8">
    <!DOCTYPE html>
    <html >
    <head>
        <meta charset="utf-8">
        <title>php表单用户名效验示例</title>
     
    </head>
<body>
<form action="" method="post">
    <span>用户名:</span><input type="text" name="user"><?php echo $userNameErr ?> <br>
    <span>邮  箱:</span><input type="email" name="email"><?php echo $userEmailErr ?> <br>
    <span>年  龄:</span><input type="number" name="age"><?php echo $userAgeErr ?><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

所需要的数据库自己补充。