2013-07-31 6 views
1

Во-первых, я должен сказать, что знаю, что есть другие темы, похожие на эту тему, но я не мог решить свою проблему после прочтения этих тем.session_start() лимит наличности

Так, пожалуйста, перейдите по ссылке: LINK, Вы увидите сообщение об ошибке:

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home3/icompir/public_html/myscript/index.php:1) in /home3/icompir/public_html/myscript/index.php on line 3 

Я знаю, что эта ошибка имеет отношение с заголовками и послал заголовки. но в файле «index.php» заголовки не отправляются до «session_start()»; !

вы можете увидеть код этой страницы:

<?php 
include('inc.php'); 
session_start(); 
include('header.php'); 
?> 
<title>صفحه اصلی</title> 
</head> 
<body><div class="body"> 

<?php 
include('navigation.php'); 
include('sidebar.php'); 
?> 
<div id="content"> 
<strong>در دست اجرا:</strong> 
<ul> 
    <li>بهینه سازی اسکریپت.</li> 
    <li>اضافه کردن امکان تغییر پسورد.</li> 
    <li>اضافه کردن ارسال ایمیل تایید پس از ثبت نام.</li> 
    <li>تذکر هنگام ثبت نام اگر نام کاربری مشابه وجود داشت.</li> 
    <li>اضافه کردن امکان پیام خصوصی.</li> 
    <li>تکمیل بخش پروفایل.</li> 
    <li>پیاده سازی جی کوئری و آژاکس روی قسمت های مختلف سایت ...</li> 
</ul> 

<div style="clear:both"></div> 
</div> 
<div style="clear:both"></div> 

</div></body> 
</html> 

, и если вы думаете, есть некоторые заголовки в «inc.php» Я говорю вам это не правильно. Это код "inc.php":

<?php 
include('constants.php'); 
require_once('functions.php'); 
?> 

Я проверил "contants.php" и "functions.php" тоже. В этих файлах нет заголовка. Также эта ошибка отображается только в index.php! когда вы входите в систему или начинаете http://icomp.ir/register.php не отображается.

Знаете ли вы, что ответили? спасибо

+1

Один из включенных файлов генерирует выходные данные либо непосредственно через нечто вроде 'print' или' echo', либо путем генерации ошибок. Убедитесь, что вы включили все отчеты об ошибках, чтобы вы могли видеть результат, который создается. Также не забудьте удалить _all_ строки (пустые и другие) перед первым '

+0

Я был удален код за строкой. Проблема была решена только тогда, когда была отключена функция session_start(), а не при удалении кодов сложения. – AmirHussein

ответ

1

Попробуйте изменить

<?php 
include('inc.php'); 
session_start(); 
include('header.php'); 
?> 

Для

<?php 
session_start(); 
include('inc.php'); 
include('header.php'); 
?> 
+0

Спасибо. Он работает! но я попробовал это! Зачем?! – AmirHussein

+0

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

0

Кроме того, проверьте настройки вашего редактора - если будут добавлены BOM байты в начале из UTF закодированных файлов, вывести его из строя ,

См Byte Order Mark causing session errors

1

@KirkBackus Уже сделал хороший ответ, но я бы просто добавить, что если вы хотите, вы также можете иметь дело с этим путем использования выходных буферов. Откройте буфер как самое первое в своем скрипте - вывод будет буферизован до окончания скрипта, что позволит вам отправлять заголовки (на которые ссылается session_start). В случаях, когда вам не всегда нужно использовать сеанс, это может быть более управляемый подход.

<?php 
    ob_start(); 
    /* ... rest of code here */ 
Смежные вопросы