Php 如何获取已在使用的邮件的错误消息?
如何做到这一点,使人们不能注册同一个电子邮件地址多次。所以他们反而得到了一个错误。很抱歉,此电子邮件已被使用 这是我的密码:Php 如何获取已在使用的邮件的错误消息?,php,email,Php,Email,如何做到这一点,使人们不能注册同一个电子邮件地址多次。所以他们反而得到了一个错误。很抱歉,此电子邮件已被使用 这是我的密码: <?php if(isset($_POST["submit"])){ if(!empty($_POST['user']) && !empty($_POST['pass'])&& !empty($_POST['mail'])) { $user=$_POST['user']; $pass=$_POST['pass'
<?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!";
}
}
?>
您需要在数据库表上设置唯一约束,以便查询失败
ALTER TABLE login ADD CONSTRAINT unique_email UNIQUE (mail)
运行此查询一次或从数据库管理器工具(如phpMyAdmin)设置唯一约束将导致插入查询失败并生成错误。以下几点:
当可以枚举列名时,不要使用SELECT*。
获取结果集。MySQL无法很好地处理未蚀刻的结果集。
不要从条件所在的表中选择内容,而是从条件所在的表中选择COUNT*,获取一行结果集,然后查看计数。
考虑在邮件列上设置唯一约束。然后,在该列中包含重复项的插入将失败。
不要使用mysqlapi,而是使用mysqli或PDO。mysql已经被弃用,因为它非常不安全。
那么到底是什么问题呢?你有错误吗?错误的结果?该代码怎么不这样做?Pepole可以使用同一封电子邮件注册两次。但我不想那样。因此,他们会收到一条错误消息。示例抱歉,但电子邮件已在使用mysql_uu函数已被弃用,请使用或代替mysql_uuu函数。此代码中存在SQL注入漏洞-不要激活!