Редирект + сессии

zerkms

TDD infected
Команда форума
Редирект + сессии

прива всем.

для редиректа я юзаю функцию:

...
redirect ('some_url', 3);
...

function redirect($url, $paus=0)
{
header('Refresh: '.$paus.'; URL=' . $url);
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><meta http-equiv="refresh" content="'.$paus.'; url=' . $url . '"><title>Отчёт смены '.chr(187).' редирект</title></head></html>';
exit;
}

если на серваке выставить register_globals = Off; то при подобном редиректе естественно теряются сессионные переменные. подскажите как изменить данную функцию чтоб всё было нормально???
 

zerkms

TDD infected
Команда форума
эээээ.....
если ходить по ссылкам сайта - то сессия отслеживается нормально даже с register_globals = Off;, но если вызвать вышеизложенную функцию, то все переменные обнуляются.
я и говорю - что причина не глобалсы, а функция. и вопрос: есть ли в функции явная ошибка?
 

Сергей123

Новичок
zerkms
у тебя, вероятнее всего, теряется идентификатор сесссии.
Используй при редиректе через header() константу SID, либо session_name() + session_id().
 

SiMM

Новичок
zerkms, у тебя хидер неправильный - для редиректа используется [m]header[/m]('Location: url') - если куки выключены (а у пользователя они могут быть и отключены) - к этому нужно ещё не забыть добавить SID. Подробнее - в вышеприведённых ссылках.
 
Сверху