@Kevgar

Найти ошибку в коде скрипта входа?

Скрипт выводит ошибку, что неверный логин или пароль

if(isset($_POST['submit'])) { //Если нажата кнопка
        if(empty($_POST['login']) || empty($_POST['password'])) { //Если пусты поля
          echo '<div class="alert alert-danger" role="alert">Заполните все поля!</div>';
        } else {
          $login = $_POST['login']; //Заносим в переменные
          $login = trim($login);
          $password = md5(md5($_POST['password']));
          mysql_connect("mysql.hostinger.ru","u752209951_1","***") or die(mysql_error());//Коннект к БД
          mysql_select_db("u752209951_1") or die(mysql_error());
          $query = mysql_query("SELECT * FROM users WHERE login=$login LIMIT 1"); // Проверка на сущестование
          if($query == false) { //Если не существует
            echo '<div class="alert alert-danger" role="alert">Неправильный логин или пароль</div>';
          } else {
            $array = mysql_fetch_array($query);//Массив
            if($array['password'] == $password) {//Проверка пароля
              $_SESSION['login'] = $login;
              $_SESSION['id'] = $array['id'];
              header( 'Refresh: 0; url=/cabinet' );
            }
          }
        }
    }


P.S - извините за mysql
  • Вопрос задан
  • 312 просмотров
Решения вопроса 2
b0nn1e
@b0nn1e
Alcohol & Ruby on Rails
После этой строки $array = mysql_fetch_array($query);//Массив
сделайте
print_r($array);
Точно не уверен, но скорее-всего должно быть так:
$array[0]['password'] == $password
Ответ написан
@skynetdev
Как можно проверять верный логин и пароль на успешное или не успшеное выполнение запроса?
даже если НЕ найдет логин и пароль но запрос выполнится успешно mysql_query выдаст вам true
Ваш вариант не правильный!
на счет того что у вас mysql_query всегда выдает false
возможно у вас не хватает прав для работы с таблией users
что бы точно узнать причину воспользуйтесь выводом ошибки с mysql
Измените строчку
echo '<div class="alert alert-danger" role="alert">Неправильный логин или пароль</div>';


на след
echo '<div class="alert alert-danger" role="alert">Неверный запрос: '.mysql_error().' </div>';

А этот комментарий
// Проверка на сущестование
//Если не существует


на этот
// Проверка на правильное выполнение запроса
//Если запрос неверный

И проверяйте правильный логин и пароль только когда у вас будет уже сама строка с БД т.е сам результат
Да и запрос нужно правильней писать
("SELECT * FROM users WHERE login='$login' LIMIT 1");

И вообще mysql_query устарел, переходите на mysqli

Я удивлен что тут за 2 часа, никто парню нормально не помог, неужели нет пхпшников на сайте или все программят? Прямо бЯда с пхпшниками
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
FanatPHP
@FanatPHP
Чебуратор тега РНР
Отладка и поиск ошибок в своем алгоритме.

Хотя нет - это тебе не годится. Нужен учебник по РНР.
возьми хоть Котерова что ли
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
27 апр. 2024, в 13:49
300000 руб./за проект
27 апр. 2024, в 13:30
30000 руб./за проект
27 апр. 2024, в 13:22
600 руб./за проект