session side-effect which existed until PHP 4.2.3.

claygod

Новичок
session side-effect which existed until PHP 4.2.3.

У одного из пользователей моего скрипта :

И еще, время от времени выходит такое сообщение:

Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

Это проявляется и на Денвере и на хостинге.


Вот что я нарыл:
в случае, если в скрипте есть переменная сессии не имеющая значения, и глобальная переменная с тем же именем

Я использую такой код:
session_start();
$sesia_id=session_id();
........
if(file_exists("data/sessions/".session_id().".txt")==true)
{
$ses=file("data/sessions/".session_id().".txt");
..........
if(...)
{$fop=fopen("data/sessions/".session_id().".txt", "w+");

Ошибка экзотическая. Ко мне первый раз с ней обращаются.
Хочу разобраться с причинами выдаваемого РНР варнинга
 

dimagolov

Новичок
claygod, ответь на вопросы:
1. зачем нужна переменная $sesia_id
2. зачем понадобились переменная сессии не имеющая значения, и глобальная переменная с тем же именем.
3. что за значение в register_globals
4. зачем лазить в файл сессий руками

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

claygod

Новичок
dimagolov, попробую ответить
1.$sesia_id - чисто утилитарно в тексте формы чтобы отправлять и указывать эту переменную (можно и без этой переменной обойтись вполне.
2.Мне требуется уникальный идентификатор сессии
3.Скрипт работает при off
4.Файл с номером сессии нужен, чтобы не трогать куки и проч.

о П.С. - сейчас это раритет (сов.газеты)

Обобщенно - возможно, получать номер сессии можно и другими способами. Кроме того, возможно нужно ОБЯЗАТЕЛЬНО давать имя сессии, вот этот нюанс мне неизвестен
 

DeAle

Новичок
эта ошибка говорит о том, что ты используешь гдето имя переменной которую уже определил например
$_SESSION['var'];

и пытаешься создать чтото типа
$var = 'var';

попробуй изменить имена переменных
 

Фанат

oncle terrible
Команда форума
в случае, если в скрипте есть переменная сессии не имеющая значения, и глобальная переменная с тем же именем
где ты это прочел?

-~{}~ 12.09.08 10:39:

Я использую такой код:
$ses=file("data/sessions/".session_id().".txt");
{$fop=fopen("data/sessions/".session_id().".txt", "w+");
жесть
 

Фанат

oncle terrible
Команда форума
да какая разница
сам принцип работы с сессиями несколько отличается от общепринятого.

и я вопрос, между прочим, задал
 

Фанат

oncle terrible
Команда форума
и что - там не написано, как решить эту проблему?
 

AmdY

Пью пиво
Команда форума
claygod
просто удали весь этот гавнокод, можешь оставить
session_start();
$sesia_id=session_id(); // если так уж нужно

-~{}~ 23.09.08 00:32:

3.Скрипт работает при off
при отключеныйх сессиях?
 
Сверху