Intereting Posts
ЛАМПА: Как создать .Zip больших файлов для пользователя «на лету», без разбиения диска / процессора Несколько типов пользователей в Laravel 4 PHP: Самый безопасный (дешифруемый) метод шифрования? Как вызвать скрипт Python из PHP? В объекте PHP есть скобки Насколько важны ограничения, такие как NOT NULL и FOREIGN KEY, если я всегда буду контролировать вход в базу данных с помощью PHP? как работает usort? Как вы подключаетесь к нескольким базам данных MySQL на одной веб-странице? Как отложить или аскетировать этот фрагмент javascript WordPress, чтобы загрузить последний раз для более быстрого времени загрузки страницы? Как запустить php-код из file_get_contents или файла в функции PHP $ эта переменная Функция обратного вызова php в классе проверка формы с помощью javascript vs php Отправка простого прикрепленного файла через функцию PHP mail () PHP XMLReader читает, редактирует узел, пишет XMLWriter

Устранение неполадок "Предупреждение: session_start (): Не удается отправить ограничитель кеша сеанса – уже отправленные заголовки"

Я получаю Предупреждение: session_start () [function.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 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 () в самой верхней части страницы. Я также удалил вызов 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; } ?> с <?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; } ?> 

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

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

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

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

ИГНОРИТЕ бессмысленные ответы. Удалите конечные пробелы, символы новой строки и т. Д. … и все будет хорошо. РОСС знает, о чем он говорит. Включение session_start () в начало файла работает, но это не правильное решение.

Это должно решить вашу проблему. 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; } ?> с <?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; } ?> 

у вас уже есть ответ, поместите session_start в начало вашего кода

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

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

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

 <?php ob_start(); session_start(); 

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

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

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

НТН

Как правило, эта ошибка возникает, когда мы отправляем заголовок после эха или печати. Если эта ошибка возникает на определенной странице, убедитесь, что страница не повторяет ничего перед вызовом 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 () даже не в виде пробела или новой строки

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

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

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

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

  Предупреждение: session_start (): не удается отправить ограничитель кеша сеанса - уже отправленные заголовки 

в то время как я всегда держал

  <? PHP
 session_start (); 

в верхней части страницы нет пробелов и ничего не вставлено перед

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

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

ура!

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

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

Вы можете поместить его куда угодно, даже в конце 🙂 Хорошо работает для меня. $ _SESSION также доступна.