За последние 24 часа нас посетили 49896 программистов и 1733 робота. Сейчас ищут 784 программиста ...

Проблема с сессиями

Тема в разделе "Прочие вопросы по PHP", создана пользователем literator, 29 янв 2013.

  1. literator

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

    С нами с:
    29 янв 2013
    Сообщения:
    18
    Симпатии:
    0
    При написании небольшого сайта возникли проблемы с сессиями. Для проверки написал страничку, состоящую из одной только сессии и вывода ее на экран. вот что выдает
    Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at W:\domains\proga\d.php:6) in W:\domains\proga\d.php on line 6

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at W:\domains\proga\d.php:6) in W:\domains\proga\d.php on line 6
    ll

    Код прилагается:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    </head>
    <?php session_start();
    $_SESSION['v']='ll';
    echo $_SESSION['v'];
    ?>
    <body>
    </body>
    </html>
    Помогите разобраться. Насчет BOM уже прогуглил - проверил -отсутствуют скрытые символы. Помогите пожалуйста
     
  2. r3l0c

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

    С нами с:
    10 янв 2013
    Сообщения:
    453
    Симпатии:
    4
    Весело.
    Код (Text):
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html xmlns="http://www.w3.org/1999/xhtml">
    3. <head>
    4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    5. </head>
    6. <?php session_start();
    Дак вывод то уже началсяЮ прям начался с <!DOCTYP....

    Добавлено спустя 12 минут 36 секунд:
    Невидимые отсутствуют, зато видимых целый паровоз)
     
  3. Tokha

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

    С нами с:
    29 янв 2013
    Сообщения:
    77
    Симпатии:
    0
    Улыбнуло:
    А по теме... RTFM!
    session_start должна быть вызвана до отправки заголовков.

    Собственно, об этом, кстати, говорят и сообщения PHP.
     
  4. literator

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

    С нами с:
    29 янв 2013
    Сообщения:
    18
    Симпатии:
    0
    Спасибо всем большое

    Спасибо всем большое. Проблема решилась.
     
  5. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    если б все r этот m то не было бы форумов
     
  6. Tokha

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

    С нами с:
    29 янв 2013
    Сообщения:
    77
    Симпатии:
    0
    Форумы были бы, но они наполнялись бы не копипастом с мануалов, а обсуждением решений конкретных задач с использованием совокупности средств в этих M описанных. Причем с относительно полным пониманием, как эти средства следует применять в отдельности.

    Кстати, изначально и относительно недавно, BBS и news группы, которые сейчас переродились в форумы, в подавляющем большинстве, были наполнены процентов на 90 "полезным" контентом. И несколько подобных топику вопросов, помимо единственно ожидаемого ответа "RTFM", легко могли привести к "бану". И от этого подписчиков меньше не становилось, а с увеличением количества практически не падало их "качество".
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    вот не надо только старпёрским нытьём заниматься. Фидо было наполнено на 90% той же хернёй, что и весь интернет сейчас. И тем же ртфм которое пришло оттуда именно по той же причине, что было употреблено тобой позавчера.
     
  8. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Код (PHP):
    1. <?php 
    2. $_SESSION['v']='ll';
    3. $session=isset($_SESSION['v'])?$_SESSION['v']:'';
    4. ?>
    5. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    6. <html xmlns="http://www.w3.org/1999/xhtml">
    7. <head>
    8. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    9. </head>
    10. <body>
    11.     <?=$session?>
    12. </body>
    13. </html>
    Желательно сессии и заголовки отправлять до html, вообще рекомендуется писать реализации php выше (до) html, а вывод уже в html.
     
  9. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ob_start спасёт
     
  10. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Смысл?
    Да и удобнее когда все наверху... меньше писанины и путаницы.
     
  11. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    удобнее логику вообще отдельно держать. все посчитали, сформировали, показали. имхо.
     
  12. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям