Блокировка одновременного доступа боле 1-го пользователя с 1 учетной записи.

Royal Flash

-=MaestrO=-
Ф а н а т
Отсекать двойников или обслуживать у них вприсядку?
Не допуЩать в систему 2-ух пользователей с 1 логином, точнее, максимально усложнить жизнь для таких попыток.

iceman triumvirat
ну а если "1 пользователь" завел 5 учетных записей, это идеал?
Это не критично.

pilot911
если пользователь хочет зайти одновременно и из другого браузера, то ему это сделать не должно быть позволеноесли пользователь хочет зайти одновременно и из другого браузера, то ему это сделать не должно быть позволено
Если реализовать проверку: открыт ли у пользователя броузер - то не допустить открытия 2-ой страницы уже не проблемма. Только мне такой запрет не нужен.

john.brown
несколько пользователей с одним логином, но входить могут токмо по очереди - это другая история. тогда почему бы и не посылать раз в 10 сек аякс запрос, подтверждающий что страница открыта?
Единственный человек из всех, кто хоть немного приблизился к сути вопроса!!! Просьба поподробнее про Ajax :)

Т.е. исходя из моего понимания конфиденциальности - 1 пользователь имеет только 1 логин (ну или 10...) А вот под одним логином может одновременно находится в системе только 1 пользователь. Считается, что: 2 или более пользователей не могут иметь 1 учетную запись, и если такая ситуация происходит (а это и есть попытка одновременного входа в систему более 1-го пользователя) - то это требует разбирательств (например отсылки на e-mail нового пароля и (или) физическое влияние на "лишнего" пользователя :)).
 

HraKK

Мудак
Команда форума
А как по мне, ты просто бредишь. При заходе одного выкидывай другого - если первому не нравится пусть меняет пароль.
 

john.brown

просто кулибин
Если честно, я так и не до конца понимаю, чего ты хочеш добиться. Отслеживать факты тыренья логинов?

А про аякс гугл в помощ Ajax :)
физическое влияние на "лишнего" пользователя
А как ты выясниш, который из них лишний?
 

bakla

Новичок
Я в своем проекте решил эту проблему так:

При каждом действии пользователя, при завершении сессии в БД записывается идентификатор сессии и временный маркер, т.е. время последнего экшна. При новом запросе, восстанавливая сессию проверяется ее идентификатор на соответсвие с тем что в БД, если они различаются, то определенные данные сессии сбрасываются, т.е. пользователю снова нужно аутентицироваться. Аутентикация разрешается после того, как разница между текущим временем и меткой из БД достигнет 10 мин(Настраивается админом).
 

Фанат

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

LONGMAN

Dark Side of the Moon..
Плохая идея. Я привязываю проверка SID из базы + USER_AGENT из сессии, остальное уже проблема самого юзера.
 

bakla

Новичок
Вот из-за таких товарищей как вы php'шников считают низкоквалифицированными кодерами.
 

HraKK

Мудак
Команда форума
bakla
Все сказал о великий сенсей?
Придумавший такую же глупую проблему себе на задницу, и решив ее засунув гланды в задницу.
 

antson

Новичок
Партнер клуба
Royal Flash
В этом случае исходить нужно из целей проекта.
Если монетизация проекта расчитана на предоставлении
платного доступа, то выкидывать предыдущего
однозначно: давший пароль еще кому то пусть жалеет
об этом (вылеты с сайта в самый неподходящий момент).

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

findnext

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

HraKK

Мудак
Команда форума
можно создать таблицу online_users куда будут записываться все юзеры онлайн, дёргать скрипт по крону или при появлении нового юзера и обновлять данную таблицу. Тем самым можно будет проверить информацию о том что юзер делает на сайте.
И чем это поможет, а? Может хватит мусолить надуманную тему надуманными решениями?
 

findnext

Новичок
ступил :D полностью согласен...я понимаю что легче всего выкинуть юзера при авторизации нового...просто ищу решения данной проблемы
Ведь автору топика было необходимо знать открыт ли браузер у пользователя или нет...вот и начал размышлять в слух.
Впринципе реально это всё проверить используя тот же самый ajax...по другому видимо никак. Но такой подход увеличит нагрузку на сервер.
 

Фанат

oncle terrible
Команда форума
а зачем ему это надо? какая разница - открыт или закрыт?
у icq есть эта информация - соединение постоянное. и она все равно просто выкидывает старого. наверное, это потому, что такое действие продиктовано практикой, а не досужими рассуждениями с ковырянием в носу?
 

findnext

Новичок
всё правильно, это всего лишь теория. сам бы так никогда не начал делать, просто в программировании нет такого чего нельзя было бы спрограммировать. Как делать это личное дело каждого. Главное чтобы было быстро и удобно
 

Фанат

oncle terrible
Команда форума
Эта соглашательская позиция нам не близка.
Надо различать рассуждения, построенные на опыте, и досужую маниловщину. Второго здесь - как грязи. Особенно аптемезаторы сильно много любят программировать. Такого, чего нельзя. Что характерно - с теми же благими намерениями: чтобы было быстро и удобно.
практика - критерий истины. Если твои идеи вступают в противоречие с практикой - сначала сделай, а потом уже рассуждай. Логично?
 

bakla

Новичок
Автор оригинала: *****
Эта соглашательская позиция нам не близка.
Надо различать рассуждения, построенные на опыте, и досужую маниловщину. Второго здесь - как грязи. Особенно аптемезаторы сильно много любят программировать. Такого, чего нельзя. Что характерно - с теми же благими намерениями: чтобы было быстро и удобно.
практика - критерий истины. Если твои идеи вступают в противоречие с практикой - сначала сделай, а потом уже рассуждай. Логично?
Копипастом думать не научишься. Вижу тебе очень близка соглашательская позиция, только с кем/чем ты готов соглашаться? Долгое пребывание в помойке приводит к тому что все что в ней встречается можно считать мусором.

-~{}~ 21.03.09 21:14:

По теме.. При описанном мной подходе результат такой: Например Иванов залогинился и лазит по сайту. Петров знает логин/пароль Иванова и тоже пытается зайти, ему вылазит ошибка "Повторный вход запрещен", но он не успокаивается.. В это время Иванов пошел делать чай.. проходит 10 минут, и о чудо!, Петров логинится на сайтик. Теперь Иванов с чаем через 15 мин подходит к компу и пытается продолжить бороздить сайтег, но.. вылазит ошибка "Ваша сессия сброшена из-за БЛА БЛА БЛА" (Не полностью, а ТОЛЬКО данные отвечающие за аутентификацию). Иванов бросается снова логинится, но ему вываливается "Повторный вход запрещен".

-~{}~ 21.03.09 21:18:

Автор оригинала: *****
то есть, если юзер закрыл браузер а потом решил зайти снова, то ждет 10 минут? отличная идея
Нет, сессия не простая а относительная, недельная. Т.е. плюшка у юзера и данные на сервере живут неделю относительно последнего экшна. Однако статус аутентификации пользователя живет меньше, также относительно последнего экшна. Вот такая вот "сессия".

-~{}~ 21.03.09 21:26:

Хотя, смотря какой браузер он открыл чтобы "продолжить". Если юзал Firefox, а затем его закрыл и открыл IE, то придётся подождать.

-~{}~ 21.03.09 21:38:

....Либо, придется снова открыть Firefox нажать кнопу ВЫХОД, открыть IE и залогинится. Тогда ЖДАТЬ НЕ ПРИДЕТСЯ.
 

StUV

Rotaredom
....Либо, придется снова открыть Firefox нажать кнопу ВЫХОД, открыть IE и залогинится. Тогда ЖДАТЬ НЕ ПРИДЕТСЯ
ждать не придется, т.к. он на такой сайт больше не вернется
 

LONGMAN

Dark Side of the Moon..
Автор оригинала: StUV
ждать не придется, т.к. он на такой сайт больше не вернется
Точно. Обычный юзер не сможет догадатся что сначала нужно открыть FireFox и нажать на ВЫХОД, а потом юзать уже IE
 
Сверху