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 :[
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.
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 :]