Ich habe ein paar Probleme und es sieht so aus, als ob ich keinen Weg finden kann, um es zu umgehen. Ich habe versucht, Isset für jede POST-Daten zu verwenden, aber während es alle Probleme lösen würde, werden die Daten nicht hinzugefügt. Ich überlasse Ihnen den HTML-Code und PHP, vielleicht können Sie mir helfen, diesen Code zu debuggen.undefined Index beim Senden von POST-Daten
adm_prod.php (die HTML-Seite, die die Form Griffe)
<form method="POST" action="includes/prod-add.php">
Product Name<br>
<input type="text" name="Name"><br>
Price:<br>
<input type="number" name="Price"><br>
Product Description<br>
<input type="text" name="Description"><br>
Photo<br>
<input type="file" name="Photo"><br>
</br>
<button name="submit">Add Product</button>
</form>
prod-add.php (php-Datei, die das Einfügen Griffe/Validierung info)
<?php
include 'databaseConnection.php';
$name = $_POST['Name'];
$price = $_POST['Price'];
$description = $_POST['Description'];
$target_dir = "images-uploads/";
$target_file = $target_dir . basename($_FILES['Photo']['name']);
$uploadOk = 1;
$imageFileType = pathinfo($target_file, PATHINFO_EXTENSION);
if(isset($_POST['submit'])) {
$check = getimagesize($_FILES['Photo']['tmp_name']);
if($check !== false) {
$uploadOk = 1;
} else {
echo "The File Is not an image";
$uploadOk = 0;
}
}
if(file_exists($target_file)) {
$filename = $_FILES['Photo']['name'];
$extension = end(explode(".",$filename));
$name = rand(pow(10, 7), pow(10, 8)-1);
$newfilename = $name . "." .$extension;
$uploadOk = 1;
echo "Image already exists. Image Name changed to " . $newfilename;
}
if($imageFileType != "jpg" && $imageFileType != "png" && $imageFileType != "jpeg") {
$uploadOk = 0;
echo "Sorry, only JPG, PNG and JPEG are accepted";
}
if ($uploadOk == 0) {
echo " Sorry, your product was not added, please check the error";
$fileupload = 0;
} else {
if (move_upload_file($_FILES['Photo']['tmp_name'], $target_file)) {
$fileupload = 1;
$imagePath = basename($_FILES['Photo']['name']) . "." . $imageFIleType;
}
}
if($fileupload == 1) {
$addProd = "INSERT INTO meniu (name, price, description, path) VALUES ('$name','$price','$description','$imagePath')";
if ($conn->connect_error) {
die("Connection Failed: " . $conn->connect_error);
}
if ($conn->query($addProd) == TRUE) { ?>
<script>
window.alert("Product: <?php echo $name; ?> has been added successfully ");
</script>
<?php } else { ?>
<script>
window.alert("Error: <?php echo $conn->error; ?>");
</script>
<?php }
}
?>
Es tut mir leid, wenn der Code nicht sehr klar ist, lerne ich immer noch PHP. Normalerweise habe ich kein Problem, aber es ist das erste Mal, dass ich Bildupload verwende. Grundsätzlich, in der Datenbank möchte ich Name, Beschreibung, Preis, Foto Pfad vorstellen. Der Pfad sollte etwas wie ../uploads/photoname.extension sein. Danke für Hilfe.
Was ist der Fehler wieder? –
Entschuldigung, vergessen, den Fehler zu verknüpfen. Hier ist es: http://vvcap.com/E5eeEQAlvEO –
** WARNUNG **: Die Verwendung von manueller Escaping ist extrem fehleranfällig und ein einzelner Fehler kann zu einem lähmenden [SQL injection bug] führen (http: // bobby-tables. com /). Wann immer möglich, verwenden Sie ** vorbereitete Aussagen **. Diese sind ziemlich einfach in [mysqli'] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) und [PDO] (http://php.net/manual/ en/pdo.prepared-statements.php) wo alle vom Benutzer angegebenen Daten mit einem '?' oder ': name'-Indikator angegeben werden, der später mit' bind_param' oder 'execute' gefüllt wird, je nachdem, welchen du verwendest. – tadman