Форум → Программирование → Пыхнуть хотите? → F.A.Q. → Авторизация пользователей в полном смысле этого слова.
Авторизация пользователей в полном смысле этого слова.
-
-
30 августа 2010 г. 18:42, спустя 6 минут 25 секунд
протокол http не поддерживает постоянное соединение и не имеет состояния. поэтому сессия — это то, что вы сами придумаете и реализуете. если вы говорите про поддержку пользовательских сессий в php, гляньте всю группу функций session_*. это вариант. на самом деле т.к. сессии реализуются посредством кук, достаточно поставить время жизни куки в 0 и "крестик" убъет сессию.ιιlllιlllι унц-унц -
30 августа 2010 г. 18:40, спустя 23 часа 58 минут 56 секунд
то есть таки только таймаут?
а способов отследить, что человек закрывает окно\вкладку в наличии есть? -
30 августа 2010 г. 18:44, спустя 3 минуты 48 секунд
в самом протоколе способа нет. можно через js стучаться с заданным интервалом типа "я еще здесь", а на сервере слушать и делать выводы.Спустя 33 сек.только помоему это чушь собачья. надуманные проблемыιιlllιlllι унц-унц -
-
30 августа 2010 г. 19:09, спустя 13 минут 20 секунд
Будем считать у нас есть таблица (или мемкеш или хуйнанэ) с парами {юзернейм, время_последней_активности}. Когда нам надо вывести "список онлайн" мы сравниваем текущее время с этими значениями и старых убираем. Никакого крона, никакого js, простое волшебство.
Теперь вопрос: а если прошло сто пятьсот часов и никто не проявлял активнсти, неужели наша таблица так и будет нечищенной.
Ответ: да и хуй на неё! Она нужна только когда хоть кто-нибудь проявил активность, иначе кому мы будем показывать наш "список онлайн".ιιlllιlllι унц-унц -
3 октября 2010 г. 12:51, спустя 33 дня 17 часов 42 минуты
Добрый день.
Есть вопрос такой.
В примере есть скрипт демонтсрации закрытой части в файле closed.php :<?php
session_start();
if (isset($_SESSION['user_id']))
{
// показываем защищенные от гостей данные.
print '<h1>Здрасте!</h1>
<p>Это закрытая страница.</p>
<p><a href="index.php">Перейти на главную</a></p>';
}
else
{
die('Доступ закрыт, даём ссылку на авторизацию. — <a href="login.php">Авторизоваться</a>');
}
?>
А не нужно проверять в кукках записаны логин/пароль или нет? -
-
3 октября 2010 г. 12:54, спустя 2 минуты 13 секунд
ты перед тем как загнать данные в $_SESSION['user_id'] это проверяешь -
3 октября 2010 г. 12:55, спустя 45 секунд
has, зависит от ровня безопастноти, который ты планируешь применять. Только пароль в куках надо обязательно хешировать. И желательно не так как в базе, но чтобы и можно было сравнить.
vasa_c, у меня сайт на дле есть. Как то однажды сломали там админа с паролем 123456. Ну я сменил пароль через админку, а он все лазит и чета редачит в админке. -
3 октября 2010 г. 12:58, спустя 3 минуты 7 секунд
Сессии не постоянны и данные в них хранятся только на время работы пользователя со скриптом. Поэтому, чтобы пользователь оставался залогиненым после того, как он закрыл и снова открыл на нашей странице свой браузер — необходимо сохранять его авторизационные данные в куках (они хранятся на его компьютере в браузере).
Мы будем записывать в куки пользователя его логин и хеш пароля. (как записывать что-то в куки, читайте выше по ссылке) -
3 октября 2010 г. 13:06, спустя 8 минут 4 секунды
Сессии не постоянны и данные в них хранятся только на время работы пользователя со скриптом. Поэтому, чтобы пользователь оставался залогиненым после того, как он закрыл и снова открыл на нашей странице свой браузер — необходимо сохранять его авторизационные данные в куках (они хранятся на его компьютере в браузере).
Мы будем записывать в куки пользователя его логин и хеш пароля. (как записывать что-то в куки, читайте выше по ссылке)
а мы то и не знали. -
3 октября 2010 г. 13:14, спустя 8 минут 18 секунд
SpartakuS, это я к тому, что если будет новый идентификатор сессии и открывать скрипт ./session.php, тогда выдаст:Доступ закрыт, даём ссылку на авторизацию. — Авторизоваться
Это по-твоему нормально? -
3 октября 2010 г. 13:21, спустя 6 минут 20 секунд
has, пцц.
Обычно делают так.
Ставят галочку типа запомнить меня (я считаю, что лучше галку не запоминать делать).
Если не запоминать, то просто в сессии и проверять есть ли айди в сессии.
Если запоминем, то в куки записываем логин и хеш пароля. И в сессию айди. Сначала проверяем айди в сессии. А если айд нет, то смотрим и проверяйем логин пароль в куках. А если они не сходятся и там ничего нет, то тогда уже не авторизван.
Но если нужна безопасность повыше, то надо записывать в сессии еще и логин с паролем и проверять их, каждый раз или перед важными действиями типа редактирования и тп. -
3 октября 2010 г. 13:41, спустя 20 минут 6 секунд
Если запоминем, то в куки записываем логин и хеш пароля. И в сессию айди. Сначала проверяем айди в сессии. А если айд нет, то смотрим и проверяйем логин пароль в куках. А если они не сходятся и там ничего нет, то тогда уже не авторизван.
Внимательно прочти что ты написал и что я спрашивал:А не нужно проверять в кукках записаны логин/пароль или нет?
Вот код:<?php
session_start();
if (isset($_SESSION['user_id']))
{
// показываем защищенные от гостей данные.
print '<h1>Здрасте!</h1>
<p>Это закрытая страница.</p>
<p><a href="index.php">Перейти на главную</a></p>';
}
else
{
die('Доступ закрыт, даём ссылку на авторизацию. — <a href="login.php">Авторизоваться</a>');
}
?>
в котором отстутствует проверка логина/пароля в куках.
Пожалуйста, авторизуйтесь, чтобы написать комментарий!