Интересная заковырка с сессиями @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 7 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Заголовок сообщения: Интересная заковырка с сессиями
Сообщение Добавлено: 30 Январь 2004, 13:59:56 
Привет!

Есть php скрипты, один из которых авторизирует юзера через сессии (используется $_SESSION["userd_id"] для переменных сессии), остальные юзают выставленную переменную в качестве идентификатора сессии.

Проблема в том, что на одном хостинге это работает (из любой директории), на другом - с непостоянной регулярностью (из корневого Document Root - всегда, а из поддиректорий - не всегда). На втором хостинге для сайта имеется несколько алиасов (www.host.ru, host.ru, www.host.nnov.ru). Если из-за этого, то почему из Document Root директории авторизирует всегда ?!

ПОд термином "не работает" я имею ввиду - после авторизации пользователя другие скрипты получают значение переменной $_SESSION["userd_id"] = '', а не id.

Сравнивал результат вывода phpinfo() - для сессий одинаковый и для первого и второго хостинга. На рабочем хостинге стоит php 4.3.1, на нерабочем - 4.3.3 (но вряд ли от этого что-то меняется).

То ли сессия выставляется для неправильного пути, то ли expiration time у нее кривой при загрузке скриптов из поддиректорий ?!

Ваши соображения ?

Буду рад любым комментариям.
Long Муж.
SubAdmin
Теоретик
17
Сообщения: 4362
Зарегистрирован: 25.04.01
Откуда: Москва
Сообщение Добавлено: 30 Январь 2004, 14:01:59 
gregzem, попробуй запретить использование кук для хранения ID сессии.

_________________
Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
<sergio.ga>
новый человек
0
Сообщения: 102
Зарегистрирован: 13.06.03
Откуда: Харьков, Украина
Сообщение Добавлено: 30 Январь 2004, 15:29:37 
Попробуй принудительно перебрасывать с дублирующих доменов на основной ещё в начале работы.
gregzem Муж.
новый человек
2
Сообщения: 252
Зарегистрирован: 29.04.03
Сообщение Добавлено: 30 Январь 2004, 16:18:16 
Мне кажется при перебрасывании с дублирующих доменов погибнет сессия.

На самом деле я пробовал работать полностью с одним доменом: то есть беру домен www.host.ru и все ссылки у меня на www.host.ru/dir/script.php, www.host.ru/dir/script1.php, www.host.ru/dir/script2.php. Все равно, дальше первой страницы после авторизации не пускает. В остальных скриптах массив $_SESSION пуст. Вот такая ботва!

МОжно ли как-то отследить какие текущие параметры сессии установлены ? Штука в том, что с помощью стандартной функции PHP для получении параметров сессии мне возвращается path ="/", expires = "0" остальные два поля - пустые. Это ИМХО неправильно.
<sergio.ga>
новый человек
0
Сообщения: 102
Зарегистрирован: 13.06.03
Откуда: Харьков, Украина
Сообщение Добавлено: 2 Февраль 2004, 13:01:24 
В начале инициализирующего модуля (у тебя ведь есть такой?) ещё до session_start() проверяешь хост и если он не "www.host.ru", делаешь header("Location: http://www.host.ru/");
Ну остаток запроса, само собой, дописываешь.
Т.о. открывается сессия всегда на одном домене. На остальных до её открытия скрипт не доходит.
Орлис
новый человек
0
Сообщения: 61
Зарегистрирован: 28.07.03
Сообщение Добавлено: 6 Февраль 2004, 13:25:16 
Прочитать _куки_ может только домен, его записавший. Security.
Выход: либо не использовать куки,
либо работать только с одним доменом, а с остальных перебрасывать на главный.
Crazy Муж.
Модератор
107
Сообщения: 14561
Зарегистрирован: 23.12.01
Откуда: Moscow
Сообщение Добавлено: 6 Февраль 2004, 13:58:42 

Орлис писал(а):
Прочитать _куки_ может только домен, его записавший. Security



Прочитать куки вообще никто не может. Браузер посылает куки тому домену, для которого они выставлены. Соответственно, никто не запрещает выставить куки для другого домена.
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 7 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100