Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 09.04.2014
Сообщений: 64

Авторизация не проходит

13.08.2014, 17:50. Показов 2612. Ответов 32
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток!
Помогите пожалуйста понять, куда дальше рыть в авторизации:
1) Есть таблица:
SQL
1
2
3
4
5
6
7
8
9
10
CREATE TABLE IF NOT EXISTS `user_web` (
 `id` INT(10) UNSIGNED NOT NULL DEFAULT '0',
 `username` VARCHAR(24) DEFAULT NULL,
 `password` CHAR(32) DEFAULT NULL,
 `number` VARCHAR(13) DEFAULT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `UNIQUE` (`username`),
 KEY `number` (`number`),
 KEY `password` (`password`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 COMMENT='Авторизация';
2) Есть вот такое пояснение от человека:
PHP
1
2
3
4
5
Поле password хранит хеш пароля $phash из исходного слова $password,
введенного пользователем
 
$phash = strrev ($password);
$phash = strrev (substr (sha1($phash).md5($phash), 23, 32));
3) Пытался авторизовать пользователя так:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
if($_POST){
    $username = $_POST['username'];
    $password = md5($_POST['password']);
 
 
    $username = mysql_real_escape_string(trim(strip_tags($username)));
    $password = mysql_real_escape_string(trim(strip_tags($password)));
 
    $sql_user ="SELECT count(*) FROM users WHERE username = '$username' AND password = '$password'";
 
    $query_up = mysql_query($sql_user) or die(mysql_error());
    $num = mysql_fetch_row($query_up);
    if($num[0] == 0)  header('Location:index_login.php');
    else{
        $_SESSION['username'] = $username;
        header('Location:index_user.php');
 
    }
но авторизация не проходит.
Помогите пожалуйста, добрые и великие PHP программисты
Спасибо за внимание и удачного дня
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
13.08.2014, 17:50
Ответы с готовыми решениями:

Авторизация не проходит
написал такой скрипт, только вот не пойму почему всегда срабатывает что "авторизация не прошла", хотя введенные данные в БД...

Регистрация проходит, авторизация - нет
<? $connect = mysql_connect("localhost", "root") or die(mysql_error()); mysql_select_db("tutorials"); if(isset($_POST)) { ...

Не проходит авторизация через curl
Всем доброго утра, народ помогите пожалуйста с авторизацией через curl, третий день ломаю голову, не могу авторизоваться на сайте...

32
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
13.08.2014, 17:55
Rails Zombie, ошибок почему авторизация не проходит может быть несколько.

- нет доступа к бд
- не срабатывает Select
- нет записей в бд.

Вам надо делать Trace кода и смотреть, как заполняется user, password, выполняется ли Select и т.д.
1
0 / 0 / 0
Регистрация: 09.04.2014
Сообщений: 64
13.08.2014, 17:59  [ТС]
chizz, всё прекрасно авторизируеться, если я в базе изменю пароль и укажу MD5 вот так
http://rghost.ru/57447950/image.png
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
13.08.2014, 18:00
PHP
1
2
3
4
5
if($_POST){
    $username = $_POST['username'];
    $password = strrev($_POST['password']);
    $password = strrev (substr (sha1($password).md5($password), 23, 32));
    ....
1
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
13.08.2014, 18:10
Вот статья по отладке PHP кода http://www.vanchester.ru/node/47
1
0 / 0 / 0
Регистрация: 09.04.2014
Сообщений: 64
13.08.2014, 18:11  [ТС]
Dolphin, спасибо Вам огромное за ответ.
Всё сделал, как Вы написали. Теперь я создал юзера с логином: demotest1, и паролем: demotest1 сохранил в md5 пароль, но теперь авторизация не проходит. Может мне нужно теперь пароль не в MD5 хранить?
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
13.08.2014, 18:13
Цитата Сообщение от Rails Zombie Посмотреть сообщение
сохранил в md5 пароль
А обычной регистрации что на сайте нет?
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
13.08.2014, 18:14
Rails Zombie, вам нужно, чтобы в базе у вас хранилось то же самое

$password = strrev (substr (sha1($password).md5($password), 23, 32)); - вот это в базе должно быть
0
0 / 0 / 0
Регистрация: 09.04.2014
Сообщений: 64
13.08.2014, 18:23  [ТС]
Dolphin, есть, но у меня к ней нет доступа. Нужно только авторизировать пользователя на поддомене.

Добавлено через 4 минуты
chizz, вот у меня так храниться юзер сейчас
http://rghost.ru/57448347/image.png
Неправильно?
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
13.08.2014, 18:26
Rails Zombie, так сравните, что возвращает вам $password = strrev (substr (sha1($password).md5($password), 23, 32));
и что хранится в базе. Если совпадает - значит проблема в чем-то другом. Если нет, то добейтесь того, чтобы в $password было то, что в базе.

Каким образом пароль записывается в базу? Вы пишете добавление пользователя или это сторонний скрипт? Но в этом случае я не понимаю откуда у вас доступ к базе..
0
 Аватар для Dolphin
814 / 797 / 201
Регистрация: 21.09.2012
Сообщений: 2,656
13.08.2014, 18:29
Цитата Сообщение от Rails Zombie Посмотреть сообщение
Неправильно?
Как хешируешь пароль при регистрации, также нужно его получать и при авторизации
2
0 / 0 / 0
Регистрация: 09.04.2014
Сообщений: 64
13.08.2014, 18:32  [ТС]
chizz, мне скинули базу с демо данными для того, чтобы запилил авторизацию. Единственное, что сказали:
Хеш пароля для юзера 999 соответствует паролю 123456789
Можете копировать этот хеш для любого аккаунта
и у него будет пароль 123456789
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
13.08.2014, 18:36
Цитата Сообщение от Rails Zombie Посмотреть сообщение
Хеш пароля
Каким образом этот хэш формируется? Может быть это просто md5 без всякой соли.
Попробуй без соли захешировать. Просто md5($str) или password_hash($str, PASSWORD_DEFAULT)
1
0 / 0 / 0
Регистрация: 09.04.2014
Сообщений: 64
13.08.2014, 18:59  [ТС]
chizz, я сам без понятия.
Это мне вместо вот этой строки
PHP
1
$password = strrev(substr(sha1($password).md5($password), 23, 32));
Нужно написать

PHP
1
$password = password_hash($password, PASSWORD_DEFAULT)
?

Добавлено через 6 минут
PHP
1
$password = password_hash($password, PASSWORD_DEFAULT);
Прописал так строку и теперь после нажатия на кнопку войти, появляется полностью белая страница)
Уже хоть что-то новое
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
13.08.2014, 19:05
Rails Zombie, наверное открывается вот это header('Location:index_user.php');
1
0 / 0 / 0
Регистрация: 09.04.2014
Сообщений: 64
13.08.2014, 19:08  [ТС]
chizz, открывается файл в котором прописана строка
PHP
1
$password = password_hash($password, PASSWORD_DEFAULT);
То есть, не выбрасывает обратно ввести пароль или на авторизованную страницу.
0
 Аватар для chizz
993 / 521 / 102
Регистрация: 19.03.2013
Сообщений: 3,114
Записей в блоге: 19
13.08.2014, 19:09
Rails Zombie, значит вот этот кусок не работает

PHP
1
2
 $query_up = mysql_query($sql_user) or die(mysql_error());
    $num = mysql_fetch_row($query_up);
0
0 / 0 / 0
Регистрация: 25.12.2014
Сообщений: 12
25.12.2014, 14:15
Здравствуйте,
несмотря на то что мой первый сайт практически готов, но возникла проблема. Не получается авторизироваться на сайте, регистрация проходит.
Вот коды:
из index.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 case "login_cab":
            
        if(isset($_POST['enter']) && !empty($_POST['login']) && !empty($_POST['password'])) 
            {     
                $login = clear_data($_POST['login']);
                $pswd = sha1(md5(clear_data($_POST['password'])));
                if(check_user($login, $pswd))   
                {
                    
                    $_SESSION['username'] = $login; 
                    header('Location: index.php'); 
                }
                else header('Location: index.php'); 
            }
           
    break;
из reg_fns.php:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
    function check_user($login, $pswd)
    {
        db_connect();   
         
       $query = sprintf(" SELECT username FROM users WHERE users.username = '%s' AND users.password = '%s' ",
                        mysql_real_escape_string($login),
                        mysql_real_escape_string($pswd));
        
         $result = mysql_query($query);
        if(mysql_num_rows($result) > 0) return TRUE;
            else return FALSE;     
  
    }
из main.php:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<div id="login-form">
          <?if(empty($_SESSION['username'])){?>
            <form action="index.php?view=login_cab" method="post">
                <input type="text" name="login" value="Логин" onfocus="this.value=''" onclick="" />
                <input type="password" name="password" value="пароль" onfocus="this.value=''" onclick="" />
                <input type="submit" name="enter" value="Войти" class="enter" />
            </form>
            <div id="reg-links"><a href="index.php?view=signup">Регистрация   </a><a href="index.php?view=forgot">Забыли пароль?</a></div>
        &nbsp;
        
        <?}
        else{?>
            <div class="lk">Приветствую, <strong><?=$_SESSION['username'];?></strong>
            <a href="index.php?view=exit_cab">Выйти</a></div>
        <?}?>
        </div>
Подскажите, пожалуйста, в чем может быть проблема. Сайт делается по урокам Дмитрия Валака.
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
25.12.2014, 17:23
Цитата Сообщение от Рэн Посмотреть сообщение
WHERE users.username = '%s' AND users.password = '%s'
у тебя username and password равны?
0
0 / 0 / 0
Регистрация: 25.12.2014
Сообщений: 12
25.12.2014, 17:40
Нет, не равны
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.12.2014, 17:40
Помогаю со студенческими работами здесь

Не проходит авторизация, подскажите что не так?
Создан модуль регистрации и авторизации для сайта. Регистрация проходит нормально, но при входе под зарегистрированным ником ничего не...

Не проходит авторизация
Доброго времени суток. Помогите пожалуйста найти проблему: Для авторизации использую данную функцию проверки на пароль и блокировку,...

Не проходит авторизация
Всем привет. Есть веб-интерфейс для создания аудио-конференций. Проблема заключается в том, что не могу залогиниться в админку. Создаю базу...

Не проходит авторизация на сайте
Пытаюсь программно авторизоваться на сайте, но как бы не пытался, все ровно при запросе данных профила получаю ответ, что я не авторизован....

Не проходит авторизация Вконтакте
Здравствуйте, пытаюсь пройти авторизацию вк через POST запрос. Получаю action. Но при отправке запроса возвращает мне страницу с...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru