我正在使用php在mysql注册用户,但在注册之前,我正在检查电子邮件,使用户与相同的电子邮件不能注册,但即使在检查条件后,一个以上的用户能够注册与相同的电子邮件。
下面是我的代码:
<?php
require_once('dbconfig.php');
$uid = $_POST['uid'];
$name = $_POST['name'];
$email = $_POST['email'];
$row = "SELECT `email` FROM `Users` WHERE `email` = '$email'";
$row_result = mysqli_query($con,$row);
if(mysqli_num_rows($row_result)){
echo "User exists";
}
else{
$sql = "INSERT INTO `Users` (`id`, `name`, `email`)
VALUES ('$uid', '$name', '$email')";
$result = mysqli_query($con,$sql);
if($result){
echo "user created";
}
else{
echo "Unable to authenticate";
}
mysqli_close($con);
}
?>
请让我知道我做错了什么。任何帮助都将不胜感激。
谢谢
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
$row = "SELECT `email` FROM `Users` WHERE `email` =
'".mysqli_real_escape_String($conn, $email)."'";
试试这个代码,也许会对你有帮助。 在phpmyadmin中运行query并查看响应,然后继续。 总是转义您的数据,当它发送到数据库,因为您是开放的Sql注入。 决不信任用户
您需要询问结果返回的行数是否超过0
if(mysqli_num_rows($row_result) > 0){
^^^^^
echo "User exists";
}