Bilder können nicht hochgeladen werden

Henrigo007

Mitglied
Hallo Leute,
Ich glaube, ich drehe völlig durch
ich kann damit kein Bild hochladen, was ist daran falsch ?
mein error_log ist leer.

Vielen Dank

PHP:
<?php
require_once __DIR__ . '/connection.php';

$idCat             = ($_POST["idCat"]);
$photo             = ($_FILES["photo"]["name"]);
$fichierTemporaire = $_FILES["photo"]["tmp_name"];

move_uploaded_file($fichierTemporaire, "./images/$photo");
$check = $dbConnect->query('SELECT count(*) FROM product WHERE path ="' . $photo . '"')->fetchColumn();

if ($check === '0') {
    try {
        $req = $dbConnect->query("INSERT INTO product(path,code_cat) VALUES('$photo','$idCat')");
    } catch (Exception $e) {
    }
    header('Location:GestionProduits.php');
} else {
    header('Location:GestionProduits.php?error=1');
}
?>
 
Wie ist denn der Rückgabewert von move_uploaded_file?

Du solltest übrigens

  • $idCat, $photo und $fichierTemporaire nicht unvalidiert in Pfaden oder SQL-Queries verwenden
  • Prepared Statements nutzen anstatt die Variablen in das SQL-Query selbst einzufügen
  • Die Race Condition vermeiden, dass das erste SQL-Query 0 zurückgibt, dann ein anderer das Bild hochlädt und du trotzdem das zweite SQL-Query ausführst.
    Warum setzt du nicht einfach die Spalte Path als UNIQUE oder sogar PRIMARY KEY?
 
move_upload_file schafft kein bild hochzuladen, mit der Meldung von javascript, was ich eingesetzt habe, bekomme ich "Der Bildpfad existiert schon" obwohl es noch nicht dabei ist.
so sieht die bild-Tabelle aus:

SQL:
CREATE TABLE IF NOT EXISTS `product` (
  `id` int(16) NOT NULL AUTO_INCREMENT,
  `path` varchar(256) NOT NULL,
  `user_id` int(11) NOT NULL,
  `code_cat` int(11) NOT NULL,
  `pos_nr` varchar(256) NOT NULL,
  `farbe` varchar(256) NOT NULL,
  `anz_la_1` varchar(256) NOT NULL,
  `anz_la_2` varchar(256) NOT NULL,
  `anz_la_3` varchar(256) NOT NULL,
  `anz_la_4` varchar(256) NOT NULL,
  `bem_1` varchar(256) NOT NULL,
  `bem_2` varchar(256) NOT NULL,
  `bem_3` varchar(256) NOT NULL,
  `a` int(11) DEFAULT '0',
  `b` int(11) DEFAULT '0',
  `c` int(11) DEFAULT '0',
  `d` int(11) DEFAULT '0',
  `e` int(11) DEFAULT '0',
  `alpha` int(11) DEFAULT NULL,
  `beta` int(11) DEFAULT NULL,
  `bemerkung_4` varchar(256) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=28 ;
 
Zuletzt bearbeitet von einem Moderator:
Zurück