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);
}
如何在此处添加电子邮件检查器,以便在注册时没有人可以拥有相同的电子邮件
答案 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列。