За последние 24 часа нас посетили 38060 программистов и 1286 роботов. Сейчас ищут 992 программиста ...

Старо как мир Cannot send session cache limiter

Тема в разделе "PHP для новичков", создана пользователем Dima4321, 2 дек 2010.

  1. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    PHP:
    1. Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/xxx/www/site7/public_html/nnn/edit.php:2) in /home/xxx/www/site7/public_html/nnn/edit.php on line 5
    вот кусочек кода файла edit.php

    PHP:
    1. <?php
    2. ini_set('display_errors',1);
    3.  
    4.  
    5. include('conn.php');
    6.  
    7.  
    8.  
    9. if(isset($_GET['band']))

    Читал факи по этой ошибке.. в голову лезет лишь одно возможно я не прав. Тогда поправьте

    Предполагаю, что конструкцию
    Код (Text):
    1. ini_set('display_errors',1);
    2. error_reporting(E_ALL);
    надо поставить после session_start(); тем самым сохранив правило что не допускается, чтобы перед сессией выводилдось что-то другое в браузер.

    Возможно я говорю глупость. Но припереставноке данная ошибка исчезает.
     
  2. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    дим забей. пхп не для тебя =)
     
  3. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Значит есть ошибки, которые уже вывелись.
     
  4. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    Можно было и промолчать если совсем нечего сказать...
     
  5. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    есть чего, но писать длинно.
     
  6. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    кстати вот интересно...а если у меня
    без

    все чистенько ошибок в скриптах не вылазит и сам по себе он работает выполняя нужные мне операции на моем хостинге.

    Могу я не париться и отсавить все как есть..при условии, что сайт я не буду переводить на другой хостинг. Т.е. пользую сам ...

    Ммм.??

    Я так понимаю есть определенные notice и прочие warning которые не критичны с точки зрения выполнения скриптов и самой работоспособности .

    ?????
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в логе надо смотреть ошибки! =)
     
  8. Volt(220)

    Volt(220) Активный пользователь

    С нами с:
    11 июн 2009
    Сообщения:
    1.640
    Симпатии:
    1
    Как повезет. Вполне вероятно скрипт просто еще не работал с теми данными для которых критично верное выполнения участка с notice.
     
  9. Dima4321

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

    С нами с:
    1 апр 2009
    Сообщения:
    683
    Симпатии:
    0
    От данной ошибки помогло осознание вот этого

    Выручил notepad++


    Также в скрипте были ошибки типа:

    A session had already been started - ignoring session_start()

    Помогло вот это

    PHP:
    1. if(session_id() == '')
    2. {
    3.      session_start();
    4.  }

    Итого имею очень простенький скрипт авторизации:

    index.php

    PHP:
    1. <?php
    2.  
    3. ini_set('display_errors',1);
    4.  
    5.  
    6. include('conn.php');
    7.  
    8.  
    9. if(!isset($_SESSION['auto']))
    10.  
    11. {
    12.  
    13. ?>
    14.  
    15. <form action="action.php" method="post">
    16.     <table>
    17.         <tr>
    18.             <td>Логин:</td>
    19.             <td><input type="text" name="LOGIN" /></td>
    20.         </tr>
    21.         <tr>
    22.             <td>Пароль:</td>
    23.             <td><input type="password" name="PASS" /></td>
    24.         </tr>
    25.         <tr>
    26.             <td></td>
    27.             <td><input type="submit" name="enter" value="Войти" /></td>
    28.         </tr>
    29.     </table>
    30. </form>
    31.  
    32. <?php
    33.  
    34. }
    35.  
    36.  
    37. else
    38.  
    39. {
    40.  
    41. require('delo.php');
    42.  
    43. }
    44.  
    45. ?>
    action.php

    PHP:
    1. <?php
    2.  
    3. ini_set('display_errors',1);
    4.  
    5.  
    6. if (isset($_POST["LOGIN"]) and isset($_POST["PASS"]))
    7.  
    8. {
    9.  
    10.  if ($_POST["LOGIN"]=='dima' and $_POST["PASS"]=='abcd')
    11.  
    12.  
    13.  {
    14.  
    15.  
    16.  $_SESSION['auto']=true;
    17.  
    18.  require('delo.php');
    19.  
    20.  
    21.  }
    22.  
    23.  
    24.  else
    25.  
    26.  
    27.  {
    28.  
    29. header('Location:index.php');
    30.  
    31.  } }
    32.  
    33. else
    34.  
    35. {
    36.  
    37. header('Location:index.php');
    38.  
    39. }
    40.  
    41.  
    42.  
    43.  ?>

    delo.php

    PHP:
    1. <?php
    2.  
    3. ini_set('display_errors',1);
    4.  
    5.  
    6.  
    7. if(session_id() == '')
    8. {
    9.      session_start();
    10.  }
    11. if(isset($_SESSION['auto']))
    12.  
    13. {
    14.  
    15. echo "ура<br><br>";
    16. echo "<a href='logout.php'>выйти с этого сайта</a>";
    17.  
    18. }
    19.  
    20. else
    21.  
    22. {
    23.  
    24.  
    25. echo "сессия пока не запущена<br><br>";
    26.  
    27. echo "<a href='index.php'>Домой</a>";
    28.  
    29. }
    30.  
    31. ?>
    Logout.php

    PHP:
    1. <?php
    2. ini_set('display_errors',1);
    3.  
    4.  
    5.  
    6. header ('Location:index.php');
    7.  
    8. ?>

    Если есть конструктивные замечания по данному коду буду рад услышать полезную критику.)
     
  10. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    в нетбинсе работай