На сайте есть аккаунт с логином и паролем.
Я открываю окно Internet Explorer, подключаюсь к сайту и авторизуюсь,
открываю второе окно Internet Explorer, подключаюсь к сайту и снова авторизуюсь в этом же аккаунте и так могу открыть несколько окон и со всех одновременно авторизоваться.
Как сделать так, чтобы при авторизации со второго окна, соединение с предыдущим окном было закрыто или наоборот, не позволило авторизоваться повторно в этом же аккаунте? То есть мне нужно, чтобы сервер проверял связь с окном и неактивные и лишние (второе, третье) окна закрывал соединение с ним.
Спустя 11 минут, 53 секунды (3.10.2010 - 09:10) PavelV написал(а):
Проверить описанную проблему можно на этом же форуме.
Вот я только что открыл второе окно и с него добавил этот комментарий. При этом у меня в полнее работоспособное и первое коно.
Вот я только что открыл второе окно и с него добавил этот комментарий. При этом у меня в полнее работоспособное и первое коно.
Спустя 32 минуты, 19 секунд (3.10.2010 - 09:42) twin написал(а):
Окна тут причем... Никак такого не сделать нормальным способом. Только черезпопные прошивки какието использовать, от которых нет толку.
Да и для чего это нужно, расскажи проблему...
Что то ты не разобрался мне кааца просто. Не нужно это тебе.
Да и для чего это нужно, расскажи проблему...
Что то ты не разобрался мне кааца просто. Не нужно это тебе.
Спустя 4 минуты, 16 секунд (3.10.2010 - 09:46) DmitryOpalev написал(а):
А через сеансы никак не сделать?
Спустя 21 минута, 59 секунд (3.10.2010 - 10:08) PavelV написал(а):
Цитата (twin @ 3.10.2010 - 06:42) |
Окна тут причем... Никак такого не сделать нормальным способом. Только черезпопные прошивки какието использовать, от которых нет толку. Да и для чего это нужно, расскажи проблему... Что то ты не разобрался мне кааца просто. Не нужно это тебе. |
Окна то не причем. Просто человек с одного компьютера вошел в свой аккаунт два раза (три, четыре), с одним окном работает, а про другие забыл, потом отвлекся, и начал работать в другом окне, изменения сделанные в первом окне уже пропадут. Особой проблемы конечно нет, но все таки коек какая неразбериха у пользователей может возникнуть. Хорошо бы работать только с одним окном.
Вот я на этом форуме в двух окнах сразу работаю. В одном есть Ваше сообщение, в другом окне его еще нет.
Спустя 6 минут, 46 секунд (3.10.2010 - 10:15) PavelV написал(а):
Цитата (DmitryOpalev @ 3.10.2010 - 06:46) |
А через сеансы никак не сделать? |
За счет сеансов, как я понимаю я попадаю второй раз (во втором окне) в то же место (например на Ваш форум).
А для чего мне это надо, хорошо отвечает на этот вопрос Ваша подпись, я ее точно у Вас не помню, но сейчас открою второе окно, и скопирую ее из него в это, вот добыл ее:
--------------------
Цитата
Лучше беребздеть, чем недобздеть
Спустя 20 минут, 42 секунды (3.10.2010 - 10:36) DmitryOpalev написал(а):
Насколько мне известно, сеансы используются так:
- Пользователь заходит, авторизуется.
- Создается сеанс, типа пользователь уже есть.
- Открывается новое окно, проверяеться, есть ли сеанс, и если он есть, то пользователь опять авторизуется.
- После закрытия окна сеанс удаляется, типа ползователь вышел
Как-то так
А можно сделать проверку, что если сеанс есть, то авторизоваться нельзя.
Спустя 2 минуты, 18 секунд (3.10.2010 - 10:38) twin написал(а):
Цитата |
Просто человек с одного компьютера вошел в свой аккаунт два раза (три, четыре) |
Он может хоть стопицот окон открыть, войдя один раз.
Аутентификация пользователя осуществляется браузером. а не окном.
Так что я и говорю - проблема надуманная.
Если есть опаска, что человек откроет несколько форм и запутается - тогда нужно просто прошить её сессией.
Но это касается только форм. Никаких окон.
Спустя 5 минут, 17 секунд (3.10.2010 - 10:43) Админ написал(а):
Можно изготовить собственный браузер например и раздать его всем пользователям и не париться а можно например через телнет т.к. у цмд одно окно (хотя тож бред можно и их кучу запустить)
Спустя 43 минуты, 46 секунд (3.10.2010 - 11:27) dr_Lev написал(а):
Такое происходит только в IE?
Если да, то может просто кукисы отключены...
Если да, то может просто кукисы отключены...
Спустя 17 минут, 32 секунды (3.10.2010 - 11:45) PavelV написал(а):
Цитата (DmitryOpalev @ 3.10.2010 - 07:36) |
Насколько мне известно, сеансы используются так: - Пользователь заходит, авторизуется. - Создается сеанс, типа пользователь уже есть. - Открывается новое окно, проверяеться, есть ли сеанс, и если он есть, то пользователь опять авторизуется. - После закрытия окна сеанс удаляется, типа ползователь вышел Как-то так А можно сделать проверку, что если сеанс есть, то авторизоваться нельзя. |
Про сеансы я тоже так думаю.
Только я на этот форум второй раз зашел не набирая пароль. Первая копия Internet Explorer у меня уже была на форуме авторизована, когда я запустил еще одну копию Internet Explorer (я их для упрощения называл окнами) и в адресной строке указал адрес Вашего форума, я тут же попал снова на нужную страницу, не вводя паролей и логинов (форум меня снова узнал) и я сижу теперь на форуме в двух копиях. Сервер форума должен распознать, что я уже два соединения сделал с ним и откинуть одно из них.
Сейчас я пошел еще дальше. Запустил обозреватель Mizilla Firefox. Сходу войти на форум в аккаунт не получилось, но после ввода логина и пароля, благополучно попал в свой аккаунт у Вас. И вот теперь уже 3 экземпляра меня на форуме, при этом все три рабочие и в одном аккаунте, под одним именем.
Как эту проблему убрать?
Спустя 3 минуты, 21 секунда (3.10.2010 - 11:48) DmitryOpalev написал(а):
Надо-то чтобы на вашем сайте такого не было, или на этом?
Спустя 13 минут, 22 секунды (3.10.2010 - 12:01) Админ написал(а):
PavelV
Цитата |
И вот теперь уже 3 экземпляра меня на форуме, при этом все три рабочие и в одном аккаунте, под одним именем. |
Ясен пень кукисы то одни и теже а вызывать виндовские апи с сервера для проверки кол-ва открытых окон вряд-ли получится - хотя и можно в теории тока не прокатит - брандмауэр не даст.
Спустя 5 минут, 33 секунды (3.10.2010 - 12:07) PavelV написал(а):
Цитата (DmitryOpalev @ 3.10.2010 - 08:48) |
Надо-то чтобы на вашем сайте такого не было, или на этом? |
На этом сайте мне все нравится, я просто привел пример на основе этого форума, чтобы понятно было другим в чем проблема у меня. Может быть кто то посоветует, как это решить мне? Посоветуйте.
Спустя 5 минут, 16 секунд (3.10.2010 - 12:12) DmitryOpalev написал(а):
- При попытке подключение идет проверка, есть ли cookie
- Если cookie есть, то в авторизации отказано
- Если cookie нету, то пользователь авторизуется.
По сути можно залогиниться только в одном окне.
------------------------------------------------------------------------------------------------------------------
А открывать новые окна скорее всего никто не запретит - это же не на сервере, а на компьютере пользователя
- Если cookie есть, то в авторизации отказано
- Если cookie нету, то пользователь авторизуется.
По сути можно залогиниться только в одном окне.
------------------------------------------------------------------------------------------------------------------
А открывать новые окна скорее всего никто не запретит - это же не на сервере, а на компьютере пользователя
Спустя 1 минута, 18 секунд (3.10.2010 - 12:13) PavelV написал(а):
Цитата (Админ @ 3.10.2010 - 09:01) | ||
PavelV
Ясен пень кукисы то одни и теже а вызывать виндовские апи с сервера для проверки кол-ва открытых окон вряд-ли получится - хотя и можно в теории тока не прокатит - брандмауэр не даст. |
А нет ли решения, чтобы сервер контролировал и поддерживал только одного меня, а не в трех экземплярах (в машину клиента не стоит внедрятся, проблему надо решить на сервере).
Спустя 4 минуты, 32 секунды (3.10.2010 - 12:18) Админ написал(а):
DmitryOpalev
Цитата |
А открывать новые окна скорее всего никто не запретит - это же не на сервере, а на компьютере пользовател |
про вызов апи и имелся в ввиду комп юзера это ж логично.(просто это можно сделать с сервера)
кукисы хранятся в отдельном файле и каждое новое окно с ними сверяется поэтому указанный способ не катит
Цитата |
По сути можно залогиниться только в одном окне. |
Спустя 2 минуты, 30 секунд (3.10.2010 - 12:21) PavelV написал(а):
Цитата (DmitryOpalev @ 3.10.2010 - 09:12) |
- При попытке подключение идет проверка, есть ли cookie - Если cookie есть, то в авторизации отказано - Если cookie нету, то пользователь авторизуется. По сути можно залогиниться только в одном окне. ------------------------------------------------------------------------------------------------------------------ А открывать новые окна скорее всего никто не запретит - это же не на сервере, а на компьютере пользователя |
cookie на компьютере пользователя, а значит им доверять нельзя, может он их уже удалил?
Спустя 4 минуты, 30 секунд (3.10.2010 - 12:25) DmitryOpalev написал(а):
Тоже логично...
Но...
1) скорее всего в этом никто не нуждаеться - удалять cookie, чтобы зайти еще раз
2) Но такие люди все-таки есть, и можно добавлять файл на сервер, или еще круче - сдлеать базу данных авторизованых пользователей, и тогда при повторном подключении такой пользователь уже будет и записаться будет нельзя! Ха-ха-ха!
-------------------------------------------------------------------------------------------------------------------
Правда злобно?
Но...
1) скорее всего в этом никто не нуждаеться - удалять cookie, чтобы зайти еще раз
2) Но такие люди все-таки есть, и можно добавлять файл на сервер, или еще круче - сдлеать базу данных авторизованых пользователей, и тогда при повторном подключении такой пользователь уже будет и записаться будет нельзя! Ха-ха-ха!
-------------------------------------------------------------------------------------------------------------------
Правда злобно?
Спустя 11 минут, 23 секунды (3.10.2010 - 12:36) Админ написал(а):
DmitryOpalev
Цитата |
сдлеать базу данных авторизованых пользователей, и тогда при повторном подключении такой пользователь уже будет |
и чё правда работать будет ? мне просто ну очень интересно как это реализовать.
Спустя 4 минуты, 43 секунды (3.10.2010 - 12:41) twin написал(а):
Вообще так делают - пишут в базу ид сессии. И если проходит новая аутентификация - перезаписывается. Тогда прошлый сеанс уже несработает. Но это только тогда, когда нет автологина.
Спустя 1 минута, 9 секунд (3.10.2010 - 12:42) DmitryOpalev написал(а):
Но на мой взгляд вполне реалестично.
Есть таблица например "Авторизованные пользователи".
- Пользователь авторизуеться, добавляется в таблицу (не сам конечно , а сервер)
- Вдруг он открыл новое окно, опять ввел данные, и отправил их. А-а-а-а...
- Но мы открываем таблицу - такой пользователь уже есть - нельзя ему авторизоваться!
... потом происходят всякие др. действия ...
- Он нажимет кнопку "Выход"
- Пользователь удаляется из таблицы.
Вот и все
Есть таблица например "Авторизованные пользователи".
- Пользователь авторизуеться, добавляется в таблицу (не сам конечно , а сервер)
- Вдруг он открыл новое окно, опять ввел данные, и отправил их. А-а-а-а...
- Но мы открываем таблицу - такой пользователь уже есть - нельзя ему авторизоваться!
... потом происходят всякие др. действия ...
- Он нажимет кнопку "Выход"
- Пользователь удаляется из таблицы.
Вот и все
Спустя 7 минут, 29 секунд (3.10.2010 - 12:50) Админ написал(а):
DmitryOpalev
только вот например у создателей соц сетей нифига не получается данный алгоритм реализовать почему-то.
(а если он не нажимает кнопку выход а тупо злостный электрик выключает ему свет или юзер тупо закрывает браузер)
только вот например у создателей соц сетей нифига не получается данный алгоритм реализовать почему-то.
(а если он не нажимает кнопку выход а тупо злостный электрик выключает ему свет или юзер тупо закрывает браузер)
Спустя 7 минут, 48 секунд (3.10.2010 - 12:58) Админ написал(а):
PavelV
решения данной проблеммы на стороне сервера не существует.
решения данной проблеммы на стороне сервера не существует.
Спустя 32 минуты, 34 секунды (3.10.2010 - 13:30) DmitryOpalev написал(а):
Нет ничего не возможного - так говорил очень умный какой-то человек.
Про злого электрика я подумаю, а вот при закрытие страницы можно хитро извернуться...
К нам в помощь идет JavaScript!
У него есть функция - при закрытия окна, не помню как называется.
И, может быть, когда он закрывает окно передать данные серверу???
Про злого электрика я подумаю, а вот при закрытие страницы можно хитро извернуться...
К нам в помощь идет JavaScript!
У него есть функция - при закрытия окна, не помню как называется.
И, может быть, когда он закрывает окно передать данные серверу???
Спустя 12 минут, 39 секунд (3.10.2010 - 13:43) DmitryOpalev написал(а):
Я придумал про злого электрика!
Кстати, не первый.
Суть такая - если от пользователя не принимись данные в течении какого-то срока, он ан-логиться (выходит) автоматически
Кстати, не первый.
Суть такая - если от пользователя не принимись данные в течении какого-то срока, он ан-логиться (выходит) автоматически
Спустя 7 минут, 47 секунд (3.10.2010 - 13:51) Michael написал(а):
Если ТС сильно надо, то как между браузерами twin уже сказал(в доп. таблице храним связь: текущий пользователь - его сессия), а между закладками(окнами) одного браузера:
не использовать куки для хранения сессии. Т.е. перед session_start() очищаем массив $_COOKIE. А идентификатор сессии передаем в формы - скрытым полем, в ссылки - get параметром. Проверка на авторизацию - как при разных браузерах.
не использовать куки для хранения сессии. Т.е. перед session_start() очищаем массив $_COOKIE. А идентификатор сессии передаем в формы - скрытым полем, в ссылки - get параметром. Проверка на авторизацию - как при разных браузерах.
Спустя 13 минут, 7 секунд (3.10.2010 - 14:04) Админ написал(а):
DmitryOpalev
так а суть то в том что кто мешает пользователю открыть кучу окон с одним и тем же сайтом и работать в них одновременно (причём по автологину) ась ? вроде вопрос об этом был.
так а суть то в том что кто мешает пользователю открыть кучу окон с одним и тем же сайтом и работать в них одновременно (причём по автологину) ась ? вроде вопрос об этом был.
Спустя 4 минуты, 56 секунд (3.10.2010 - 14:09) DmitryOpalev написал(а):
Да?
А я думал, что вопрос в том, чтобы нельзя было авторизовываться на одном сайте несколько раз
А я думал, что вопрос в том, чтобы нельзя было авторизовываться на одном сайте несколько раз
Спустя 3 минуты, 20 секунд (3.10.2010 - 14:12) Админ написал(а):
Michael
Согласен что ситация идиотская если исходить из того что юзер никак не мог повлиять на процесс то ничего не получится т.к. скрытые поля и гет параметры легко можно изменить.
Согласен что ситация идиотская если исходить из того что юзер никак не мог повлиять на процесс то ничего не получится т.к. скрытые поля и гет параметры легко можно изменить.
Спустя 1 день, 2 часа, 56 минут, 21 секунда (4.10.2010 - 17:08) PavelV написал(а):
Господа, понял, что на сервере этой проблемы не решить. А если клиенту впихнуть (при открытии страницы) ява скрипт, который пометит окно и передаст его номер на сервер, следующее окно будет уже с другим номером. Вот только какой бы скрипт найти подходящий (или функцию применить в скрипте, которая бы позволила однозначно определить окно).
В одном из ответов у Админа были похожие мысли.
Может у кого еще какие мысли будут?
В одном из ответов у Админа были похожие мысли.
Может у кого еще какие мысли будут?
Спустя 11 минут, 21 секунда (4.10.2010 - 17:20) Michael написал(а):
Цитата (PavelV @ 4.10.2010 - 16:08) |
Господа, понял, что на сервере этой проблемы не решить. А если клиенту впихнуть (при открытии страницы) ява скрипт, который пометит окно и передаст его номер на сервер, следующее окно будет уже с другим номером. |
Это покатит если у тебя будет приложение ajax - т.е. без перезагрузки. А так , ну пометил ты окно, надо перейти по ссылке - как эту пометку передать в новое( но это же) окно? Опять же - или через сервер, или через куки ...
Спустя 47 минут, 4 секунды (4.10.2010 - 18:07) PavelV написал(а):
Цитата (Michael @ 4.10.2010 - 14:20) | ||
Это покатит если у тебя будет приложение ajax - т.е. без перезагрузки. А так , ну пометил ты окно, надо перейти по ссылке - как эту пометку передать в новое( но это же) окно? Опять же - или через сервер, или через куки ... |
А по ссылке переходить не нужно. Клиент работает в этом окне и каждый раз при отправке данных на сервер ява скрипт прилепляет номер окна, а сервер проверяет, если клиент начал работать в другом окне, ява скрипт сообщит другой номер, сервер клиента предупредит?
Можно ли по такому алгоритму устранить проблему?