Tuto Portfolio 4/5 Formulaire d'envoi de réalisation

Par Dylan Kent, il y a 10 ans


Bonjour,

Voila je rencontre un petit problème avec mon code. Je suis sous windows et sous WAMP en local.

Donc j'en suis a la partie 4/5 de la réalisation d'un portfolio en php, mais je bloque au moment d'envoyer une création, elle se crée bien dans la tables "images" mais je n'ai rien dans mon dossier img/works. J'ai d'abord pensé que c'était un problème de chemin (et ça fait encore partie de mes suppositions) mais j'ai bien tout suivi, je n'ai aucune erreur et un var_dump m'affiche bel et bien le bon chemin.

Voici quelque bout du code, notamment :
La sauvegarde d'une image dans la table:

if(isset($_GET['id'])){ $id = $db->quote($_GET['id']); $db->query("UPDATE works SET name=$name, slug=$slug, content=$content, category_id=$category_id WHERE id=$id"); }else{ $db->query("INSERT INTO works SET name=$name, slug=$slug, content=$content, category_id=$category_id"); $_GET['id'] = $db->lastInsertId(); } setFlash("La création $name a bien été ajouté", 'success');

L'envoi dans le dossier :

$work_id = $db->quote($_GET['id']); $image = $_FILES['image']; $extension = pathinfo($image['name'], PATHINFO_EXTENSION); if(in_array($extension, array('jpg','png'))){ $db->query("INSERT INTO images SET work_id=$work_id"); $image_id = $db->lastInsertId(); $image_name = $image_id . '.' . $extension; move_uploaded_file($image['tmp_name'], IMAGES . 'works'. DIRECTORY_SEPARATOR . $image_name); $image_name = $db->quote($image_name); $db->query("UPDATE images SET name=$image_name WHERE id=$image_id");

et les define de mon constant.php

<?php define('WWW_ROOT', dirname(dirname(__FILE__))); $directory = basename(WWW_ROOT); $url = explode($directory, $_SERVER['REQUEST_URI']); if(count($url) == 1){ define('WEBROOT', '/'); }else{ define("WEBROOT", $url[0]. 'Portfolio'.'/'); } // var_dump(WEBROOT); // die(); define('IMAGES', WWW_ROOT . DIRECTORY_SEPARATOR . 'img' . DIRECTORY_SEPARATOR); // var_dump(IMAGES); // die();

J'ai chercher un peu partout et je n'ai rien trouvé, j'ai tenté de modifier le chemin ça marche pas non plus, il doit bien y avoir un truc que j'arrive pas a piger mais je vois pas, aucune erreur ne s'affiche non plus et le chemin me semble bon..

Merci d'avance pour votre aide. :]

EDIT : Je viens de remarquer, ma table 'image' ne reçoit rien :[

3 réponses

Gaspard, il y a 10 ans

Hello !

Pour ton insertion et ta modification, au lieu de faire

$db->query("UPDATE works SET name=$name, slug=$slug, content=$content, category_id=$category_id WHERE id=$id");

Essaie peut-être

$db->query("UPDATE works SET name='". $name ."', slug='". $slug ."', content='". $content ."', category_id=''". $category_id ."' WHERE id='". $id ."'");

Pour ta création d'image, peut-être un problème de droit sur le dossier works ?

Cordialement,
Gasp.

Dylan Kent, il y a 10 ans

C'était si simple et je n'y ai pas pensé .. C'était bel et bien un problème de droit sur /works !
Merci Gaspard :]

Gaspard, il y a 10 ans

Avec plaisir ! :)

Bonne soirée !
Gasp.