Проблема с сеансами

agx

Программер :-)
Проблема с сеансами

Доброго времени суток.
Возникла такая проблема:
У меня флаг, авторизован пользователь, или нет, хранится в переменной сеанса. На главной странице пользователь авторизуется, и в дальнейшем может свободно гулять по всему сайту.
На моем локальном сервере все отлично работает, однако на другом сервере (в сети предприятия) в определенных ситуациях сеанс куда-то теряется. К примеру, захожу я на одну из страниц, перехожу с нее на нее же по ссылке с параметрами. Сеанс не теряется. Перехожу по другой, точно такой же ссылке, но с другими параметрами - сеанс куда-то исчезает!
В коде скрипта параметры сеанса вообще никак не используются, тоесть исключается какая-либо перезапись их в зависимости от переданных скрипту параметров. Единственное, я вывожу одну из переменных сеанса, чтобы видеть, сохранился ли он.
Подскажите, может ли это быть связано с какой-либо настройкой сервера? Или, может, есть какой-то недочет в моем коде?
 

Andreika

"PHP for nubies" reader
ну и посмотри что там делается по "точно такой же ссылке, но с другими параметрами"
 

SiMM

Новичок

agx

Программер :-)
Andreika
По "точно такой же ссылке, но с другими параметрами" выводится та же самая страница, но в другом виде - данные, извлеченные из БД отображаются по-другому. Ничего такого необычно там не делается. Просто рисуется таблица и выводится немного JavaScript кода.
SiMM
На этой странице, действительно, сессию стартовать не нужно. Но ничего плохого ведь не может произойти? Или может? Дело в том, что флаг авторизации требуется использовать на тех страницах, на которые можно перейти с вышеупомянутой. Обнаружив, что данные сеанса куда-то теряются, я решил проверить, в какой момент это происходит. Выходит, что донести данные пользователя в сессии до тех страниц, где они понадобятся не получается - они теряются на полдороге.
Самое интересное, что происходит это как-то избирательно - в некоторых случаях теряются, а в некоторых - нет. Тоесть, если с вышеупомянутой страницы сразу перейти на требуемую (где используется переменная сеанса), то все проходит хорошо. Но если погулять по ссылкам на странице, то данные сеанса исчезают.
P.S. Для передачи SID используются куки. На сервере в настройках php это разрешено.
 

SiMM

Новичок
> Но ничего плохого ведь не может произойти? Или может?
Если слать поисковики и индексацию лесом - то ничего плохого произойти не может.

> Дело в том, что флаг авторизации требуется использовать на тех страницах, на которые можно перейти с вышеупомянутой.
Нет сессии - нет и флага авторизации.

> Тоесть, если с вышеупомянутой страницы сразу перейти на требуемую (где используется переменная сеанса), то все проходит хорошо. Но если погулять по ссылкам на странице, то данные сеанса исчезают.
Вот и выясняй, в чём дело. Матчасть по сессиям я тебе дал - всё что необходимо знать и использовать при отладке - там есть.
 

agx

Программер :-)
SiMM
Мануал я уже на 2 раза перечитал. Дело-то в том, что на моем сервере все отлично работает, а вот на другом - нет. Вот мне и думается, что проблема все-таки в настройках сервера. Передача идентификатора сессии через куки там включена, а какие еще параметры в данном случае могут иметь значение?
 

agx

Программер :-)
Все, нашел, кажется, источник проблемы.
Все дело было в строке
---
echo '<img id="cover_'.$i.'" class="picture" src=""/>';
---
Когда я заменил ее на
---
'<img id="cover_'.$i.'" class="picture" src="covers/_no_image_.png"/>';
---
Все стало работать нормально.
Теряюсь в догадках, почему это вызывало ошибку. Ну нет картинки, ну и что? Это ведь проблема браузера. При чем здесь сервер? К тому же, этот же код раньше работал нормально и на моем сервере, и на другом. Там IIS стоит, у меня Apache.
Если знаете, почему вышеприведенная строка вызывала ошибку - pleace, напишите! Я то я в шоке просто.

-~{}~ 24.10.05 12:38:

Dreammaker
Да неохота URL загромождать... к тому же, раз есть куки, чего бы их не использовать.
 

kruglov

Новичок
echo '<img id="cover_'.$i.'" class="picture" src=""/>'; - это не значит, что картинки нету, это значит, что вы заставляете браузер грузить текущую директорию в качестве картинки.

А уж почему загрузка текущей папки (возможно, главной страницы) вызывает такие эффекты - это уже вам виднее, кто из нас автор сайта?
 

SiMM

Новичок
> Дело-то в том, что на моем сервере все отлично работает, а вот на другом - нет.
Дело в том, что в таких случаях белые люди занимаются ОТ-ЛАД-КОЙ. А не канючат по форумам.
 

Dreammaker

***=Ф=***
> Да неохота URL загромождать... к тому же, раз есть куки, чего бы их не использовать.
а если их не будет?.. Прощай юзверь?
 

agx

Программер :-)
SiMM
Да вот я и занялся... и нашел-таки у себя ошибку.
Dreammaker
Это для внутреннего использования, и куки задействованы не только этим сайтом. Так что пользователям все равно без них не обойтись. А вообще, конечно, для других целей было бы правильнее SID через URL передавать, чтобы не терять пользователей, которые по тем или иным причинам куки отключают.
kruglov
Да, наверное, это все объясняет, спасибо!
---
Всем спасибо! :)
 
Сверху