Я создаю свой личный сайт, чтобы продавать музыку и помогать местным артистам продвигать свою музыку. Тем не менее, я испытываю проблему.
Я создал страницу регистрации, где новый пользователь может быть зарегистрирован в системе. Сначала я попытался найти, существует ли электронное письмо в базе данных, чтобы в таблицах не было повторяющихся электронных писем. Я создал if
для этого утверждения, поэтому, когда утверждение истинно (имеется в виду, что найден дубликат электронной почты), оно печатает «электронная почта существует», но когда не находит никакой информации из БД, экран остается пустым, где должна быть выброшена другая часть оператора. в и напечатайте «письмо не найдено».
Может кто-нибудь помочь мне увидеть, где я ошибся? Вот мой код:
if ($_POST['submit2']){
$fname = $_POST['Fname'];
$sname = $_POST['Sname'];
$email = $_POST['Emailaddress'];
$pass = $_POST['newpassword'];
$sql= "select * from cust_information where email = '$email'";
$results = mysqli_query($conn, $sql) or die(mysqli_error($conn));
$row = mysqli_fetch_array($results) or die(mysqli_error($conn));
if($row > 0){
echo "email exists";
}elseif ($row <0){
echo "email doesnt exist";
}else{
echo "nothing was done";
}
}
удалить условие elseif
if($row > 0){
echo "email exists";
}else{
echo "email doesnt exist";
}
Прежде всего, ваш код уязвим для SQL-инъекция и вам нужно чтобы предотвратить это
Во-вторых, ваш ряд $row = mysqli_fetch_array
вернет массив, так что сравнение $array > 0
или же $array < 0
является недействительным. Лучше сравнить count($row) > 0
или же count($row) === 0
который будет сравнивать количество возвращаемых строк
Это все, что вам нужно:
if(count($row) > 0)
{
echo "email exists";
}
else
echo "email doesnt exist";
}
Ответ всегда будет 1 или 0, больше никогда не будет. Если массив имеет значение null, то это другая проблема, но вы не должны вставлять это как еще, если.
if($row > 0){
echo "email exists";
}
else{
echo "email does not.";
}
Я бы также предложил использовать PDO http://php.net/manual/en/book.pdo.php. Ваш текущий код оставляет вас широко открытыми для SQL-инъекций.