[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Господа, подскажите как решить проблему?
PavelV
Господа программисты, подскажите, как решить следующую проблему:

На сайте есть аккаунт с логином и паролем.
Я открываю окно Internet Explorer, подключаюсь к сайту и авторизуюсь,
открываю второе окно Internet Explorer, подключаюсь к сайту и снова авторизуюсь в этом же аккаунте и так могу открыть несколько окон и со всех одновременно авторизоваться.

Как сделать так, чтобы при авторизации со второго окна, соединение с предыдущим окном было закрыто или наоборот, не позволило авторизоваться повторно в этом же аккаунте? То есть мне нужно, чтобы сервер проверял связь с окном и неактивные и лишние (второе, третье) окна закрывал соединение с ним.



Спустя 11 минут, 53 секунды (3.10.2010 - 09:10) PavelV написал(а):
Проверить описанную проблему можно на этом же форуме.
Вот я только что открыл второе окно и с него добавил этот комментарий. При этом у меня в полнее работоспособное и первое коно.
wink.gif

Спустя 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)
А через сеансы никак не сделать?

За счет сеансов, как я понимаю я попадаю второй раз (во втором окне) в то же место (например на Ваш форум).

А для чего мне это надо, хорошо отвечает на этот вопрос Ваша подпись, я ее точно у Вас не помню, но сейчас открою второе окно, и скопирую ее из него в это, вот добыл ее:

--------------------

Цитата
Лучше беребздеть, чем недобздеть
blink.gif

Спустя 20 минут, 42 секунды (3.10.2010 - 10:36) DmitryOpalev написал(а):
biggrin.gif biggrin.gif biggrin.gif
Насколько мне известно, сеансы используются так:
- Пользователь заходит, авторизуется.
- Создается сеанс, типа пользователь уже есть.
- Открывается новое окно, проверяеться, есть ли сеанс, и если он есть, то пользователь опять авторизуется.
- После закрытия окна сеанс удаляется, типа ползователь вышел
Как-то так rolleyes.gif
А можно сделать проверку, что если сеанс есть, то авторизоваться нельзя.

Спустя 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)
biggrin.gif biggrin.gif biggrin.gif
Насколько мне известно, сеансы используются так:
- Пользователь заходит, авторизуется.
- Создается сеанс, типа пользователь уже есть.
- Открывается новое окно, проверяеться, есть ли сеанс, и если он есть, то пользователь опять авторизуется.
- После закрытия окна сеанс удаляется, типа ползователь вышел
Как-то так rolleyes.gif
А можно сделать проверку, что если сеанс есть, то авторизоваться нельзя.

Про сеансы я тоже так думаю.

Только я на этот форум второй раз зашел не набирая пароль. Первая копия Internet Explorer у меня уже была на форуме авторизована, когда я запустил еще одну копию Internet Explorer (я их для упрощения называл окнами) и в адресной строке указал адрес Вашего форума, я тут же попал снова на нужную страницу, не вводя паролей и логинов (форум меня снова узнал) и я сижу теперь на форуме в двух копиях. Сервер форума должен распознать, что я уже два соединения сделал с ним и откинуть одно из них.

Сейчас я пошел еще дальше. Запустил обозреватель Mizilla Firefox. Сходу войти на форум в аккаунт не получилось, но после ввода логина и пароля, благополучно попал в свой аккаунт у Вас. И вот теперь уже 3 экземпляра меня на форуме, при этом все три рабочие и в одном аккаунте, под одним именем.

Как эту проблему убрать?
unsure.gif

Спустя 3 минуты, 21 секунда (3.10.2010 - 11:48) DmitryOpalev написал(а):
Надо-то чтобы на вашем сайте такого не было, или на этом? blink.gif

Спустя 13 минут, 22 секунды (3.10.2010 - 12:01) Админ написал(а):
PavelV
Цитата
И вот теперь уже 3 экземпляра меня на форуме, при этом все три рабочие и в одном аккаунте, под одним именем.

Ясен пень кукисы то одни и теже а вызывать виндовские апи с сервера для проверки кол-ва открытых окон вряд-ли получится - хотя и можно в теории тока не прокатит - брандмауэр не даст.

Спустя 5 минут, 33 секунды (3.10.2010 - 12:07) PavelV написал(а):
Цитата (DmitryOpalev @ 3.10.2010 - 08:48)
Надо-то чтобы на вашем сайте такого не было, или на этом? blink.gif

На этом сайте мне все нравится, я просто привел пример на основе этого форума, чтобы понятно было другим в чем проблема у меня. Может быть кто то посоветует, как это решить мне? Посоветуйте.

Спустя 5 минут, 16 секунд (3.10.2010 - 12:12) DmitryOpalev написал(а):
- При попытке подключение идет проверка, есть ли cookie
- Если cookie есть, то в авторизации отказано
- Если cookie нету, то пользователь авторизуется.
По сути можно залогиниться только в одном окне.
------------------------------------------------------------------------------------------------------------------
А открывать новые окна скорее всего никто не запретит - это же не на сервере, а на компьютере пользователя smile.gif

Спустя 1 минута, 18 секунд (3.10.2010 - 12:13) PavelV написал(а):
Цитата (Админ @ 3.10.2010 - 09:01)
PavelV
Цитата
И вот теперь уже 3 экземпляра меня на форуме, при этом все три рабочие и в одном аккаунте, под одним именем.

Ясен пень кукисы то одни и теже а вызывать виндовские апи с сервера для проверки кол-ва открытых окон вряд-ли получится - хотя и можно в теории тока не прокатит - брандмауэр не даст.

А нет ли решения, чтобы сервер контролировал и поддерживал только одного меня, а не в трех экземплярах (в машину клиента не стоит внедрятся, проблему надо решить на сервере).

Спустя 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 нету, то пользователь авторизуется.
По сути можно залогиниться только в одном окне.
------------------------------------------------------------------------------------------------------------------
А открывать новые окна скорее всего никто не запретит - это же не на сервере, а на компьютере пользователя smile.gif

cookie на компьютере пользователя, а значит им доверять нельзя, может он их уже удалил?

Спустя 4 минуты, 30 секунд (3.10.2010 - 12:25) DmitryOpalev написал(а):
Тоже логично...
Но...
1) скорее всего в этом никто не нуждаеться - удалять cookie, чтобы зайти еще раз biggrin.gif
2) Но такие люди все-таки есть, и можно добавлять файл на сервер, или еще круче - сдлеать базу данных авторизованых пользователей, и тогда при повторном подключении такой пользователь уже будет и записаться будет нельзя! Ха-ха-ха!
-------------------------------------------------------------------------------------------------------------------
Правда злобно? laugh.gif

Спустя 11 минут, 23 секунды (3.10.2010 - 12:36) Админ написал(а):
DmitryOpalev
Цитата
сдлеать базу данных авторизованых пользователей, и тогда при повторном подключении такой пользователь уже будет

и чё правда работать будет ? мне просто ну очень интересно как это реализовать.

Спустя 4 минуты, 43 секунды (3.10.2010 - 12:41) twin написал(а):
Вообще так делают - пишут в базу ид сессии. И если проходит новая аутентификация - перезаписывается. Тогда прошлый сеанс уже несработает. Но это только тогда, когда нет автологина.

Спустя 1 минута, 9 секунд (3.10.2010 - 12:42) DmitryOpalev написал(а):
rolleyes.gif Но на мой взгляд вполне реалестично. rolleyes.gif
Есть таблица например "Авторизованные пользователи".
- Пользователь авторизуеться, добавляется в таблицу (не сам конечно biggrin.gif, а сервер)
- Вдруг он открыл новое окно, опять ввел данные, и отправил их. А-а-а-а...
- Но мы открываем таблицу - такой пользователь уже есть - нельзя ему авторизоваться!
... потом происходят всякие др. действия ...
- Он нажимет кнопку "Выход"
- Пользователь удаляется из таблицы.
rolleyes.gif
Вот и все rolleyes.gif

Спустя 7 минут, 29 секунд (3.10.2010 - 12:50) Админ написал(а):
DmitryOpalev
только вот например у создателей соц сетей нифига не получается данный алгоритм реализовать почему-то.
(а если он не нажимает кнопку выход а тупо злостный электрик выключает ему свет или юзер тупо закрывает браузер)

Спустя 7 минут, 48 секунд (3.10.2010 - 12:58) Админ написал(а):
PavelV
решения данной проблеммы на стороне сервера не существует.

Спустя 32 минуты, 34 секунды (3.10.2010 - 13:30) DmitryOpalev написал(а):
Нет ничего не возможного - так говорил очень умный какой-то человек. biggrin.gif
Про злого электрика я подумаю, а вот при закрытие страницы можно хитро извернуться...
К нам в помощь идет JavaScript!
У него есть функция - при закрытия окна, не помню как называется.
И, может быть, когда он закрывает окно передать данные серверу??? blink.gif blink.gif blink.gif

Спустя 12 минут, 39 секунд (3.10.2010 - 13:43) DmitryOpalev написал(а):
Я придумал про злого электрика! laugh.gif
Кстати, не первый.
Суть такая - если от пользователя не принимись данные в течении какого-то срока, он ан-логиться (выходит) автоматически biggrin.gif

Спустя 7 минут, 47 секунд (3.10.2010 - 13:51) Michael написал(а):
Если ТС сильно надо, то как между браузерами twin уже сказал(в доп. таблице храним связь: текущий пользователь - его сессия), а между закладками(окнами) одного браузера:
не использовать куки для хранения сессии. Т.е. перед session_start() очищаем массив $_COOKIE. А идентификатор сессии передаем в формы - скрытым полем, в ссылки - get параметром. Проверка на авторизацию - как при разных браузерах.

Спустя 13 минут, 7 секунд (3.10.2010 - 14:04) Админ написал(а):
DmitryOpalev
так а суть то в том что кто мешает пользователю открыть кучу окон с одним и тем же сайтом и работать в них одновременно (причём по автологину) ась ? вроде вопрос об этом был.

Спустя 4 минуты, 56 секунд (3.10.2010 - 14:09) DmitryOpalev написал(а):
Да? biggrin.gif biggrin.gif biggrin.gif
А я думал, что вопрос в том, чтобы нельзя было авторизовываться на одном сайте несколько раз biggrin.gif

Спустя 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)
Цитата (PavelV @ 4.10.2010 - 16:08)
Господа, понял, что на сервере этой проблемы не решить. А если клиенту впихнуть (при открытии страницы) ява скрипт, который пометит окно и передаст его номер на сервер, следующее окно будет уже с другим номером.

Это покатит если у тебя будет приложение ajax - т.е. без перезагрузки. А так , ну пометил ты окно, надо перейти по ссылке - как эту пометку передать в новое( но это же) окно? Опять же - или через сервер, или через куки ...

А по ссылке переходить не нужно. Клиент работает в этом окне и каждый раз при отправке данных на сервер ява скрипт прилепляет номер окна, а сервер проверяет, если клиент начал работать в другом окне, ява скрипт сообщит другой номер, сервер клиента предупредит?

Можно ли по такому алгоритму устранить проблему?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.