@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
Чебуратор тега РНР
Отладка и поиск ошибок в своем алгоритме.

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

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

Войти через центр авторизации
Похожие вопросы