Я не могу для жизни меня узнать, что с этим не так. Вероятно, это скрытое правило или глупая ошибка. Этот код предназначен для предотвращения одновременного создания пользователями одного и того же адреса электронной почты, но работает только для имени пользователя. Я что-то упустил или это просто глупая ошибка? Я использую два утверждения if, чтобы попытаться достичь этого (как отмечено комментариями), но он не работает.Застрял, пытаясь предотвратить создание дубликатов пользователей
Заранее спасибо
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['emailAddress'];
// Create connection
$conn = new mysqli($servername, $SQLusername, $SQLpassword, $DBname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysql_connect_error());
}
$sql = "SELECT * FROM `Login` WHERE `Username` LIKE '$username' AND `Password` LIKE '$password';";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$emailDB = $row['Email'];
$usernameDB = $row['Username'];
// username validation
if ($username == $usernameDB)
{
echo "Username '$username' is already taken!<br>";
exit;
}
//E-mail validation
if ($email == $emailDB)
{
echo "Email '$email' is already registered!<br>";
exit;
}
* но он не работает * Можете ли вы описать это немного больше ?! – Rizier123
Ваш запрос не выглядит так, как будто он проверяет, что вы хотите. Вам просто нужно подсчитать строки, соответствующие паролю или имени пользователя. Если они есть, у вас есть дубликат. Вы можете использовать = для запроса, а не как. –
Это также считается плохой практикой для хранения паролей с открытым текстом, но это еще одна история. –