За последние 24 часа нас посетили 18797 программистов и 1652 робота. Сейчас ищут 934 программиста ...

Сохранение данных в сеансе

Тема в разделе "Прочие вопросы по PHP", создана пользователем Гаджи, 16 май 2013.

  1. Гаджи

    Гаджи Активный пользователь

    С нами с:
    16 май 2013
    Сообщения:
    3
    Симпатии:
    0
    Добрый день. Изучаю PHP по книге Фленова и столкнулся с задачей сохранения данных в сеансе. Есть пример на первой странице есть форма с полем для ввода имени, кнопка и ссылка. При вводе имени и нажатии на кнопку имя должно храниться в сеансе и при переходе по ссылке должна открыться вторая страница php где будет видно то имя. Но что-то не получается у меня. Помогите с кодом или подскажите какие настройки сделать php., вообще как правильнее всего организовать такую задачу?

    Код первой страницы:
    Код (Text):
    1.  
    2. <?php
    3. if (session_start())
    4. {
    5. print("OK");
    6. }
    7. $user=$UserName;
    8. session_register ("user");
    9. ?>
    10. <form action="session.php" method="get">
    11. Имя пользователя: <input name="UserName">
    12. <input type="submit" name="sub" value="Go">
    13. </form>
    14. <a href="session1.php">This is a link</a>
    Код второй страницы:
    Код (Text):
    1. <?php
    2. session_start();
    3. print("<p> Hello, $user!");
    4. ?>
     
  2. PCSpeaker

    PCSpeaker Активный пользователь

    С нами с:
    26 дек 2007
    Сообщения:
    84
    Симпатии:
    0
    попробуйте вместо $user во втором файле обратиться к $_SESSION['user']

    <?php
    session_start();
    print("<p> Hello, ".$_SESSION['user']."!");
    ?>
     
  3. olegkaz

    olegkaz Активный пользователь

    С нами с:
    21 фев 2013
    Сообщения:
    121
    Симпатии:
    0
    Вот это срока
    Код (Text):
    1.  
    2. $user=$UserName;
    3. session_register ("user");
    Вроде бы отправляешь методом GET а не где это не указываешь при записи. Должно быть такого вида :
    Код (Text):
    1.  
    2. $user = $_GET['UserName'];
    3. и присваивание можно сделать
    4. $_SESSION['user'] = $user;
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.131
    Симпатии:
    1.251
    Адрес:
    там-сям
    книжка явно устарела. во времена PHP4 действительно register_globals по умолчанию был включен и session_register() считалась нормой. книжка может быть и была хорошей, но теперь придется поменять на более современную.

    Добавлено спустя 7 минут 53 секунды:
    Гаджи, всё что тебе на первых порах надо знать про сессию, это то что:

    • сессия зависит от куки. научись смотреть состояние кук в браузере и ты увидишь там переменную PHPSESSID, если есть действующая сессия. если ее удалить, пропадут и сессионные данные. иногда это нужно при отладке.
    • session_start() ставят до любого вывода (до "echo ..." или "?> хтмл" ) иначе не сработает
    • после того как session_start() выполнилась, становится доступна суперглобальная переменная $_SESSION, в которой ты и сохраняешь что нужно между разными обращениями к страницам. если "на другой странице" ты забудешь поставить session_start(), то и переменной не будет.