Запрет повторной авторизации

Torio

Guest
Запрет повторной авторизации

Ситуация следующая:
Пользователь авторизовался и присутствует на сайте. Он же либо кто-нибудь другой пытается войти под тем же логином - паролем (у пользователя два или более броузера или не включены куки).
Как сделать так, чтоб сеанс не открывался до его закрытия вне зависимости откуда пытаются продублировать логин-пароль?

То есть сейчас я пишу эту тему из Оперы, а в это время у меня открыт другой сеанс (независимый кажется) из IE!

Так вот, надо сделать чтоб ничего подобного не было! Это возможно?
 

Фанат

oncle terrible
Команда форума
прежде, чем задавать такие вопросы, надо сначала определиться с понятием "Пользователь присутствует на сайте", и решить - что оно означает.
 

Torio

Guest
Запрет повторной авторизации (d2)

Вот тот самый пример: эта тема создана из IE при открытом сеансе в Opere! (то есть - эта тема пример и ее надо удалить!)
Как подобное не допустить?
 

Фанат

oncle terrible
Команда форума
я бы попросил воздержаться от подобных иллюстраций, которые могут быть расценены, как флуд
 

Torio

Guest
Фанат
посмотри на продублированную тему! Вот это и имелось ввиду!
То есть я могу одновременно работать из разных броузеров и при этом БЫТЬ АВТОРИЗОВАННЫМ! Если один броузер закрою, то сессия во втором сохранится, надо так сделать, чтоб второй сесии вообще не было.

т.е. зашел я и пока не вышел, никтор под таким же логином-паролем зайти не может!

-~{}~ 24.05.05 22:30:

Фанат

Так как этого избежать?! Мне правда это очень надо.

-~{}~ 24.05.05 22:31:

Или это невозможно?
 

ONK

Пассивист PHPСluba
Torio, то, что ты хочеш сделать можно реализовать для зарегистрированного пользователя, но практически во всех случаях это будет не разумным, создающим проблемы, ограничением.
 

Фанат

oncle terrible
Команда форума
о, господи.
куда вы все так торопитесь?
Тебе сию секунду надо ограничить доступ?
Нет?
Тогда ты в состоянии ответить на мой вопрос?
ты можешь формализовать понятие "ушёл"?

-~{}~ 24.05.05 22:38:

Torio
Да просто время сессии истечет
то есть, после того, как я ушёл с сайта, попасть на него снова не смогу до тех пор, как истекла сессия?

-~{}~ 24.05.05 22:39:

ONK
ForJest в подобной теме предложил простое и удобное решение.
 

Torio

Guest
ONK
Да? Как это сделать (для зарегистрированного мне и надо)?
У меня в БД хранится инфа о логине-пароле, а так же инфа о том авторизован сейчас пользователь или нет. Как мне сделать так, чтоб при завершении сессии (или при принудительном закрытии броузера) значение 'authorization' опять становилось равным нулю (при авторизованном пользователе значение единица)?
 

ONK

Пассивист PHPСluba
Фанат, не видел, наверно редко читаю темы этого форума.
 

Torio

Guest
Фанат
Закрыл IE (помнишь было два броузера), а в опере сеанс продолжается.

-~{}~ 24.05.05 22:45:

Ушел с сайта - обрыв связи, время сессии истекло, закрыл броузер - это все значит ушел с сайта.
 

ONK

Пассивист PHPСluba
Torio

У меня в БД хранится инфа о логине-пароле, а так же инфа о том авторизован сейчас пользователь или нет. Как мне сделать так, чтоб при завершении сессии (или при принудительном закрытии броузера) значение 'authorization' опять становилось равным нулю (при авторизованном пользователе значение единица)?
Только по истечении таймаута. HTTP протокол не предоставляет возможностей узнать момент ухода пользователя с сайта, остальные решения не надёжны. Поэтому ты в любом случае создаш проблемы пользователям.
 

Torio

Guest
Да, еще, если выход обусловлен нажать кнопку (ссылку и т.п.) "ВЫХОД" то с этим проблем-то нет, вот если выход принудительный...
 

Фанат

oncle terrible
Команда форума
я думаю, бессмысленно разговаривать с человеком, который не читает, что ему пишут.
Лично я не возьмусь. может, кто другой.
 

Torio

Guest
ONK, Если пользователь не сможет зайти на сайт в течении 10-20 минут - ничего страшного не случится (это допустимо), так как?

-~{}~ 24.05.05 22:53:

Фанат

Итак,

УШЕЛ С САЙТА: обрыв связи, закрытие броузера, сессия истекла, нажал кнопку выход.

НУЖЕН: запрет любой авторизации пока пользователь НЕ УШЕЛ.

Так понятно?
 

ONK

Пассивист PHPСluba
Torio, если готов пойти на такие грабли, то вместо флага "authorization" храни маркер времени последнего запроса страницы. Дальше ты должен сам догататься что и как делать.
 

Torio

Guest
ONK
Только по истечении таймаута. ----

КАК??? Мне это вполне подойдет! Где читать? (лучше пример листинга)

-~{}~ 24.05.05 22:59:

ONK
Спасибки! :)
Это похоже на решение.

-~{}~ 24.05.05 23:18:

ONK
Все заработало, именно так, как мне и было надо! :)
 
Сверху