1-ый файл PHP: <?php // Смотрим пришло ли что-нибудь из формы if(!empty($_POST)) { session_start(); $_SESSION['username'] = $_POST[user]; echo 'Привет, '.$_SESSION['username']."<br>"; } ?> <a href="page2.php">На следующую страницу </a> <form action="" method=post> <input type=text name=user value=polzovatel> <input type="submit" value="Отправить" name="edit"> </form> Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at z:\home\test1.ru\www\session\page1.php:1) in z:\home\test1.ru\www\session\page1.php on line 4 Notice: Use of undefined constant user - assumed 'user' in z:\home\test1.ru\www\session\page1.php on line 5 Почему он не хочет открывать ссессию и передавать ее между файлами 2-ой файл PHP: <? session_start(); $_SESSION['username'] = $_POST[user]; echo 'Привет, '.$_SESSION['username']."<br>"; ?> <a href="page2.php">На следующую страницу </a> 3-ий файл PHP: <? session_start(); unset($_SESSION['username']); // разрегистрировали переменную echo 'Привет, ' .$_SESSION['username']; /* теперь имя пользователя уже не выводится */ session_destroy(); // разрушаем сессию ?>
Листинг файла 1 полностью приведен? Открытие сессии должно быть до любого вывода, другими словами, в первых строчках скрипта.
Так не пойдет. Ибо данные, приходящие от пользователя хранятся в массиве $_POST (в твоем случае). Имена элементов ассоциативного (ключи у которого - слова) массива заключаются в кавычки.
по этой проблеме кто что посоветует ??? Код (Text): Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at z:\home\test1.ru\www\session\page1.php:1) in z:\home\test1.ru\www\session\page1.php on line 4
Найти, что именно у тебя выводится до того, как ты делаешь session_start(). Например, могут выводиться три волшебных байтика, которые "блокнот" добавляет в каждый файл, сохранённый в формате utf8.