Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Авторизация / 14 сообщений из 14, страница 1 из 1
21.07.2015, 14:18:29
    #39012339
mishanya3624
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Приветствую!
Пытаюсь сделать простую авторизацию посредством php + mysql
вот форма ввода:
Код: html
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.
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="UTF-8"/>
</head>
<body>
<form action="ind.php" method="post">
    <table>
        <tr>
            <td>Логин:</td>
            <td><input type="text" name="username" /></td>
        </tr>
        <tr>
            <td>Пароль:</td>
            <td><input type="char" name="password" /></td>
        </tr>
        <tr>
            <td></td>
            <td><input type="submit" value="Войти" /></td>
        </tr>
    </table>
</form>
</body>
</html>



вот сам запрос и сравнение:
Код: 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.
<?php
include "db.php";
if (isset($_POST['username']) && isset($_POST['password']))
{
    $username = mysql_real_escape_string($_POST['username']);
    $password = md5($_POST['password']);

    // делаем запрос к БД
    // и ищем юзера с таким логином и паролем

    $query = mysql_query("SELECT *
            FROM `users`
            WHERE username = '$username' AND password = '$password' ");
    
    // если такой пользователь нашелся
    if (mysql_num_rows($query) == 1) { 
       
         echo 'YES';
        // не забываем, что для работы с сессионными данными, у нас в каждом скрипте должно присутствовать session_start();
    }
    else {
        die('NO');
    }
}
?>



подключение к базе стандартное.

Не работает сверка по полю password, то есть, чтобы я не вводил всегда false, но как только из запроса убираю сравнение по password, а именно эту часть:
Код: plsql
1.
AND password = '$password'


То сверка по логину проходит и все гуд, в мускуле пароли храняться в хэше, я ему тоже делаю сравнение вводимого пароля по md5, что не так?
...
Рейтинг: 0 / 0
21.07.2015, 14:19:41
    #39012343
mishanya3624
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Так тоже пробовал:
$password = md5(mysql_real_escape_string($_POST['password']));
...
Рейтинг: 0 / 0
21.07.2015, 14:37:00
    #39012368
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
используйте ф-ю MySQL PASSWORD(...) для проверки
Код: sql
1.
AND password = PASSWORD('$password')
...
Рейтинг: 0 / 0
21.07.2015, 14:53:52
    #39012398
mishanya3624
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Не получается, так только пустые пароли сравнивает, где есть какое-то значение все равно false.
...
Рейтинг: 0 / 0
22.07.2015, 13:23:37
    #39013338
mishanya3624
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Спасибо за помощь, ответ таков:
Сами пароли были не скульные, а генерились на стороне и уже хешированные заливались а базу, а мускуль такой хэш не понимает ибо он sha512.
Пока есть возможность, спрошу:
Как можно максимально просто сделать невозможность входа на последующие страницы хоста, не пройдя аутентификацию?
...
Рейтинг: 0 / 0
22.07.2015, 13:44:38
    #39013362
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
mishanya3624,

ну так и делают, примеры посмотрите, допустим здесь
логика простая, если сессия устарела, либо входа не было - перенаправление на стр. или форму аутентификации
...
Рейтинг: 0 / 0
22.07.2015, 15:40:20
    #39013509
mishanya3624
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Спасибо.
А если у меня 200 страниц например, мне в каждой надо код такого типа вставлять:
Код: php
1.
if(!isset($_SESSION['Username'])) header("Location: login.html");


Нельзя ли как-то автоматизировать это, чтобы на все страницы распространялось?
...
Рейтинг: 0 / 0
22.07.2015, 15:57:10
    #39013535
worldhero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
mishanya3624,

mod_rewrite - отправляйте на один фаил, который будет подгружать нужные, там и поставьте проверку.
в .htaccess покалдуйте, чтоб юзеры не ползали где не надо.

а еще лучше - изучайте php, mvc, и т.п., в общем, что то в жанре ООП "классы, методы и т.п."
...
Рейтинг: 0 / 0
22.07.2015, 17:06:51
    #39013678
mishanya3624
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Так получается, мне все равно в этом одном файле необходимо будет указать все необходимые 200?
...
Рейтинг: 0 / 0
22.07.2015, 17:15:29
    #39013697
worldhero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
mishanya3624,

Зачем?
include, is_file, is_dir и require в помощь.
...
Рейтинг: 0 / 0
22.07.2015, 17:18:00
    #39013706
worldhero
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Добавлю, всегда думайте прежде чем делать.
Чтобы решить задачу, надо знать - чем вы уже располагаете. Есть запрос, есть данные что и где брать и сверять. Осталось только Решить как.
За Вас некто не чего делать не будет, я дал команды и информацию. Решение за Вами.
...
Рейтинг: 0 / 0
22.07.2015, 18:25:46
    #39013845
mishanya3624
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Да я и не прошу за меня что-то делать, как вы видите я все сам делаю, с помощью подсказок со стороны продвинутых пользователей.
Еще 1 вопрос как сделать обнуление сессии после бездействия пользователя в течении например 3 минут?
...
Рейтинг: 0 / 0
23.07.2015, 08:06:13
    #39014133
Alex_Ustinov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
я как невежда в этом вопросе отвечу :-)
заводите "куки" с временем жизни 3 мин, храните там сессию... на каждое действие пользователя - обновление куки, когда надо - оно и "отвалится"
...
Рейтинг: 0 / 0
24.07.2015, 18:45:15
    #39015742
mishanya3624
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Авторизация
Спасибо.
Еще вопрос:)
Как ограничивать права тем или иным пользователям. Я вижу вот как:
Создать еще один столбец классификатор в базе, который будет присваиваться пользователям, ну например Админ и Манагер и по нему разрешать либо нет показывать ту, или иную инфу.
Или как то можно умнее сделать?
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Авторизация / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]