2012-03-28 12 views
-2

Ich bekomme diese Warnung während im Anschluss an ein YouTube-Tutorial, und kann nicht herausfinden, warum "Can not modify header information":Warnung

Warnung: Kann nicht modify header information - headers already von (Ausgabe gesendet gestartet bei /Applications/XAMPP/xamppfiles/htdocs/storeadmin/inventory_list.php:23

Dies ist der Code:

<?php 
session_start(); 
if(!isset($_SESSION["manager"])){ 
header("location: admin_login.php"); 
exit(); 
} 
$managerID = preg_replace('#[^0-9]#i','',$_SESSION["id"]);//filter everything but numbers 
$manager= preg_replace('#[^A-Za-z0-9]#i','',$_SESSION["manager"]); 
$password= preg_replace('#[^A-Za-z0-9]#i','',$_SESSION["password"]); 

include "../connect_to_mysql.php";//includes file to connect to db 
$sql= mysql_query("SELECT * FROM admin WHERE id='$managerID' AND username='$manager' AND password='$password' LIMIT 1"); 

$existCount=mysql_num_rows($sql); //count row 
if ($existCount == 0) { 

echo "your login does not exist"; 
exit(); 
} 
?> 


<?php 
error_reporting(E_ALL);//error report testing 
ini_set('display_errors','1'); 
?> 

<?php 
// Delete Item Question to Admin, and Delete Product if they choose 
if (isset($_GET['deleteid'])) { 
    echo 'Do you really want to delete product with ID of ' . $_GET['deleteid'] . '? <a href="inventory_list.php?yesdelete=' . $_GET['deleteid'] . '">Yes</a> | <a href="inventory_list.php">No</a>'; 
    exit(); 
} 
if (isset($_GET['yesdelete'])) { 
    // remove item from system and delete its picture 
    // delete from database 
    $id_to_delete = $_GET['yesdelete']; 
    $sql = mysql_query("DELETE FROM products WHERE id='$id_to_delete' LIMIT 1") or die (mysql_error()); 
    // unlink the image from server 
    // Remove The Pic ------------------------------------------- 
    $pictodelete = ("../inventory_images/$id_to_delete.jpg"); 
    if (file_exists($pictodelete)) { 
       unlink($pictodelete); 
    } 
    header("location: inventory_list.php"); 
    exit(); 
    } 
?> 


<?php 
//parse form data adds inventory item to database 
if(isset($_POST['product_name'])){ 
$product_name = mysql_real_escape_string($_POST['product_name']); 
$price = mysql_real_escape_string($_POST['price']); 
$proddescription = mysql_real_escape_string($_POST['proddescription']); 
$genre = mysql_real_escape_string($_POST['genre']); 
$quantity = mysql_real_escape_string($_POST['quantity']); 
//this checks if an item already exists under this name 
$sql= mysql_query("SELECT id FROM products WHERE product_name='$product_name' LIMIT 1"); 
$productMatch = mysql_num_rows($sql); 
if($productMatch > 0){ 
echo 'Sorry, this item already exists, <a href="inventory_list.php">click here</a>'; 
exit(); 
} 
//add items to database 
$sql = mysql_query("INSERT INTO products (product_name, price, proddescription, genre, quantity) 
VALUES('$product_name','$price','$proddescription','$genre','$quantity')") or die (mysql_error()); 
$pid = mysql_insert_id(); 

    // Place image in the folder 
    $newname = "$pid.jpg"; 
    move_uploaded_file($_FILES['fileField']['tmp_name'], "../inventory_images/$newname"); 
    header("location: inventory_list.php"); 
    exit(); 
} 
?> 

<?php 
//this displays whole list 
$product_list=""; 
$sql = mysql_query("SELECT * FROM products"); 
$productCount =mysql_num_rows($sql); 
if($productCount>0){ 
while($row = mysql_fetch_array($sql)){ 
$id = $row["id"]; 
$product_name = $row["product_name"]; 
$price = $row["price"]; 
$quantity = $row["quantity"]; 
$product_list.="$id - $product_name - $quantity - $price &nbsp; &nbsp; &nbsp; <a href= 'inventory_edit.php?pid=$id'>edit</a> &bull; <a href='inventory_list.php?deleteid=$id'>delete</a><br />"; 
} 
} else { 
$product_list = "There are no products in the store."; 
} 
?> 

<!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" dir="ltr"> 

<head> 
    <title>Inventory List</title> 
    <link href="../style2.css" rel="stylesheet" type="text/css" /> 
</head> 

<body> 

<div id="container"> 

    <div id="masthead"> 
    </div> 

    <div id="navigation"> 
     <p><a href="index1.php">Home</a> 
     <a href="fiction.php">Fiction</a> 
     <a href="travel.php">Travel</a> 
     <a href="sport.php">Sport</a> 
     <a href="arts.php">Arts & Design</a> 
     <a href="cart.php">Shopping Cart</a> 
     <a href="account.php">Manage Account</a></p> 



    </div> 

    <div id="content"> 
    <div align ="right" style="margin-right:32px;"><a href="inventory_list.php#inventoryForm">+ Add New Item</a></div> 
    <div align="left" style="margin-left:24px;"> 
    </div> 

<h4>Inventory List</h4> 
<?php echo $product_list; ?> 

<a name = "inventoryForm" id="inventoryForm"></a> 
<h3> 
&darr; Add New Item Form &darr; 
</h3> 
<form action="inventory_list.php" enctype="multipart/form-data" name="myForm" id="myForm" method="post"> 
<table width="90%" border="0" cellspacing="0" cellpadding="6"> 
<tr> 
<td width="20%">Product Name</td> 
<td width="80%"><label> 
<input name="product_name" type="text" id="product_name" size="64" /> 
</label></td> 
</tr> 
<tr> 
<td>Product Price</td> 
<td><label> 
&pound; 
<input name="price" type="text" id="price" size="12" /> 
</label></td> 
</tr> 
<tr> 
<td>Description</td> 
<td><label> 
<input name="proddescription" type="text" id="proddescription" size="64" /> 
</label></td> 
</tr> 
<tr> 
<td>Genre</td> 
<td><label> 
<select name="genre" id="genre" /> 
<option value=""></option> 
<option value="Fiction">Fiction</option> 
<option value="Travel">Travel</option> 
<option value="Sport">Sport</option> 
<option value="Arts & Design">Arts & Design</option> 
</select> 
</label></td> 
</tr> 
<tr> 
<td>Product Image</td> 
<td><label> 
<input type="file" name="fileField" id="fileField" /> 
</label></td> 
</tr> 
<tr> 
<td>Quantity</td> 
<td><label> 
<input name="quantity" type="text" id="quantity" size="4" /> 
</label></td> 
</tr> 
<tr> 
<tr> 
<td>&nbsp;</td> 
<td><label> 
<input type="submit" name="button" id="button" value="Add Item" /> 
</label></td> 
</tr> 
</table> 
</form> 
<br /> 
<br /> 
</div> 

    <div id="footer"> 
     <p>ADMIN AREA</p> 
    </div> 

</div> 

</body> 

</html> 
+0

Sieht 'session_start()' bezogen auf mich. Es muss ganz oben stehen, vorher muss kein anderer Ausgang gesendet werden (zum Beispiel mit echo). Ist diese Datei mit 'session_start()' erforderlich/enthalten? –

+0

Sie haben Lücken zwischen den '' Tags. Sie werden als Whitespace an den Browser gesendet. Sie können keine Header senden, nachdem Inhalt gesendet wurde, nicht einmal Leerzeichen. – JJJ

+2

Auch dies ist ein Duplikat von buchstäblich jeder verwandten Frage in der rechten Seitenleiste. – JJJ

Antwort

0

Sie haben eine leere Zeile außerhalb von PHP tags:

?> 


<?php 

Diese PHP verursachen Zeilenumbrüche zu senden.

+0

Danke, habe mein Problem behoben, wenn ich einen Gegenstand lösche. Aber wenn ich ein füge ich noch bin immer diese Warnung Warnung: Kann nicht modify header information - headers already von (Ausgabe begann bei /Applications/XAMPP/xamppfiles/htdocs/storeadmin/inventory_list.php:68) gesendet in/Applications/XAMPP /xamppfiles/htdocs/storeadmin/inventory_list.php on line 69 – JTH

+0

Stellen Sie sicher, dass Sie nur einen '

0

Da der Fehler sagt, Sie nicht ändern können, h Leser. Also, wenn Sie die header() Funktion verwenden, stellen Sie sicher, dass es keinen Platz oder Inhalt außerhalb von <?php ?> Tags gibt. Und senden Sie nicht denselben Header zweimal im selben Skript. Es gibt mehrere Fragen wie diese in Ihrem Code:

... 
echo "your login does not exist"; 
exit(); 
} 
?> 

//here you have space and \n 
<?php 

Merge alle PHP-Blöcke.

0

Dies wird in einer der header() Anrufe in einem späteren Block geschieht. Zum Beispiel in dem dritten <?php ?> Block nennt es:

header("location: inventory_list.php"); 

Sie haben leere Zeilen zwischen dem einzelnen <?php ?> Block, so dass gilt als reines HTML und so schnell an den Browser des Benutzers gesendet wird, wie es geschieht (die erste Zeile außerhalb eines Codeblocks ist Zeile 23, weshalb es im Fehler erwähnt wird). Bevor Daten gesendet werden können, müssen die Header gesendet werden, so dass sie zu diesem Zeitpunkt nicht mehr geändert werden können. Da gibt es nichts zwischen PHP-Blöcken aber leeren Zeilen ist, könnte man sich nur verschmilzt alle zusammen, es zu beheben

+0

Vielen Dank für Ihre Hilfe. Das ist gelöst, wenn ein Element zu löschen, aber ich bin jetzt diesen Fehler, wenn ich einen Artikel hinzufügen ... Warnung: Kann nicht modify header information - headers already sent by (output started at/Applications/XAMPP/xamppfiles/htdocs/storeadmin/inventory_list.php: 68) in /Applications/XAMPP/xamppfiles/htdocs/storeadmin/inventory_list.php in Zeile 69 – JTH

+0

Sie senden die Ausgabe in Zeile 68 von inventory_list.php. – JJJ