Добрый день. Изучаю PHP по книге Фленова и столкнулся с задачей сохранения данных в сеансе. Есть пример на первой странице есть форма с полем для ввода имени, кнопка и ссылка. При вводе имени и нажатии на кнопку имя должно храниться в сеансе и при переходе по ссылке должна открыться вторая страница php где будет видно то имя. Но что-то не получается у меня. Помогите с кодом или подскажите какие настройки сделать php., вообще как правильнее всего организовать такую задачу? Код первой страницы: Код (Text): <?php if (session_start()) { print("OK"); } $user=$UserName; session_register ("user"); ?> <form action="session.php" method="get"> Имя пользователя: <input name="UserName"> <input type="submit" name="sub" value="Go"> </form> <a href="session1.php">This is a link</a> Код второй страницы: Код (Text): <?php session_start(); print("<p> Hello, $user!"); ?>
попробуйте вместо $user во втором файле обратиться к $_SESSION['user'] <?php session_start(); print("<p> Hello, ".$_SESSION['user']."!"); ?>
Вот это срока Код (Text): $user=$UserName; session_register ("user"); Вроде бы отправляешь методом GET а не где это не указываешь при записи. Должно быть такого вида : Код (Text): $user = $_GET['UserName']; и присваивание можно сделать $_SESSION['user'] = $user;
книжка явно устарела. во времена PHP4 действительно register_globals по умолчанию был включен и session_register() считалась нормой. книжка может быть и была хорошей, но теперь придется поменять на более современную. Добавлено спустя 7 минут 53 секунды: Гаджи, всё что тебе на первых порах надо знать про сессию, это то что: сессия зависит от куки. научись смотреть состояние кук в браузере и ты увидишь там переменную PHPSESSID, если есть действующая сессия. если ее удалить, пропадут и сессионные данные. иногда это нужно при отладке. session_start() ставят до любого вывода (до "echo ..." или "?> хтмл" ) иначе не сработает после того как session_start() выполнилась, становится доступна суперглобальная переменная $_SESSION, в которой ты и сохраняешь что нужно между разными обращениями к страницам. если "на другой странице" ты забудешь поставить session_start(), то и переменной не будет.