1 логин = 1 пользователь, как запретить доступ второму?

Kubiki

Новичок
1 логин = 1 пользователь, как запретить доступ второму?

Вопрос:
Как запретить одновременный доступ двух пользователей по одному и тому же логину?

Один из вариантов решения:
Для каждого из пользователей при логине записывать IP и делать проверку пользователя по IP. Как только войдет второй пользователь под тем же логином, измениться IP и первому пользователю опять придеться логиниться.

Предложите другие варианты!
 

martinelli

Новичок
Так и будут они вышибать друг друга по очереди.

А для чего такое требование?
 

clevel

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

Фанат

oncle terrible
Команда форума
martinelli
объясняю один раз для всех, кто впервые увидел интернет:

Есть платный ресурс.
Доступ - по паролю.

В таких условиях всегда находится ненулевое множество людей, которые считают себя умнее всех и покупают один доступ на двоих.

ВОТ ТАКИЕ СЛУЧАИ и нужно отсекать.

Надеюсь, больше вопросов не возникает.
 

Kubiki

Новичок
Originally posted by ys
Romantik

зашел- поставь статус=1 в таблице, вышел -0
Да, только когда обычные пользователи выходят они вместо Logout просто закрывают окно броузера. И они в этом правы.

А как узнать когда они окно закрыли? Даже если вставить JavaScript на закрытие окна, то как узнать что это было последнее окно этого сайта, а не одно из нескольких открытых?
 

StUV

Rotaredom
Kubiki
проще всего - запретить региться пользователю с уже существующим логином
 

Kubiki

Новичок
Originally posted by Romantik
Kubiki
у тебя сессия пользователю создается ?
Да сессии включены. Именно по ним отслеживается пользователь + проверка на IP (который определяется при логине).
 

Kubiki

Новичок
Originally posted by Romantik
ну что мешает сделать
id_user | session | status
и проверять?
Что означает поле status и как его отслеживать?
Предположим пользователь закрыл окно броузера, но при этом не нажал кнопку Logout.
 

Tn

Guest
нет активности пользователя на сайте какое-то время, считай вышел. expired time cам определи
 

Kubiki

Новичок
Originally posted by Tn
нет активности пользователя на сайте какое-то время, считай вышел. expired time cам определи
Предположим пользователь не вылогинился (а просто закрыл окно броузера), а потом вдруг вспомнил, что еще кое что не посмотрел. Пробует залогинится, и не может (во попал, а?)

А если ставить expired time меньше 10 минут, то пользователю придется почти что при каждом просмотер страницы логиниться. Неудобно!
 

Фанат

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

Если крооличество таких входов превышает некий предел - админ смотрит логи и дает по шапке.
 

Kubiki

Новичок
Originally posted by Romantik
Kubiki
ну для этого ты и программист... подумай немножко =)
Давай так договоримся. Перед тем как писать я как правило продумываю все возможные варианты. В том числе и про expired time, поэтому давай говорить попроще и без советов типа "use your head". И мне жутко интересно как ты будешь определять status сессии (для примера когда пользователь зыкрыл просто окно броузера без того чтобы вылогинится)
 
Сверху