"Cannot Send Session Cache Limiter - Headers Already Sent"

Cannot send session cache limiter - headers already sent

"Headers already sent" means that your PHP script already sent the HTTP headers, and as such it can't make modifications to them now.

Check that you don't send ANY content before calling session_start. Better yet, just make session_start the first thing you do in your PHP file (so put it at the absolute beginning, before all HTML etc).

Warning : session_start(): Cannot send session cache limiter - headers already sent even after using session_start() and ob_start()

I don't know, if your code is well formatted in your question. But if so, remove the blank space before <?php.

Troubleshooting Warning: session_start(): Cannot send session cache limiter - headers already sent

You will find I have added the session_start() at the very top of the page. I have also removed the session_start() call later in the page. This page should work fine.

<?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"> </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> </td>
</tr>
<tr>
<td height="45"><strong>-> Products</strong></td>
</tr>
<tr>
<td height="61"><strong>-> Categories</strong></td>
</tr>
<tr>
<td height="48"><strong>-> Sub Categories</strong></td>
</tr>
</table></td>
<td width="78%" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td> </td>
</tr>
<tr>
<td>
<table width="90%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="26%"> </td>
<td width="74%"><h2>Manage Categories</h2></td>
</tr>
</table></td>
</tr>
<tr>
<td height="30"> 

</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>

        <input type="text" name="categoryname" /><br /><br />

<label class="style4">Category Image</label>         

<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;

}

?>

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at

The session_start() function should be on top of your file like this:

<?php
session_start(); // Should be on top when using $_SESSION

class Login {
private $db_connection = null;
public $errors = array();
public $messages = array();
public function __construct() {

// Rest of your scripts

This error caused because the headers where sent already so it is to late to load the session_handler() either, that's why you have to put it on top of your file to load it with the headers.

If you use a framework that includes the pages, you only need to use the session_start() once in the main file (e.g. index.php), where you include the other files

I hope this will help you.



Related Topics



Leave a reply



Submit