За последние 24 часа нас посетили 19875 программистов и 1643 робота. Сейчас ищут 1829 программистов ...

помогите разобраться с сессиями

Тема в разделе "PHP для новичков", создана пользователем stunt, 15 мар 2008.

  1. stunt

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

    С нами с:
    10 янв 2008
    Сообщения:
    35
    Симпатии:
    0
    1-ый файл
    PHP:
    1.  <?php
    2.  // Смотрим пришло ли что-нибудь из формы
    3.  if(!empty($_POST)) {
    4.   $_SESSION['username'] = $_POST[user];
    5.   echo 'Привет, '.$_SESSION['username']."<br>";
    6.   }
    7. ?>
    8.   <a href="page2.php">На следующую страницу </a>
    9.  
    10.    <form action="" method=post>
    11.  <input type=text name=user value=polzovatel>
    12.  <input type="submit" value="Отправить" name="edit">
    13.  </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:
    1. <?
    2.   $_SESSION['username'] = $_POST[user];
    3.   echo 'Привет, '.$_SESSION['username']."<br>";
    4. ?>
    5.   <a href="page2.php">На следующую страницу </a>

    3-ий файл
    PHP:
    1. <?
    2.   unset($_SESSION['username']); // разрегистрировали переменную
    3.   echo 'Привет, ' .$_SESSION['username'];
    4.   /* теперь имя пользователя уже не выводится */
    5.   session_destroy(); // разрушаем сессию
    6. ?>
     
  2. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Листинг файла 1 полностью приведен?
    Открытие сессии должно быть до любого вывода, другими словами, в первых строчках скрипта.
     
  3. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    исправь.
     
  4. stunt

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

    С нами с:
    10 янв 2008
    Сообщения:
    35
    Симпатии:
    0
    кто нибудь может сделать готовый вариант, чтобы можно было разобраться с правильным написанием?
     
  5. stunt

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

    С нами с:
    10 янв 2008
    Сообщения:
    35
    Симпатии:
    0
    Исправил, заменив строку $_SESSION['username'] = $_POST[user]; на $_SESSION['username'] = $user;
     
  6. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Так не пойдет. Ибо данные, приходящие от пользователя хранятся в массиве $_POST (в твоем случае).
    Имена элементов ассоциативного (ключи у которого - слова) массива заключаются в кавычки.
     
  7. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    нихрена ты не исправил. читать что ли не умеешь? или англ. подучи,а уж потом php будешь осваивать.
     
  8. stunt

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

    С нами с:
    10 янв 2008
    Сообщения:
    35
    Симпатии:
    0
    по этой проблеме кто что посоветует ???
    Код (Text):
    1. 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
     
  9. RomanBush

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

    С нами с:
    5 дек 2007
    Сообщения:
    798
    Симпатии:
    0
    Адрес:
    200 км от Москвы
    Найти, что именно у тебя выводится до того, как ты делаешь session_start().
    Например, могут выводиться три волшебных байтика, которые "блокнот" добавляет в каждый файл, сохранённый в формате utf8.