检查数据库中是否已收到电子邮件

时间:2018-05-31 14:08:03

标签: php database

else if (isset($_POST['register'])) {
    $user = $_POST['username'];
    $pass = $_POST['password'];
    $email = $_POST['email'];
    $phash = sha1(sha1($pass."salt")."salt");

    $sql = "INSERT INTO users (id, username, password, email) VALUES ('', '$user', '$phash', '$email');";

    $result = mysqli_query($conn, $sql);
}

如何在此处添加电子邮件检查器,以便在注册时没有人可以拥有相同的电子邮件

2 个答案:

答案 0 :(得分:0)

您可以从记录中选择电子邮件,以查看是否有人收到此电子邮件或向电子邮件列添加唯一索引,以确保电子邮件字段是唯一的。顺便说一句,使用预备语句会更好。

答案 1 :(得分:0)

如上所述,你应该使用预备语句,但是使用mysqli_real_escape_string和htmlspecialchars也是防止sql注入的好方法,关于你的答案,你必须选择你的表来查看是否存在如下所示的电子邮件:

    if (isset($_POST['register'])) {
        $user = $_POST['username'];
        $pass = $_POST['password'];
        $email = $_POST['email'];
        $phash = sha1(sha1($pass."salt")."salt");
    $sql = mysqli_query($conn,"SELECT email FROM users WHERE email = '{$mail}'");

    if(mysqli_num_rows($sql) > 0)
    {
    echo "Email exist";
    }else
    {
        $sql = "INSERT INTO users (`username`, `password`, `email`) VALUES ('$user', '$phash', '$email')";
        $result = mysqli_query($conn, $sql);

 }   
}

最好用这个"`"包装你的列名,如果你的id是自动增量,省略id列,你不需要在INSERT查询中添加id列。