Après un week-end passé à chercher une solution, que ce soit de moi-même ou bien sur internet, je viens dans le plus grand désespoir vous demander votre aide.
J'ai créé un panneau d'administration à partir duquel il est possible d'uploader une image à partir de son ordinateur.
Mon script consiste à enregistrer l'image dans le FTP, ainsi que les informations liées dans la base de donnée.
Je vérifie donc l'intégralité et la validité de l'image et des informations avant d'exécuter le script.
Une fois la condition remplie, le fichier chargé est correctement enregistré à l'endroit voulu mais la requête SQL pour enregistrer les informations ne fonctionne pas.
Aucun élément n'est ajouté à la base de donnée ...
Voici mon script
<?php
if(!empty($_POST['title']) && !empty($_POST['cat_id']) && isset($_FILES['img']) && $_FILES['img']['error'] == 0)
{
$imgtitle = secure($_POST['title']);
$imgcatid = intval($_POST['cat_id']);
$imgdescription = !empty($_POST['description'])?secure($_POST['description']):'';
$fileinfo = pathinfo($_FILES['img']['name']);
$ext_upload = $fileinfo['extension'];
$ext_allowed = array('jpg', 'jpeg', 'gif', 'png', 'psd');
if (in_array($ext_upload, $ext_allowed))
{
move_uploaded_file($_FILES['img']['tmp_name'], 'images/gallery/' . basename($_FILES['img']['name']));
$req = $bdd->prepare('INSERT INTO gallery(id, cat_id, title, description, before, after) VALUES(:id, :cat_id, :title, :description, :before, :after)');
$req->execute(array(
'id' => '',
'cat_id' => $imgcatid,
'title' => $imgtitle,
'description' => $imgdescription,
'before' => '',
'after' => "images/gallery/".$_FILES['img']['name']
));
header('Location: admin.php?g=gallery');
}
}
?>
Et encore un autre test que j'ai fais :<?php
if(!empty($_POST['title']) && !empty($_POST['cat_id']) && isset($_FILES['img']) && $_FILES['img']['error'] == 0)
{
$imgtitle = secure($_POST['title']);
$imgcatid = intval($_POST['cat_id']);
$imgdescription = !empty($_POST['description'])?secure($_POST['description']):'';
$imgafter = $_FILES['img']['name'];
$imgbefore = $_FILES['img_before']['name'];
$fileinfo = pathinfo($_FILES['img']['name']);
$ext_upload = $fileinfo['extension'];
$ext_allowed = array('jpg', 'jpeg', 'gif', 'png', 'psd');
if (in_array($ext_upload, $ext_allowed))
{
move_uploaded_file($_FILES['img']['tmp_name'], 'images/gallery/' . basename($_FILES['img']['name']));
$req = $bdd->prepare('INSERT INTO gallery(cat_id, title, description, before, after) VALUES(:cat_id, :title, :description, :before, :after)');
$req->bindParam(':cat_id',$imgcatid);
$req->bindParam(':title',$imgtitle);
$req->bindParam(':description',$imgdescription);
$req->bindParam(':before',$imgbefore);
$req->bindParam(':after',$imgafter);
$req->execute();
}
}
?>
A noter que :- Je suis bel et bien connecté à la base de donnée
- Lorsque j'active le report d'erreurs PDO, il me retourne un array(0=>0000, 1=>, 2=>)
Voilà la structure de ma table "gallery" :

Merci d'avance pour votre aide !
Bonne fin de journée et de week-end