我收到 警告: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"> </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 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"> </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; } ?>