За последние 24 часа нас посетили 201185 программистов и 2096 роботов. Сейчас ищут 1704 программиста ...

Warning: session_start(): Cannot send session cookie ....

Тема в разделе "PHP для новичков", создана пользователем Guliver, 10 янв 2015.

  1. Guliver

    Guliver Новичок

    С нами с:
    26 июн 2013
    Сообщения:
    72
    Симпатии:
    0
    ДОбрый вечер!
    У меня на всех страницах сайта вылезает ошибки: Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /home/lookings/public_html/app/views/layout/layout.php:6) in /home/lookings/public_html/app/core/session.php on line 12 Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /home/lookings/public_html/app/views/layout/layout.php:6) in /home/lookings/public_html/app/core/session.php on line 12
    Пишу сайт на самописном MVC ядре.
    Что только не пробовал:
    - пересохранил все файлы в UTF-8 без BOM
    - проверил начало всех файлов ( все начинаются с первой строки)
    - в php.ini поставил session.cache_limiter = public
    - в .index.php все ini_set заменил на @ini_set

    Ничего не помогает.

    привожу код файлов.

    session.php
    Код (Text):
    1. <?php
    2.  
    3.  
    4. //Session - класс для работы с сессиями
    5. class Session {
    6.  
    7.     //экземпляр session
    8.     public static $instance;
    9.  
    10.     //construct
    11.     protected function __construct() {
    12.         session_start();
    13.     }
    14.  
    15.     //старт сессии
    16.     public static function init() {
    17.         if(!isset(self::$instance)) {
    18.             self::$instance = new self();
    19.         }
    20.         return self::$instance;
    21.     }
    22.  
    23.     //массив сессии
    24.     public function current() {
    25.         if (!is_null($_SESSION)) {
    26.             return $_SESSION;
    27.         } else {
    28.             return null;
    29.         }
    30.     }
    31.  
    32.     //получение значения
    33.     public function get($key) {
    34.         if (isset($_SESSION[$key])) {
    35.             return $_SESSION[$key];
    36.         } else {
    37.             return null;
    38.         }
    39.     }
    40.  
    41.     //установка значения
    42.     public function set($key, $value) {
    43.         $_SESSION[$key] = $value;
    44.     }
    45.  
    46.     //очистка массива сессии
    47.     public function clear() {
    48.         $_SESSION = array();
    49.     }
    50.  
    51.     //уничтожение сессии
    52.     public function destroy() {
    53.         session_destroy();
    54.     }
    55. }
    и loyout.php


    Код (Text):
    1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    2. <html>
    3.     <head>
    4.         <meta name="viewport" content="width=device-width, initial-scale=1.0">
    5.         <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    6.         <title><?php echo $this->getTitle(); ?></title>
    7.         <!-- набор инструментов Bootstrap -->
    8.         <link href="<?php echo HtmlHelper::baseUrl(); ?>/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
    9.         <link href="<?php echo HtmlHelper::baseUrl(); ?>/css/main.css" rel="stylesheet" media="screen">
    10.         <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
    11.         <script type="text/javascript" src="<?php echo HtmlHelper::baseUrl(); ?>/bootstrap/js/bootstrap.min.js"></script>
    12.     </head>
    13. <body>
    14.     <div id = 'wrapper'>
    15.         <div class = 'container'>
    16.             <div class="navbar navbar-inverse">
    17.             <div class="navbar-inner">
    18.             <a class="brand" href="<?php echo HtmlHelper::newUrl(); ?>"><?php echo MyApplication::get()->params('name'); ?></a>
    19.             <ul class="nav">
    20.                 <li><?php echo HtmlHelper::link('about', 'About', array('id' => 'about')); ?></li>
    21.                 <li><?php echo HtmlHelper::link('contact', 'Contact'); ?></li>
    22.                 <?php if (is_null(Session::init()->get('name'))) { ?>
    23.                 <li><?php echo HtmlHelper::link('my/login', 'Login'); ?></li>
    24.                 <?php } else { ?>
    25.                 <li><?php echo HtmlHelper::link('my/logout', 'Logout'); ?></li>
    26.                 <?php } ?>
    27.             </ul>
    28.  
    29.             <form class="navbar-search pull-right">
    30.                 <input type="text" class="search-query" placeholder="Search">
    31.             </form>
    32.         </div>
    33.         </div>
    34.             <div class="row">
    35.                 <div class = 'span3'>
    36.                     <ul class="nav nav-list">
    37.                         <li class="nav-header">Menu 1</li>
    38.                         <li class="active"><a href="#">PHP</a></li>
    39.                         <li><a href="#">Python</a></li>
    40.                         <li><a href="#">Javascript</a></li>
    41.                         <li><a href="#">MongoDB</a></li>
    42.                         <li><a href="#">PostgreSQL</a></li>
    43.                         <li><a href="#">MySQL</a></li>
    44.                         <li><a href="#">Ruby</a></li>
    45.                         <li><a href="#">C/C++</a></li>
    46.                     </ul>
    47.                     <br/>
    48.  
    49.                     <ul class="nav nav-list">
    50.                         <li class="nav-header">Menu 2</li>
    51.                         <li><a href="#">PHP</a></li>
    52.                         <li><a href="#">Python</a></li>
    53.                         <li><a href="#">Javascript</a></li>
    54.                         <li><a href="#">MongoDB</a></li>
    55.                         <li><a href="#">Ruby</a></li>
    56.                         <li><a href="#">C/C++</a></li>
    57.                     </ul>
    58.                     <p>&nbsp;</p>
    59.  
    60.  
    61.        
    62.    
    63.                        
    64.                        
    65.                 </div>
    66.                 <div class = 'span8'>
    67.                     <?php include $content; ?>
    68.                 </div>
    69.             </div>
    70.         </div>
    71.  
    72.         <div id = 'push'></div>
    73.     </div>
    74.  
    75.     <div id = 'footer'>
    76.         <div class="container">
    77.             <p class="muted credit">Copyright &copy; <?php echo date('Y');?> by <b><?php echo MyApplication::get()->params('name');?></b>
    78.             <br/>Design: <a href="http://twitter.github.io/bootstrap">Twitter Bootstrap</a> </p>
    79.            
    80.         </div>
    81.     </div>
    82. </body>
    83. </html>
    Может кто знает причину?
     
  2. artoodetoo

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

    С нами с:
    11 июн 2010
    Сообщения:
    11.132
    Симпатии:
    1.251
    Адрес:
    там-сям
    Re: Warning: session_start(): Cannot send session cookie ...

    А перед этим сообщением есть другие сообщения об ошибках?

    Добавлено спустя 1 минуту 2 секунды:
    Re: Warning: session_start(): Cannot send session cookie ....
    это ты зря. "собака", в данном случае, враг человека!
     
  3. Guliver

    Guliver Новичок

    С нами с:
    26 июн 2013
    Сообщения:
    72
    Симпатии:
    0
    Re: Warning: session_start(): Cannot send session cookie ...

    Нет. Кроме этих двух ошибок нет никаких.
     
  4. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Warning: session_start(): Cannot send session cookie ...

    loyout.php шестая строчка, начало вывода, ты видимо без ob_start делал шаблонитизатор
     
  5. Guliver

    Guliver Новичок

    С нами с:
    26 июн 2013
    Сообщения:
    72
    Симпатии:
    0
    Re: Warning: session_start(): Cannot send session cookie ...

    Да без нее. Нужно где-то в начале прописать
    Код (Text):
    1. <?ob_start();?>
    ??
     
  6. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Warning: session_start(): Cannot send session cookie ...

    Нет, посмотри пример в документации.
     
  7. Guliver

    Guliver Новичок

    С нами с:
    26 июн 2013
    Сообщения:
    72
    Симпатии:
    0
    Re: Warning: session_start(): Cannot send session cookie ...

    Спасибо посмотрю.
     
  8. osvical

    osvical Новичок

    С нами с:
    9 янв 2015
    Сообщения:
    67
    Симпатии:
    0
    Re: Warning: session_start(): Cannot send session cookie ...

    а почему нет? если прописать в начале, код будет накапливаться и вывод произойдет автоматически при окончании скрипта. это позволит редактировать заголовки по всему коду в любом месте. удобно.
     
  9. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Re: Warning: session_start(): Cannot send session cookie ...

    osvical, а зачем тогда он меня спросил, если он проверил и всё работает?
    Ну в документации ещё про callback, будет легче понять как производить изменения после генерации всего.