Модераторы: Sardar, Aliance

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запрет захода на страницу с 2-х окон. как сделать? 
:(
    Опции темы
godsgame
  Дата 21.11.2005, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



Я помню, что, где-то на этом форуме видел подобный топик, но найти не смог smile

Проблема такая: Я хочу сделать так, чтоб в мою игру нельзя было зайти с 2-х окон. Как такое сделать.

В БК сделано так: Когда заходишь со второго окна, он практически моментально выкидывает на главную первое окно. Как это реализовано?

Буду рад любому линку smile
PM MAIL   Вверх
fregs
Дата 21.11.2005, 12:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1



godsgame
куки+ид сессии...
если авторизация записать значение сессии в куку...
перед любым действием в окне проверяем это значение(в бк еще и по таймеру оно проверяется) если ид сессии совпадает с записанной в куке, то разрешаем действие, нет выкидываем на авторизацию

PM MAIL WWW   Вверх
godsgame
Дата 21.11.2005, 17:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



fregs
Про таймер это понятно, например при обновление чата заодно проверяет...

Обязательно использовать Куки+Сесии или можно обойтись только чем-нить одним из этого?

Хочу уточнить одну деталь:
1) ИД сессии каждый раз другой? (т.е когда мы логинимся с другого окна он другой?)
2) Значение записанное в куку всегда одно и тоже? Т.е если мы запрашиваем куку из одного окна так:
Код

if ( !( $_COOKIES["session_id"] == $_SESSION["session_id"] ) ) {
  //drop user :)
}


И из второго так же, то значение $_COOKIES["session_id"] останется как и в предыдущем случае, а значение $_SESSION["session_id"] - будет ИД текущей сессии, присвоеной при логине?

я все правильно понял?
Можно ли эту проверку сделать с помощью JS? (я не силен в JS, поэтому спрашиваю)
PM MAIL   Вверх
fregs
Дата 21.11.2005, 18:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1



только связка.... обнули куку и тебе придется авторизоваться заново
если делать через js то тебе явно придется передавать session_id(впрочем неважно, его и так можно вычислить)
Цитата
1) ИД сессии каждый раз другой? (т.е когда мы логинимся с другого окна он другой?)
да

по второму не совсем понял(выпил абсенту уже туго соображаю smile )
в общем суть...
открыл одно окно(а1) авторизовался в куку записалось значение сессии, в базу записали - пользователь онлайн ид сесии такое то
открыл другое(а2) если авторизовался - новая сессия, то в куку запишется новое значение...в базу записали - пользователь онлайн ид сесии такое то...

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

Это сообщение отредактировал(а) fregs - 21.11.2005, 18:14
PM MAIL WWW   Вверх
godsgame
Дата 21.11.2005, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



fregs
я так и понял, только ИД сессии в базу наверно не обязательно записывать?
Добавлено @ 19:16
если не лень, напиши тот кусок кода (на ПХП - который я привел выше) на JS... smile
PM MAIL   Вверх
Sardar
Дата 21.11.2005, 19:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



А разве кука между окнами на один и тот же ресурс (URL идеентичное) не одна и та же? В смсыле авторизовался в одном окне, рандомная строка в куке и в сессии, юзер открыл новое окно, скопировал URL, зашёл сразу без авторизации, для сервака никакой разницы...

Xотя не помню точно, если поставить куке время жизни в 0, то возможно она не будет видна из другого окна...


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
godsgame
Дата 21.11.2005, 21:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



Sardar
хмм... буду тщательней проверять, спасибо, что сказал.
PM MAIL   Вверх
fregs
Дата 22.11.2005, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1



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

по ссылке с рабочего окна мы хоть 10 одинаковых окон откроем...
PM MAIL WWW   Вверх
Sardar
Дата 23.11.2005, 01:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бегун
****


Профиль
Группа: Модератор
Сообщений: 6986
Регистрация: 19.4.2002
Где: Нидерланды, Groni ngen

Репутация: 78
Всего: 317



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

В мозилле кука общя между окнами если URL одинаковое. Тестим:

http://sardar.vingrad.ru/vingradattaches/c...ssion/index.php

Открываем окно, открываеться сессия, ставиться кука пользователю. Перезагружаем окно, видим как с куку получили, сессия продолжает жить. Копируем URL, открываем новое окно, загружаем, раздумываем над ситуацией smile

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


--------------------
 Опыт - сын ошибок трудных  © А. С. Пушкин
 Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik
 Оценить мои качества можно тут.
PM   Вверх
Ciber SLasH
Дата 23.11.2005, 01:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1813
Регистрация: 9.11.2004
Где: С.-Петербург

Репутация: 24
Всего: 67



[offtop]
2Sardar:
Хм, а прикольно FireFox с расширением "Tabbrowser Extensions" ведёт себя при открытии твоей ссылки — открыл один раз вкладку с ссылкой, при открытии второй вкладки огнелис говорит, что мол эта ссылка уже открыта в предыдущей вкладке и не открывает страницу снова.
[/offtop]
PM   Вверх
fregs
Дата 23.11.2005, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1



Sardar
так а чего странного то?
открыл, записал ид сессии... так как сессия хранится в куках, то при перегрузке страницы или создании окна ид не меняется(если мы не изменим это значение насильственным путем)
PM MAIL WWW   Вверх
godsgame
Дата 23.11.2005, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



есть еще вариант: Проверять открытые окна на Caption - синяя полоска там где крестик.

Т.е если например окон с таким Caption ДВА или больше: "Godsgame - Главное окно - Internet Explorer", то значит выкидывать, правда если пользователь захочет создать свою страничку с
Код

<title>Godsgame - Главное окно - Internet Explorer</title>


то в моей игре его выкинет, что не есть гут smile
PM MAIL   Вверх
fregs
Дата 23.11.2005, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 25.11.2004

Репутация: нет
Всего: 1



godsgame
ты уж точнее определи задачу, а то меня уже запутал полностью...
то ли можно пользователю 2 окна открывать, то ли нельзя...
то ли это связано с авторизацией, то ли не связано...
PM MAIL WWW   Вверх
godsgame
Дата 28.12.2005, 15:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



не получается:
Кукисы меняются не глабально, а только в рамках текущего открытого окна... делаю так:
Код

setcookie("sesId", session_id() );

Добавлено @ 15:37
т.е я думал что при присвоении, - кукисы изменятся для уже открытого окна тоже, а они оказались не изманны... smile

для только что зашедшего персонажа: 0ecea9019e6df6e89d557d60e39d48ff
для персонажа, который уже зашел до этого: d5c4dce527f8c38078bb99e626c17234
они не равны.

что я не так делаю?
PM MAIL   Вверх
godsgame
Дата 1.1.2006, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 241
Регистрация: 29.8.2005

Репутация: нет
Всего: нет



помогите плиз
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0604 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.