Покинул форум
Сообщений всего: 97
Дата рег-ции: Нояб. 2013
Помог: 0 раз(а)
В онлайн игре необходимо запретить использование сайта в нескольких вкладках. Как это лучше всего реализовать?
lastdays
Отправлено: 27 Декабря, 2015 - 14:23:10
Частый гость
Покинул форум
Сообщений всего: 221
Дата рег-ции: Март 2013
Помог: 7 раз(а)
Нужно больше подробностей и зачем это вообще делать, если у человека раздвоение личности, путь играет в двух вкладках. Если получает какую-либо пользу с этого, нужно исправлять игровые проблемы, а не делать костыли.
OrmaJever
Отправлено: 27 Декабря, 2015 - 15:58:53
Активный участник
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
У меня когда-то так не произвольно получилось.
Делаете некий хеш (для защиты от csrf), записываете его в сессии и генерируете при каждом обращении к странице новый, и соотвественно при запросах его проверяете
То есть в любом обработчике должна быть проверка на хеш, и когда пользователь открывает новую вкладку (index.php), то в сессию пишется новый хеш, и старая вкладка (на который остался старый хеш) просто не функционирует
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
DelphinPRO
Отправлено: 27 Декабря, 2015 - 17:59:11
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
OrmaJever
а если я буду использовать два браузера, сессии же будут разные?
----- Чем больше узнаю, тем больше я не знаю.
lastdays
Отправлено: 28 Декабря, 2015 - 01:53:45
Частый гость
Покинул форум
Сообщений всего: 221
Дата рег-ции: Март 2013
Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010 Откуда: Чернигов
Помог: 299 раз(а)
DelphinPRO пишет:
а если я буду использовать два браузера, сессии же будут разные?
ну, дак правильно, будет работать только один, тот который последним открыли. По-моему это именно то что нужно автору (Добавление)
lastdays пишет:
по-моему то, что нужно
это чисто джаваскрипт, его можно перекрыть через консоль, и дальше играть в несколько вкладок. Я так понимаю суть именно в слове "запретить", а это нужно делать на стороне сервера
----- Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
TuX560
Отправлено: 28 Декабря, 2015 - 16:28:52
Гость
Покинул форум
Сообщений всего: 114
Дата рег-ции: Дек. 2015
Помог: 3 раз(а)
OrmaJever пишет:
DelphinPRO пишет:
а если я буду использовать два браузера, сессии же будут разные?
ну, дак правильно, будет работать только один, тот который последним открыли. По-моему это именно то что нужно автору (Добавление)
lastdays пишет:
по-моему то, что нужно
это чисто джаваскрипт, его можно перекрыть через консоль, и дальше играть в несколько вкладок. Я так понимаю суть именно в слове "запретить", а это нужно делать на стороне сервера
Меня тоже это смутило, но по поводу двух браузеров, разные сессии значит у каждой будет валидный хеш, на мой взгляд лучше хеш привязать не к сессии а к ip, хотя не утверждаю, что я прав
IncOness
Отправлено: 28 Декабря, 2015 - 17:09:07
Гость
Покинул форум
Сообщений всего: 97
Дата рег-ции: Нояб. 2013
Помог: 0 раз(а)
Сделал иначе, привязал хеш к юзеру в бд с проверкой хеша, юзер агента и IP. При попытке войти с другого браузера или открыть новую вкладку в этом же браузере, или попытаться войт ив этот же аккаунт с другого IP - в старой вкладке появляется надпись "сессия устарела", в новой работает сайт. Вроде бы все хорошо.
lastdays
Отправлено: 28 Декабря, 2015 - 19:12:24
Частый гость
Покинул форум
Сообщений всего: 221
Дата рег-ции: Март 2013
Помог: 7 раз(а)
Почему не session_id() ?
Другая сессия - досвидание. Я так реализовал.
Описал бы изначально задачу иначе.
Я понял, как в одном браузере ты хотел сделать запрет на открытие одной и той же страницы.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.