如何操作,以便人们无法多次使用相同的电子邮件地址注册。所以他们反而得到错误。喜欢"抱歉,这封电子邮件已经在使用"
这是我的代码:
<?php
if(isset($_POST["submit"])){
if(!empty($_POST['user']) && !empty($_POST['pass'])&& !empty($_POST['mail'])) {
$user=$_POST['user'];
$pass=$_POST['pass'];
$mail=$_POST['mail'];
$con=mysql_connect('localhost','root','123') or die(mysql_error());
mysql_select_db('ProjectC') or die("cannot select DB");
$query=mysql_query("SELECT * FROM login WHERE username='".$user."'");
$numrows=mysql_num_rows($query);
if($numrows==0)
{
$sql="INSERT INTO login(username,password,mail) VALUES('$user','$pass','$mail')";
$result=mysql_query($sql);
if($result){
echo "Account Successfully Created";
} else {
echo "Failure!";
}
} else {
echo "That username already exists! Please try again with another.";
}
} else {
echo "All fields are required!";
}
}
?>
答案 0 :(得分:1)
有几件事:
SELECT *
。SELECT something FROM table WHERE condition
执行SELECT COUNT(*) FROM table WHERE condition
,取得一行结果集,然后查看计数。mail
列上添加唯一约束。然后,该列中包含重复的插入将失败。mysql_
API,而是使用mysqli_
或PDO
。 mysql_
已被弃用,因为它非常不安全。答案 1 :(得分:0)
您需要在数据库表上设置UNIQUE约束,以便查询失败。
ALTER TABLE login ADD CONSTRAINT unique_email UNIQUE (mail)
运行此查询一次(或者从phpMyAdmin等数据库管理器工具设置唯一约束)将使插入查询失败并生成错误。