Существует скрипт, в котором используются сессии.
Это скрипт установлен дважды. Один доступен по адресу domain.ru другой по адресу domain.ru/folder/
Проблема возникает если пользователь авторизовался во скрипте Domain.ru а потом заходит domain.ru/folder , то там он автоматически становится авторизованным (так как сессия уже существует) и может работать под чужим именем.
Как сделать ограничение сессий? Записывать ID сессии в базу данных при каждой авторизации? Или как лучше поступить?
Заранее спасибо.
Спустя 14 минут, 59 секунд (1.09.2010 - 15:16) Basili4 написал(а):
Arrogant.Elf
Погляди session_name()
Погляди session_name()
Спустя 32 минуты, 14 секунд (1.09.2010 - 15:48) Nikitian написал(а):
$sess=session_get_cookie_params();
session_set_cookie_params($sess["lifetime"],'/folder/');
Так сессия будет стартовать только для указанной директории. Только вот бред это всё. Да, и не забывайте, что запуская таким образом сессию в папке /folder/ она же будет работать в /folder/some/
Спустя 10 минут, 1 секунда (1.09.2010 - 15:58) Arrogant.Elf написал(а):
Цитата |
Погляди session_name() |
А как поможет?
Цитата |
Так сессия будет стартовать только для указанной директории. Только вот бред это всё. Да, и не забывайте, что запуская таким образом сессию в папке /folder/ она же будет работать в /folder/some/ |
Тут проблема ещё в том, что есть директория ...admin/ и соотвественно ...folder/admin и там должны работать сессии из соответствующих копий скрипта
Будет ли самым простым решением просто хранить в сессии индификатор показывающий с какой копии авторизовались и проверять каждый раз?
Спустя 3 минуты, 59 секунд (1.09.2010 - 16:02) twin написал(а):
Поставь префиксы просто переменным.
Спустя 2 минуты, 37 секунд (1.09.2010 - 16:05) Basili4 написал(а):
Arrogant.Elf
файл1
session_name('sessiy1');
start_session();
$_SESSION['ee']=1;
файл2
session_name('sessiy2');
start_session();
// Здесь уже не будет перемененной ee
файл1
session_name('sessiy1');
start_session();
$_SESSION['ee']=1;
файл2
session_name('sessiy2');
start_session();
// Здесь уже не будет перемененной ee
Спустя 1 минута, 50 секунд (1.09.2010 - 16:07) Arrogant.Elf написал(а):
Цитата |
Поставь префиксы просто переменным. |
Точно! =) Тем более уже есть константа с префиксам которая добавляется при обращении к таблицам БД!
Спасибо, сам как-то не додумал до этого)
Спустя 1 минута, 52 секунды (1.09.2010 - 16:09) Arrogant.Elf написал(а):
Цитата |
Arrogant.Elf файл1 session_name('sessiy1'); start_session(); $_SESSION['ee']=1; файл2 session_name('sessiy2'); start_session(); // Здесь уже не будет перемененной ee |
То есть можно в каждой копии скрипта использовать как раз префикс для session_name =)?
Спасибо
Спустя 1 минута, 4 секунды (1.09.2010 - 16:10) Basili4 написал(а):
не перфикс а имя сессии
Спустя 1 минута, 50 секунд (1.09.2010 - 16:11) Arrogant.Elf написал(а):
Цитата |
не перфикс а имя сессии |
А не должно ли быть это имя сессии уникальным для каждого пользователя?
Спустя 1 минута, 41 секунда (1.09.2010 - 16:13) twin написал(а):
Это имя, а не идентификатор.
_____________
Лучше сорок раз по разу, чем ни разу сорок раз.