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

Обсуждение серверного программирования.

Модераторы: Duncon, Yurich

Ответить
Zotaper
Сообщения: 9
Зарегистрирован: 31 янв 2007, 11:58

Всем привет!
Народ, поскажите, пожалуйста, я уже просто не знаю что делать...
Работаю с сессиями, в начале скрипта пишу так:

Код: Выделить всё

session_name('upload');
session_start();

if(isset($HTTP_SESSION_VARS['files_serialesed_array'])) $filesarr = unserialize($HTTP_SESSION_VARS['files_serialesed_array']);
if(isset($HTTP_SESSION_VARS['fcount'])) $fcount = $HTTP_SESSION_VARS['fcount']; else $fcount = "";
if(isset($HTTP_SESSION_VARS['firstload'])) $firstload = $HTTP_SESSION_VARS['firstload']; else $firstload = $_POST['firstload']; 
в конце скрипта пытаюсь сохранить (зарегистрировать) переменные в сессии:

Код: Выделить всё

$files_serialesed_array = serialize($filesarr);
session_register('files_serialesed_array', 'fcount', 'firstload');
session_write_close(); // (это не знаю надо или нет?!) 

почему при перегрузки скрипта методом post, ни одна переменная не сохраняется? причем интересно, что: иногда работает, а иногда нет!!!
Т.е. когда я считал что эта часть уже отлажена и почти дописал свой скрипт, то почемуто переменные перестали сохраняться!!!
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Если вы используете массив $_SESSION (или $HTTP_SESSION_VARS), то не используйте функции session_register(), session_is_registered() или session_unregister().

Функция возвращает TRUE, если все переменные успешно зарегистрированы в сессии.

Если до вызова функции не была вызвана session_start(), то эта функция будет вызвана неявно без параметров. Массив $_SESSION требует явного вызова session_start() перед использованием.







РЕБЯТ ВЫ ЗАДРАЛИ - Учебник сложно почитать!!
Zotaper
Сообщения: 9
Зарегистрирован: 31 янв 2007, 11:58

Вот я и пишу в самом начале :
session_name('upload');
session_start();
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Помогать не буду учебник открой..
Zotaper
Сообщения: 9
Зарегистрирован: 31 янв 2007, 11:58

Если б все дело было в учебнике - я б сюда не лез. Учебник я уже прочитал. Пишу как говорится в учебнике:

Код: Выделить всё

session_name('upload1'); // 'upload1'
session_start();
session_register('files_serialesed_array', 'fcount', 'firstload'); 
и ты в шоколаде, больше ничего не надо! Но вот почему же тогда на локальной тачке все работает, а на серваке нифига? Ну да ладно, не хош не отвечай, люди сюда и с более тупыми вопросами лезут и получают ответы, наверное я не тот форум выбрал...
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

Тебе же написали работаешь с сессией как с массивом не используй session_register

Нужно проверить переменную а потом с ней работать..
session_start();
if(!isset($_SESSION['fcount']) || !is_object($_SESSION['fcount'])){
$_SESSION['fcount'] = array(); //ну или чему там как тебе удобнее реализовывать
}

В ином случае будет твоя переменная в сессии.. Таких переменных можешь наделать тыщу если хочешь..

Почему не работает, хз смотри настройки php на серваке (phpinfo() ;)
Zotaper
Сообщения: 9
Зарегистрирован: 31 янв 2007, 11:58

Ну что ж коли в коде ошибок нет, так и надо писать. А не умничать и слать меня учебники читать.
Ошибка оказалась в пути к интерпретатору php, т.е. она сбивала работу сессии. Эту часть кода я не показывал, потому ошибку Вы и не могли найти!

P.S.: прежде чем задавать вопросы и изучаю литературу, а не наоборот, а если мне нужна литаратура - я так и спрашиваю!!! Потому если влом разбираться с моей проблемой, можно так и сказать, спрошу где-нибудь еще, ведь я ПРОШУ помочь, а не ТРЕБУЮ!
Аватара пользователя
Duncon
Сообщения: 2085
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

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

Литературы в интернете киллометры, одно дело когда я начинал учебник днем с огнем, а если инашел его пол года выкачивать нужно было, но сей час - это чистое лентяйство, еще и смеют голос поднимать..
Ответить