Значит , шёл мой 4-ый день работы в PHP (и я всё больше стал сомневаться в своих умственных способностях) обучаюсь по видео урокам, естественно. Написал тут я код, который должен показывать, когда логин, или пароль неверен. А ОН ВООБЩЕ НИЧЕГО НЕ ВЫВОДИТ. Я полагаю, что возможно это всё из-за такой вот скобки "}". Я смотрел на этот код час, и не смог найти ошибки. ПОМОГИТЕ, ПОЖАЛУЙСТА! Код (Text): <?php require "db.php"; $data = $_POST; if( isset($data['do_login']) ) { $errors = array(); $user = R::findOne('users', 'login = ?', array($data['login'])); if ( $user ) { // логин существует if( password_verify($data['password'], $user->password)) { //Всё хорошо echo '<div style="color: green;">Success</div><hr>'; } else { $errors[] = 'Incorrect Password'; } } else { $errors[] = 'Login not found'; } if ( ! empty($errors) ) { echo '<div style="color:red;">'.array_shift($errors).'</div><hr>'; } } ?> <form action="login.php" method="POST"> <p> <p><strong>Login</strong></p> <input type="text" name="login"> </p> <p> <p><strong>Password</strong></p> <input type="password" name="password"> </p> <p> <button type="submit" name="do_ligin">on</button> </p> </form>
Не хватает листинга функции findOne. Если она возвращает значение, сопоставимое с false, то у Вас ничего и не будет выводиться.
Да,да, да. Я только что хотел "Maputo" ответить, что я там опечатался. А не подскажите, пожалуйста. У меня после этого исправления, пишет, что логин не найден, но он есть в БД.[/URL][/IMG] [/URL][/IMG] [/URL][/IMG]
после if( isset($data['do_login']) ) { вставь. может запрос не доходит var_dump($data['login']); а и еще почему много одинаковых логинов/emai этого не должно быть логин емаил уникальны
Вставил в код. Там появилась строчка сверху, которая считает кол-во символов в Логине. "Почему так много одинаковых Логинов?" - это ты про таблицу в MySql? Если да, то я просто тестил, смотрел, что получиться. Скрины: Я уже не знаю, что делать...
Ну во 1 я вижу что логин отправляется это хорошо. Во 2 удали все одинаковые записи. Они должны быть уникальны. а в твоем случае он ищет логин а их много и ошибка на этом моменте возникает и в 3 напомни что за библеотека для команды R::findOne в ней еще может быть ошибка и в 4 покажи скрин название столбцов.
Хз что за orm у тебя, используй findAll а не findOne. Если all вернёт записи, то проблема в том что выше тебе написали
так у тебя таблица называется _login а не login --- Добавлено --- или переименуй нормально таблицу или $user = R::findOne('users', '_login = ?', array($data['login']));