Чет не получается разобраться.... Задача - после сохранения в базу направить пользователя на другую страницу, вывести на той странице сообщение об успехе. И чтобы когда он перейдет на след страницу сообщения уже не было. Реализовывал это так PHP: $_SESSION['message'] = 'success'; header("Location: index.php"); В индексе PHP: if (isset($_SESSION['message']) && !empty($_SESSION['message'])) //выводим сообщение unset($_SESSION['message']); И не работает)))) Т.е. если делать без unset - работает, но сообщение остается в сессии, выводится на каждой странице. А если ставлю unset в любом месте скрипта - то сессия становится пустой и сообщение не выводится
PHP: unset($_SESSION['message']) работает при register_globals=off если он в режиме - on, то надо дописать строчку PHP: session_unregister('message')
А это может быть из-за ob_start, ob_end_flush? т.е. в коде unset естественно идет после вывода. Но это всё загоняется в буфер (йа блондинко)))) Офф конечно))
session_unregister('message'); unset($_SESSION['message']); Мб так? Для верности Кстати стоит посмотреть - относятся ли данные сессии для первой страницы к данным сессии на второй. В плане - в обоих местах есть session_start?
Я так и делаю. То для краткости написано, что выводится, там на самом деле отправляется функции, точнее методу класса, который отвечает за вывод сообщений. Так вот эта временная переменная и оказывается пустой))))) session_start() в начале самом файла. Создается объект User, у него в конструкторе session_start() Короче говоря, спасибо что подсказали, я думал что вдруг туплю и unset в любом месте скрипа гасит переменную(пых же компилятор, думал мож при компиляции бахается). Раз нет - буду ковырять код)))