Ich habe ein Formular für einen Administrator erstellt, um Produktdetails hochzuladen. Alle Felder sind bis auf den Bilddateipfad korrekt gespeichert. Kann mir jemand sagen, wo ich falsch liege?PHP, hochgeladene Bild-URL wird nicht in der Datenbank gespeichert. Wo gehe ich falsch?
Das Bild wird im Bilderordner gespeichert, aber der Pfad wird nicht in der Datenbank gespeichert.
Form:
<form action="form.php" method="post" enctype="multipart/form-data" id="inventoryList" name="inventoryList">
<table width="90%" border="0" cellspacing="0" cellpadding="6">
<tr><td width="20%" align="right"><h3>Products Table</h3></td></tr>
<!-- item_code -->
<tr>
<td width="20%" align="right">Item Code</td>
<td width="80%"><label>
<input name="item_code" type="text" id="item_code" size="20" />
</label></td>
</tr>
<!-- item_name -->
<tr>
<td width="20%" align="right">Product Name</td>
<td width="80%"><label>
<input name="item_name" type="text" id="item_name" size="64" />
</label></td>
</tr>
<!-- brand_name -->
<tr>
<td width="20%" align="right">Brand Name</td>
<td width="80%"><label>
<input name="brand_name" type="text" id="brand_name" size="20" />
</label></td>
</tr>
<!-- model_number -->
<tr>
<td width="20%" align="right">Model Number</td>
<td width="80%"><label>
<input name="model_number" type="text" id="model_number" size="20" />
</label></td>
</tr>
<!-- weight -->
<tr>
<td width="20%" align="right">Weight</td>
<td width="80%"><label>
<input name="weight" type="text" id="weight" size="20" />
</label></td>
</tr>
<!-- dimension -->
<tr>
<td width="20%" align="right">Dimension</td>
<td width="80%"><label>
<input name="dimension" type="text" id="dimension" size="20" />
</label></td>
</tr>
<!-- description -->
<tr>
<td align="right">Product Description</td>
<td><label>
<textarea name="description" id="description" cols="64" rows="5"></textarea>
</label></td>
</tr>
<tr>
<!-- category -->
<td align="right">Category</td>
<td><label>
<select name="category" id="category">
<option value="CellPhone">Smart Phone</option>
<option value="Laptop">Laptop</option>
</select>
</label></td>
</tr>
<!-- quantity -->
<tr>
<td width="20%" align="right">Quantity</td>
<td width="80%"><label>
<input name="quantity" type="text" id="quantity" size="20" />
</label></td>
</tr>
<tr>
<!-- price -->
<td align="right">Product Price €</td>
<td><label>
<input name="price" type="text" id="price" size="12" />
</label></td>
</tr>
<!-- image -->
<tr>
<td align="right">Product Image</td>
<td><label>
<input type="file" name="imagename" id="imagename" />
</label></td>
</tr>
<tr>
<td> </td>
<td><label>
<input type="submit" name="submit" id="submit" value="Add This Item Now" />
</label></td>
</tr>
</table>
PHP Script:
if(isset($_POST['submit'])){
$random_name = rand();
$sql1="INSERT INTO products
(item_code, item_name, brand_name, model_number, weight, dimension, description, category, quantity, price, imagename)
VALUES
('$_POST[item_code]','$_POST[item_name]','$_POST[brand_name]',
'$_POST[model_number]', '$_POST[weight]', '$_POST[dimension]', '$_POST[description]','$_POST[category]',
'$_POST[quantity]','$_POST[price]', '$_POST[imagename]')";
mysqli_query($connect,$sql1);
move_uploaded_file($_FILES['imagename']['tmp_name'], "../images/$random_name.jpg");
header("location: inventory.php");
exit();
}
Bild zeigt fehlende Dateipfad:
Haben Sie den Wert von $ _POST überprüft [ 'imagename'] vor dem Einsetzen? Sie verwenden $ _FILES ['ImageName'] danach! Übrigens sollten Sie vorsichtig sein, da Ihre INSERT-Anweisung ziemlich anfällig für SQL-Injektionen ist. Ich nehme an, dass Sie nur testen, aber versuchen, die Verwendung eines Poster-Werts direkt in einer Abfrage zu vermeiden. – zoubida13