Zend Session Fatal error - PullRequest
       1

Zend Session Fatal error

2 голосов
/ 10 февраля 2011

У меня возникла ошибка Zend Session с моим проектом Zend:

Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'Zend_Session::start() - /home/besthomes/public_html/Zend/Session.php(Line:426): Error #2 session_start() [<a href='function.session-start'>function.session-start</a>]: Cannot send session cache limiter - headers already sent (output started at /home/besthomes/public_html/Zend/Exception.php:1) Array' in /home/besthomes/public_html/Zend/Session.php:432 Stack trace: #0 /home/besthomes/public_html/index.php(47): Zend_Session::start() #1 {main} thrown in /home/besthomes/public_html/Zend/Session.php on line 432

Я написал этот код в файле начальной загрузки:

include('include.php');
include "Zend/Loader.php";

Zend_Loader::registerAutoload();
Zend_Session::start();

Я не мог знать причинуза эту ошибку.пожалуйста, помогите выйти из этой проблемы.Спасибо.

Ответы [ 2 ]

2 голосов
/ 10 февраля 2011

Проверьте, нет ли у вас дополнительных символов в ваших файлах.Например -
этот код не вызовет ошибку:

<?php 
session_start();

, но будет:

(blank line here!)
<?php 
session_start();

То же самое относится и к включенным файлам.Но когда вы включаете файлы, вы также должны заметить, что после закрывающего тега не должно быть дополнительных строк (если вы их используете).Это будет работать:

<?php
    //content of included file
?>

, но что-то подобное не будет:

<?php
    //content of included file
?>    
(blank line here!)
(!and here)

Так вот почему некоторые люди считают, что не использует закрывающий тег в скриптах php какХорошая практика.

Вы также можете обойти эту проблему, используя ob_start и ob_end_flush, но, как я уже сказал - это обходной путь , а не решение .

2 голосов
/ 10 февраля 2011

Где-то в вашем коде выполняется вывод, для которого PHP будет отправлять заголовки HTTP. Поскольку заголовки HTTP уже отправлены, они не могут быть отправлены снова при попытке начать сеанс. Если вы хотите использовать сеансы, лучше начать сеанс рано или первым делом.

С другой стороны, я видел эту ошибку, когда мое приложение выводит отдельную ошибку, таким образом отправляя заголовки HTTP.

Пожалуйста, ознакомьтесь с документами для получения дополнительной информации: http://framework.zend.com/manual/en/zend.session.html

А именно раздел «Начало сеанса»: http://framework.zend.com/manual/en/zend.session.advanced_usage.html

Совет: Удалите / закомментируйте строки, которые начинают сеанс, и посмотрите, что выводится. Может быть другая ошибка, даже не связанная с вашим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...