Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 14
1

Ошибка не может войти на сайт php Авторизация на сайт

28.04.2018, 01:50. Показов 770. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Ввожу верный логин и пароль то он пишет 'Извините вы должны ввести правильный логин или пароль !!!
если ввожу не верный логин или пароль тоже самое пишет

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?php
 
          if(!isset($_SESSION['session_login'])) { 
            if (isset($_POST['do_login'])) {
               $user_login=htmlspecialchars(mysqli_real_escape_string($connect,trim($_POST['login'])));
               $user_password=htmlspecialchars(mysqli_real_escape_string($connect,trim($_POST['password'])));
             if (!empty($_POST['login']) && !empty($_POST['password'])){
                 // то все хорошо регистрируем!!!
                $result="SELECT * FROM `users` WHERE 'login' = '{$user_login}' AND 'password' = '{$user_password}'"; 
                $query=mysqli_query($connect,$result);
                $numr=mysqli_num_rows($query); 
                    if ($numr==1){
                      $sql_q="INSERT INTO `users` (login,password) VALUES('$user_login', SHA('$user_password'))"; 
                      $res=mysqli_query($connect,$sql_q);
                      if ($res) {
                        $message = "Вы успешно зашли в свой аккаунт !!!"; 
                      }
                       
                 } else {
                        echo '<p style="color:red;">'.'Извините вы должны ввести правильный логин или пароль !!!'.'</p>'; 
                    }   
               } 
               else {
                 // что то пошло не так!!!
                echo '<p style="color:red;">'. 'Извените вы должны заполнить поля правильно !!!'.'</p>';
               }
             }
           }          
          ?>
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2018, 01:50
Ответы с готовыми решениями:

Простая авторизация через форму html на сайт php
У меня есть сайт на php и форма на html. В форму я ввожу логин и пароль если данные верны то...

Может ли старый сайт поднимать другие сайты в поиске?К примеру сайт 1995 года?
Может ли старый сайт поднимать другие сайты в поиске?К примеру сайт 1995 года?

Сколько get запросов на другой сайт может сделать php?
Планируем интегрировать наш сайт с сайтом партнёров, но тк api у них нет то весь контент пока...

Не могу войти на сайт
Здравствуйте, может быть не в той теме создал сообщение, извиняйте. Такая проблема не могу войти...

8
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
28.04.2018, 02:04 2
Arisovvv, имена полей и таблиц, могут быть взяты (и это считается хорошим тоном) в "обратные" кавычки (гравис). Гравис принципиально отличается от одинарных кавычек: ` и '

Добавлено через 3 минуты

Не по теме:

P.S.

Цитата Сообщение от Arisovvv Посмотреть сообщение
htmlspecialchars(mysqli_real_escape_string($connect,trim($_POST['login'])));
Вы серьёзно думаете, что количество экранируемых и преобразующих функций, прямо пропорционально уровню защиты? :)

0
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 14
28.04.2018, 02:17  [ТС] 3
Ну не пустым же оставить
0
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
28.04.2018, 02:28 4
Цитата Сообщение от Arisovvv Посмотреть сообщение
Ну не пустым же оставить
Не понял... Это вы к чему?
0
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 14
28.04.2018, 02:36  [ТС] 5
htmlspecialchars(mysqli_real_escape_string
0
3325 / 2845 / 1423
Регистрация: 15.01.2014
Сообщений: 6,170
28.04.2018, 03:03 6
Arisovvv, для экранирования вполне достаточно mysqli_real_escape_string. А для большей защиты от тех же SQL-инъекций, лучше использовать подготавливаемые запросы. В отличии от тех, кто использует PDO, использующие MySQLi почему-то частенько пренебрегают этим функционалом.
Ну а по теме вопроса разобрались?

Добавлено через 15 минут
И еще... Не обратил сразу внимания, но какая-то странноватая логика получается:
Если логин и пароль не пусты, то ищем в базе запись с такими данными (зачем в условии пароль - абсолютно не ясно, но не важно). Если такая запись существует в единичном экземпляре, то записываем в базу опять пользователя с этим же логином, но только пароль хэшируем. Даже, если бы я не был уставшим, то всё равно не смог бы переварить такую логику.
0
0 / 0 / 0
Регистрация: 16.05.2017
Сообщений: 14
28.04.2018, 04:05  [ТС] 7
Тут такая же ошибка
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if(isset($_POST['do_login'])) {
                $user_login = mysqli_real_escape_string($connect, trim($_POST['login']));
                $user_password = mysqli_real_escape_string($connect, trim($_POST['password']));
                if(!empty($user_login) && !empty($user_password)) {
                  $query = "SELECT `id` , `login` FROM `users` WHERE login = '$user_login' AND password = SHA('$user_password')";
                  $data = mysqli_query($connect,$query);
                  if(mysqli_num_rows($data) == 1) {
                    $row = mysqli_fetch_assoc($data);
                    echo 'Добро пожаловать';
                  }
                  else {
                    echo 'Извините, вы должны ввести правильные имя пользователя и пароль';
                  }
                }
                else {
                  echo 'Извините вы должны заполнить поля правильно';
                }
              }
0
1113 / 554 / 320
Регистрация: 21.06.2012
Сообщений: 1,854
28.04.2018, 10:48 8
Очевидно же, что у Вас mysqli_num_rows($data) != 1 тогда вопрос: а чему равен mysqli_num_rows($data)?

Если 0, то значит не работает условие выборки. Попробуйте поменять условие, уберите пароль:
PHP
1
$query = "SELECT `id` , `login` FROM `users` WHERE login = '$user_login'";
если сработает, значит проблема в хранении или обработки паролей. И посмотрите что попадает в условие для выборки:
PHP
1
2
if(!empty($user_login) && !empty($user_password)) {
echo $user_login." - ".$user_password;
и сравните это с тем что в БД.
0
209 / 191 / 49
Регистрация: 15.03.2016
Сообщений: 1,211
28.04.2018, 10:52 9
Цитата Сообщение от Arisovvv Посмотреть сообщение
$user_login=htmlspecialchars(mysqli_real_escape_string($connect,trim($_POST['login'])));
сначала htmlspecialchars(), потом mysqli_escape_string()
пароль не надо слать в БД, надо вытащить из БД по логину и сравнить с присланным через http://php.net/manual/ru/funct... verify.php
0
28.04.2018, 10:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2018, 10:52
Помогаю со студенческими работами здесь

Программно войти на сайт
Доброго времени суток. Если кто может тогда подскажите как можно сделать чтобы если логин и пароль...

Не могу войти на сайт
Здравствуйте! Купил домен и подключил хостинг у hostgator. Все настроил, как они сказали, но есть...

Упал сайт, ошибка в mysql.php
Доброй ночи! Парсил сайт с донора, как вдруг, в таске парсера выскакивает ошибка парсера и ссыль...

Ошибка: сайт пока не может обработать этот запрос (HTTP ERROR 500)
Ошибка: сайт пока не может обработать этот запрос (HTTP ERROR 500) ?php if...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru