mkramer, Код (PHP): $query =mysql_query("SELECT * FROM users WHERE login = '{$_POST['login']}' and password = '{$_POST['password']}'"); while ($row=mysql_fetch_assoc($query)){ if($row['login'] === $_POST['login'] && $row['password'] === $_POST['password']) { echo "Вы вошли успешно!"; } else { header('Location: login.php'); }; Почему не работает else? p.s. mysqli начну использовать чуть позже, когда разберусь с этим
Про SQL-инъекции читать не стали, а я вам ссылку давал. Про хеширование пароля - тоже. Потом, у вас логика работает хоть немного? Ну реально, надо же хоть чуть-чуть подумать, прежде чем делать хоть что-нибудь. Если вам выдался результат по вашему запросу, то условие уже гарантировано выполнено при том, как у вас составлен запрос. Поэтому else и не бывает. Зачем вам здесь цикл while, если у запроса только два варианта результата: 1 строка, если такой пользователь найден, или 0 строк, если не найден. Ещё куча всего, но даже обсуждать не хочется. Начинайте головой думать.
mkramer, да, знаю, что у меня с логикой проблемы и не только с ней Я просто не понимаю, как мне поставить условие "если эта строка в БД существует"
А с чтением документации русской проблемы тоже? Как там её, https://php.net/mysql_num_rows. Как у вас условие составлено в селекте, он вернёт 0 строк, если такого пользователя не существует или пароль не верный Добавлено спустя 2 минуты 37 секунд: А ещё я на ваш сайтик сделаю логин типа Код (PHP): '; delete from users; # И всё, снесу вам нафиг таблицу пользователей. Поскольку вы про sql-инъекции читать не хотите. Добавлено спустя 1 минуту 46 секунд: Если с логикой проблемы, нечего делать в программировании.