1

最初に、このトピックに似たトピックが他にもいくつかあることは知っていますが、これらのトピックを読んでも問題を解決できませんでした。

では、次のリンクにアクセスしてください。次のエラーが表示されます。

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 にアクセスしても表示されません。

あなたは答えを知っていますか?ありがとうございました

4

3 に答える 3

1

@KirkBackusはすでに良い答えを出していますが、必要に応じて、出力バッファを使用してこれに対処することもできます。スクリプトで最初にバッファを開きます - 出力はスクリプトが終了するまでバッファリングされます。これにより、スクリプトでヘッダー (session_start依存するもの) を送信できます。常にセッションを使用する必要がない場合は、これがより管理しやすいアプローチになる可能性があります。

<?php
  ob_start();
  /* ... rest of code here */
于 2013-08-01T11:03:22.077 に答える
1

変更してみる

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

<?php
session_start();
include('inc.php');
include('header.php');
?>
于 2013-07-31T17:05:28.923 に答える