Вопрос по php, session – Устранение неполадок «Предупреждение: session_start (): невозможно отправить ограничитель кэша сеанса - заголовки уже отправлены»

12

я получаюWarning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at  ошибка

Если я отправляю данные формы в другой файл для обработки, это работает. Но если я отправляю данные формы на ту же страницу, это выдает эту ошибку.

пожалуйста suggst

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Welcome</title>


<script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
$(document).ready(function () { 

    $('#nav li').hover(
        function () {
            //show its submenu
            $('ul', this).slideDown(100);

        }, 
        function () {
            //hide its submenu
            $('ul', this).slideUp(100);         
        }
    );

});
    </script>

</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td class="header">&nbsp;</td>
  </tr>
  <tr>
    <td class="menu"><table align="center" cellpadding="0" cellspacing="0" width="80%">
    <tr>
    <td>

    <ul id="nav">
    <li><a href="#">Catalog</a>
    <ul><li><a href="#">Products</a></li>
        <li><a href="#">Bulk Upload</a></li>
        </ul>
        <div class="clear"></div>
        </li>


    <li><a href="#">Purchase  </a>

    </li>
    <li><a href="#">Customer Service</a>
    <ul>
        <li><a href="#">Contact Us</a></li>
        <li><a href="#">CS Panel</a></li>

    </ul>           
        <div class="clear"></div>
    </li>
    <li><a href="#">All Reports</a></li>
    <li><a href="#">Configuration</a>
    <ul> <li><a href="#">Look and Feel </a></li>
         <li><a href="#">Business Details</a></li>
         <li><a href="#">CS Details</a></li>
         <li><a href="#">Emaqil Template</a></li>
         <li><a href="#">Domain and Analytics</a></li>
         <li><a href="#">Courier</a></li>
         </ul>
    <div class="clear"></div>
    </li>
    <li><a href="#">Accounts</a>
    <ul><li><a href="#">Ledgers</a></li>
        <li><a href="#">Account Details</a></li>
        </ul>
         <div class="clear"></div></li>

</ul></td></tr></table></td>
  </tr>
  <tr>
    <td valign="top"><table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
          <tr>
            <td width="22%" height="327" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
              <tr>
                <td>&nbsp;</td>
                </tr>
              <tr>
                <td height="45"><strong>-&gt; Products</strong></td>
                </tr>
              <tr>
                <td height="61"><strong>-&gt; Categories</strong></td>
                </tr>
              <tr>
                <td height="48"><strong>-&gt; Sub Categories</strong></td>
                </tr>
            </table></td>
            <td width="78%" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
              <tr>
                <td>&nbsp;</td>
                </tr>
              <tr>
                <td>
                  <table width="90%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="26%">&nbsp;</td>
                      <td width="74%"><h2>Manage Categories</h2></td>
                    </tr>
                  </table></td>
                </tr>
              <tr>
                <td height="30">&nbsp;

                </td>
                </tr>
              <tr>
                <td>


</td>
                </tr>

                <tr>
                <td>
                <table width="49%" align="center" cellpadding="0" cellspacing="0">
                <tr><td>




<?php


                if (isset($_SESSION['error']))

                {

                    echo "<span id=\"error\"><p>" . $_SESSION['error'] . "</p></span>";

                    unset($_SESSION['error']);

                }

                ?>

                <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">

                <p>
                 <label class="style4">Category Name</label>

                   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="text" name="categoryname" /><br /><br />

                    <label class="style4">Category Image</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                    <input type="file" name="image" /><br />

                    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />

                   <br />
<br />
 <input type="submit" id="submit" value="UPLOAD" />

                </p>

                </form>




                             <?php

session_start();

require("includes/conn.php");


function is_valid_type($file)

{

    $valid_types = array("image/jpg", "image/jpeg", "image/bmp", "image/gif", "image/png");



    if (in_array($file['type'], $valid_types))

        return 1;

    return 0;
}

function showContents($array)

{

    echo "<pre>";

    print_r($array);

    echo "</pre>";
}


$TARGET_PATH = "images/category";

$cname = $_POST['categoryname'];

$image = $_FILES['image'];

$cname = mysql_real_escape_string($cname);

$image['name'] = mysql_real_escape_string($image['name']);

$TARGET_PATH .= $image['name'];

if ( $cname == "" || $image['name'] == "" )

{

    $_SESSION['error'] = "All fields are required";

    header("Location: managecategories.php");

    exit;

}

if (!is_valid_type($image))

{

    $_SESSION['error'] = "You must upload a jpeg, gif, or bmp";

    header("Location: managecategories.php");

    exit;

}




if (file_exists($TARGET_PATH))

{

    $_SESSION['error'] = "A file with that name already exists";

    header("Location: managecategories.php");

    exit;

}


if (move_uploaded_file($image['tmp_name'], $TARGET_PATH))

{



    $sql = "insert into Categories (CategoryName, FileName) values ('$cname', '" . $image['name'] . "')";

    $result = mysql_query($sql) or die ("Could not insert data into DB: " . mysql_error());

  header("Location: mangaecategories.php");

    exit;

}

else

{





    $_SESSION['error'] = "Could not upload file.  Check read/write persmissions on the directory";

    header("Location: mangagecategories.php");

    exit;

}

?> 

Вот код для отображения

<?php  
                  require("includes/conn.php"); 



                $sql = "select CategoryID, CategoryName, FileName, Status from Categories";

                $result = mysql_query($sql) or die ("Could not access DB: " . mysql_error());



                while ($row = mysql_fetch_assoc($result))

                {

                     echo "<table border='0' cellpadding='10'>";


                                        echo "<tr><td>  </td><td>Category ID</td><td>Category Name</td><td>Status</td><td>Edit</td><td>Delete</td></tr>";

                                        echo "<tr><td> <img src=\"images/" . $row['FileName'] . "\" alt=\"\" /> </td>";
                                        echo "<td>". $row['CategoryID'] . "</td>";
                                            echo "<td>". $row['CategoryName'] . "</td>";
                                            echo "<td>". $row['Status']. "</td>";
                                            echo "<td> <a href= 'edit.php?CategoryID=" .$row['id']. "'> Edit </a></td>";
                                            echo "<td> <a href= 'delete.php?CategoryID=" .$row['id']. "'> Edit </a></td>";
                                         echo "</tr> </table>";

                }



            ?>

Здесь ничего не происходит. Пожалуйста, предложите

Рахул Бхай,session_start(); Во избежание ошибок такого типа следует указывать первую строку страницы php. Посоветуйте весь ваш php код для обработки данных формы должен быть в топе Radhakrishna Rayidi
В моем случае мне пришлось установить кодировку файла без спецификации. Wessam El Mahdy
Перед началом сеанса не должно быть никакого эха. По сути, перед сменой заголовков или началом сеанса не должно быть никаких выводимых символов. Так что, если у вас есть эхо. Или, если у вас есть пустое место после тега php (или html или любого вывода) в ваших включаемых файлах, то эта ошибка возникнет. Imdad

Ваш Ответ

15   ответов
5

Это должно решить вашу проблему. session_start () должен быть вызван перед отправкой любого символа обратно в браузер. В вашем случае HTML и пустые строки были отправлены до того, как вы вызвали session_start ().Документация здесь.

Чтобы дополнительно объяснить ваш вопрос о том, почему это работает, когда вы отправляете на другую страницу, эта страница либо не использует session_start (), либо вызывает session_start () перед отправкой любого символа обратно клиенту! Эта страница, с другой стороны, вызывала session_start () намного позже, когда большая часть HTML была отправлена обратно клиенту (браузеру).

Лучший способ написания кода - иметь общий заголовочный файл, который вызывает соединение с базой данных MySQL, вызывает session_start () и выполняет другие общие действия для всех страниц и включает этот файл в верхней части каждой страницы, как показано ниже:

include "header.php";

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

<?php
session_start();

                if (isset($_SESSION['error']))

                {

                    echo "<span id=\"error\"><p>" . $_SESSION['error'] . "</p></span>";

                    unset($_SESSION['error']);

                }

                ?>

                <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">

                <p>
                 <label class="style4">Category Name</label>

                   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="text" name="categoryname" /><br /><br />

                    <label class="style4">Category Image</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                    <input type="file" name="image" /><br />

                    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />

                   <br />
<br />
 <input type="submit" id="submit" value="UPLOAD" />

                </p>

                </form>




                             <?php



require("includes/conn.php");


function is_valid_type($file)

{

    $valid_types = array("image/jpg", "image/jpeg", "image/bmp", "image/gif", "image/png");



    if (in_array($file['type'], $valid_types))

        return 1;

    return 0;
}

function showContents($array)

{

    echo "<pre>";

    print_r($array);

    echo "</pre>";
}


$TARGET_PATH = "images/category";

$cname = $_POST['categoryname'];

$image = $_FILES['image'];

$cname = mysql_real_escape_string($cname);

$image['name'] = mysql_real_escape_string($image['name']);

$TARGET_PATH .= $image['name'];

if ( $cname == "" || $image['name'] == "" )

{

    $_SESSION['error'] = "All fields are required";

    header("Location: managecategories.php");

    exit;

}

if (!is_valid_type($image))

{

    $_SESSION['error'] = "You must upload a jpeg, gif, or bmp";

    header("Location: managecategories.php");

    exit;

}




if (file_exists($TARGET_PATH))

{

    $_SESSION['error'] = "A file with that name already exists";

    header("Location: managecategories.php");

    exit;

}


if (move_uploaded_file($image['tmp_name'], $TARGET_PATH))

{



    $sql = "insert into Categories (CategoryName, FileName) values ('$cname', '" . $image['name'] . "')";

    $result = mysql_query($sql) or die ("Could not insert data into DB: " . mysql_error());

  header("Location: mangaecategories.php");

    exit;

}

else

{





    $_SESSION['error'] = "Could not upload file.  Check read/write persmissions on the directory";

    header("Location: mangagecategories.php");

    exit;

}

?> 
Если я использую его в строке 1, я получаю ту же ошибку. А также я получаю файл с таким именем уже существует, сообщение без какой-либо логики user1321271
Перед началом формы у меня есть около 40 строк HTML-кода. я должен использовать session_data () в начале? Потому что даже после использования session_start перед isset я получаю ту же ошибку .. Я отредактировал код с помощью HTML. Пожалуйста, посмотрите user1321271
Я отредактирую ваш код и вскоре отправлю другой ответ.
4

использованиеob_start(); доsession_start(); в верхней части вашей страницы, как это

<?php
ob_start();
session_start();
если я использую ob_start (); и ob_end_flush (), файл не открывается, но он отображает "слишком много перенаправлений при открытии ..." user1321271
Спасибо, но все равно выдает ту же ошибку в случае, если (file_exists ($ TARGET_PATH)) {$ _SESSION [& quot; ошибка & alpha;] = & quot; файл с таким именем уже существует & quot ;; заголовок (& quot; Местоположение: managecategories.php & quot;); выход; } и по умолчанию отображается файл с таким именем. user1321271
Нужно будет также вызвать ob_end_flush () в конце страницы.link
1

В моем случае мне пришлось установить кодировку файла без спецификации.

8

У меня была та же проблема, но мое решение было не таким очевидным, как предложенные. Оказалось, что мой php-файл был написан в UTF-8, что вызывало проблемы. Я скопировал / вставил содержимое всего файла в новый php-файл (Notepad ++ говорит мне, что это написано в ANSI, а не в UTF-8), и теперь он работает безупречно.

@JulianB: убедитесь, что для кодировки установлено значение "UTF-8 без спецификации".
Слава Богу. Не понимал, что это может произойти с переключением текстовых редакторов. Большое спасибо!
У меня была установлена кодировка UTF-8 (которая была правильной ... соединение с базой данных установлено на UTF-8 для использования с SVG), но работа сессий PHP прекратилась
3

использованиеsession_start() в верхней части страницы.

для более подробной информации, пожалуйста, прочитайте ссылкуsession_start

0

Просто замените session_start этим.

if (!session_id() && !headers_sent()) {
   session_start();
}  

Вы можете поставить его где угодно, даже в конце :) У меня отлично работает. $ _SESSION также доступна.

2

Я смог решить подобноеWarning: session_start(): Cannot send session cache limiter - headers already sent просто удалив пробел перед<?php тег.

Это сработало.

Это произошло и со мной, и я боролся с ошибкой в течение нескольких дней. Все, что мне нужно было сделать, это удалить пробел перед тегом & lt;? Php.
0

Это началось для меня, когда я перенаправил свой сайт на https: // (для SSL-сертификата). Исходя из моего опыта с этим вопросом,session_start() должно было быть до того, как браузер увидел какой-либо HTML-код. Для моего примера я использовалsession_start() в nav.php, чтобы определить параметры панели навигации. Я закончил размещениеsession_start() сразу после комментариев php в файле index.php и на каждой странице, которая называется nav.php. Я был в состоянии сохранить комментарии PHP доsession_start() но не мог держать комментарии HTML выше php.

8

Ответ выше Росс.

Во-первых, размещение session_start () в качестве первой строки кода будет означать, что вы не сможете правильно десериализовать какие-либо объекты в переменные сеанса.

Причиной возникновения этой проблемы является 99% вероятности того, что в конце ваших включаемых файлов будут заканчиваться пробелы (да - я знаю, это звучит маловероятно, но просто попробуйте). Оскорбительный файл находится в сообщении об ошибке. Я хотел бы поддержать ответ Росса, который работал для меня, но этот сайт противоречит интуитивно.

Проигнорируйте глупые ответы. Удалите завершающие пробелы, символы новой строки и т.д ... и все будет хорошо. Росс знает, о чем он говорит. Помещение session_start () в верхней части вашего файла работает, но это не является правильным решением.

Просто удалите закрытие?> полностью, и этого никогда не произойдет. Это не нужно и не рекомендуется
4

замещатьsession_start(); с@session_start(); в вашем коде

Это правильное решение. Однако это просто игнорирование предупреждения, а не его исправление.
1

У меня был веб-сайт, переносимый с одного хоста на другой, на старом хосте он работал нормально, но несколько страниц на новом хосте выдавали ошибку

Warning: session_start(): Cannot send session cache limiter - headers already sent
в то время как я всегда держал

 <?php
session_start(); 

вверху страницы нет пробелов и ничего не вставлено раньше

меня действительно беспокоило то, что я смотрел каждую страницу с открытием сессии, и это работало на некоторых страницах и проходило через ошибку на других Я выбрал страницы, на которых возникли проблемы, создал их резервные копии, создал новые пустые страницы и просто скопировал и вставил код как есть, сохранил и загрузил, и бум, проблема исчезла!

Это то, что вам, ребята, может потребоваться рассмотреть, возможно, это была кодировка страницы, или что-то, не уверенный точный источник проблемы, но вот исправление, на которое стоит обратить внимание, если вы, ребята, столкнетесь с подобной проблемой

ура!

16

Вы найдете, что я добавил session_start () в самом верху страницы. Я также удалил вызов session_start () позже на странице. Эта страница должна работать нормально.

<?php
session_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<link href="style.css" rel="stylesheet" type="text/css" />
<title>Welcome</title>


<script type="text/javascript" src="jquery.js"></script>
    <script type="text/javascript">
$(document).ready(function () { 

    $('#nav li').hover(
        function () {
            //show its submenu
            $('ul', this).slideDown(100);

        }, 
        function () {
            //hide its submenu
            $('ul', this).slideUp(100);         
        }
    );

});
    </script>

</head>

<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td class="header">&nbsp;</td>
  </tr>
  <tr>
    <td class="menu"><table align="center" cellpadding="0" cellspacing="0" width="80%">
    <tr>
    <td>

    <ul id="nav">
    <li><a href="#">Catalog</a>
    <ul><li><a href="#">Products</a></li>
        <li><a href="#">Bulk Upload</a></li>
        </ul>
        <div class="clear"></div>
        </li>


    <li><a href="#">Purchase  </a>

    </li>
    <li><a href="#">Customer Service</a>
    <ul>
        <li><a href="#">Contact Us</a></li>
        <li><a href="#">CS Panel</a></li>

    </ul>           
        <div class="clear"></div>
    </li>
    <li><a href="#">All Reports</a></li>
    <li><a href="#">Configuration</a>
    <ul> <li><a href="#">Look and Feel </a></li>
         <li><a href="#">Business Details</a></li>
         <li><a href="#">CS Details</a></li>
         <li><a href="#">Emaqil Template</a></li>
         <li><a href="#">Domain and Analytics</a></li>
         <li><a href="#">Courier</a></li>
         </ul>
    <div class="clear"></div>
    </li>
    <li><a href="#">Accounts</a>
    <ul><li><a href="#">Ledgers</a></li>
        <li><a href="#">Account Details</a></li>
        </ul>
         <div class="clear"></div></li>

</ul></td></tr></table></td>
  </tr>
  <tr>
    <td valign="top"><table width="80%" border="0" align="center" cellpadding="0" cellspacing="0">
      <tr>
        <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
          <tr>
            <td width="22%" height="327" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="2">
              <tr>
                <td>&nbsp;</td>
                </tr>
              <tr>
                <td height="45"><strong>-&gt; Products</strong></td>
                </tr>
              <tr>
                <td height="61"><strong>-&gt; Categories</strong></td>
                </tr>
              <tr>
                <td height="48"><strong>-&gt; Sub Categories</strong></td>
                </tr>
            </table></td>
            <td width="78%" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
              <tr>
                <td>&nbsp;</td>
                </tr>
              <tr>
                <td>
                  <table width="90%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                      <td width="26%">&nbsp;</td>
                      <td width="74%"><h2>Manage Categories</h2></td>
                    </tr>
                  </table></td>
                </tr>
              <tr>
                <td height="30">&nbsp;

                </td>
                </tr>
              <tr>
                <td>


</td>
                </tr>

                <tr>
                <td>
                <table width="49%" align="center" cellpadding="0" cellspacing="0">
                <tr><td>




<?php


                if (isset($_SESSION['error']))

                {

                    echo "<span id=\"error\"><p>" . $_SESSION['error'] . "</p></span>";

                    unset($_SESSION['error']);

                }

                ?>

                <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data">

                <p>
                 <label class="style4">Category Name</label>

                   &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input type="text" name="categoryname" /><br /><br />

                    <label class="style4">Category Image</label>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;

                    <input type="file" name="image" /><br />

                    <input type="hidden" name="MAX_FILE_SIZE" value="100000" />

                   <br />
<br />
 <input type="submit" id="submit" value="UPLOAD" />

                </p>

                </form>




                             <?php


require("includes/conn.php");


function is_valid_type($file)

{

    $valid_types = array("image/jpg", "image/jpeg", "image/bmp", "image/gif", "image/png");



    if (in_array($file['type'], $valid_types))

        return 1;

    return 0;
}

function showContents($array)

{

    echo "<pre>";

    print_r($array);

    echo "</pre>";
}


$TARGET_PATH = "images/category";

$cname = $_POST['categoryname'];

$image = $_FILES['image'];

$cname = mysql_real_escape_string($cname);

$image['name'] = mysql_real_escape_string($image['name']);

$TARGET_PATH .= $image['name'];

if ( $cname == "" || $image['name'] == "" )

{

    $_SESSION['error'] = "All fields are required";

    header("Location: managecategories.php");

    exit;

}

if (!is_valid_type($image))

{

    $_SESSION['error'] = "You must upload a jpeg, gif, or bmp";

    header("Location: managecategories.php");

    exit;

}




if (file_exists($TARGET_PATH))

{

    $_SESSION['error'] = "A file with that name already exists";

    header("Location: managecategories.php");

    exit;

}


if (move_uploaded_file($image['tmp_name'], $TARGET_PATH))

{



    $sql = "insert into Categories (CategoryName, FileName) values ('$cname', '" . $image['name'] . "')";

    $result = mysql_query($sql) or die ("Could not insert data into DB: " . mysql_error());

  header("Location: mangaecategories.php");

    exit;

}

else

{





    $_SESSION['error'] = "Could not upload file.  Check read/write persmissions on the directory";

    header("Location: mangagecategories.php");

    exit;

}

?> 
Спасибо, но все равно выдает ту же ошибку в случае, если (file_exists ($ TARGET_PATH)) {$ _SESSION [& quot; ошибка & alpha;] = & quot; файл с таким именем уже существует & quot ;; заголовок (& quot; Местоположение: managecategories.php & quot;); выход; } и по умолчанию отображается файл с таким именем. user1321271
Привет, решил. Как вы предположили, ошибка была из-за повторного перенаправления заголовка. Я удалил оператор заголовка перенаправления, и это сработало .. Большое спасибо user1321271
Пожалуйста, приятель!
Я считаю, что вы не проверяете, была ли форма отправлена или загружается в первый раз. Следовательно, вы кодируете, чтобы подготовить имя файла изображения в $ TARGET_PATH всегда выполняется - когда обычно страница загружается в первый раз или когда страница публикуется. Вы можете проверить, публикуется ли страница или загружается в первый раз, проверив: if ($ _SERVER ['REQUEST_METHOD & apos;] == & apos; POST & apos;) {/ * разместите свой код здесь * /}
Подскажите, пожалуйста, как отобразить изображение вместе с другими изображениями в базе данных на той же странице user1321271
3

Для других, кто может столкнуться с этим - это может также произойти, если кто-то небрежно покидает конечные пробелы из файла включения php. Пример:

 <?php 
    require_once('mylib.php');
    session_start();
 ?>

В приведенном выше случае, если mylib.php имеет пробелы после закрытия? & Gt; тег, это приведет к ошибке. Это, очевидно, может раздражать, если вы включили / требовали много файлов. К счастью, ошибка говорит вам, какой файл является оскорбительным.

НТН

3

Обычно эта ошибка возникает, когда мы отправляем заголовок после эхо или печати. Если эта ошибка возникает на определенной странице, убедитесь, что страница ничего не отображает, прежде чем вызывать start_session ().

Пример непредсказуемой ошибки:

 <?php //a white-space before <?php also send for output and arise error
session_start();
session_regenerate_id();

//your page content

Еще один пример:

<?php
includes 'functions.php';
?> <!-- This new line will also arise error -->
<?php
session_start();
session_regenerate_id();

//your page content

Вывод: не выводите никаких символов перед вызовом функций session_start () или header (), даже не пробел или новую строку

0

Проверьте все лишние пробелы перед тегом php.

Похожие вопросы