今天应公司数据统计人员的要求,要求对网站收集数据的表单进行一个限制,及限制同一个电话号码只能提交一次表单,对于初学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 lang="en">
<head>
<meta charset="UTF-8">
<!DOCTYPE html>
<html lang="zh-CN">
<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>
所需要的数据库自己补充。
作者:Alone°李道长ご