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>
所需要的数据库自己补充。