Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何获取已在使用的邮件的错误消息?_Php_Email - Fatal编程技术网

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注入漏洞-不要激活!