PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 25-07-2012 01:13:19

lamerehic
Membre
Inscription : 25-07-2012
Messages : 4

réalisation d'une galerie - probleme upload/chemin

Salut, je suis débutant et
Je voudrais réaliser une galerie en php.
J’essaie de comprendre et d’utiliser des fonctions php nécessaires pour écrire/lire des chemins d'images dans une bdd,

J'ai une bdd avec une table à 4 champs, id, nom, note, photo.
un fichier de connection php, un fichier config.php, un fichier insert_form.php et un formulaire

mais lorsque j’utilise l’ensemble de fichiers pour uploader et mettre à jour la bdd,
j’ai pas l’image uploadée dans le dossier, le champs « chemin de l’image » ne contient que le nom
J’ai essayé de changer les chemins, absolu/relatif, rien n’y fait. en sachant que les images doivent être dans un sous dossier.



voila le fichier insert_form.php:



<?php
include "config.php";
include "database.fn.php";
$link = database_connect($db);
// ***** ici on récupère les données et on les stocke dans mysql
$nom = $_POST['nom'];
$note = $_POST['note'];
 
//******* On renomme l'image de manière aléatoire pour éviter un conflit dans le dossier (2 fois le même nom par exemple
$dir = 'posters/';
$ext = strtolower( pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION) );
$file=uniqid('',false).'.'.$ext;
 
 //**** on bouge l'image
move_uploaded_file($_FILES['image']['tmp_name'], $dir.$file);
 
$photo = $file;
 
// on enregistre les données
$result = mysql_query("INSERT INTO poster VALUES
(
 '',
'".mysql_real_escape_string($nom)."',
'".mysql_real_escape_string($note)."',
'".mysql_real_escape_string($photo)."'
)
");
//Si il y a une erreur, on crie ^^
if (!$result) {
 die('Requête invalide : ' . mysql_error());
}
// on ferme la connection mysql donc ci-dessous plus de sql
mysql_close($link);
?>
 

au final j'ai une entrée dans la base ayant donc à la place du chemin, le nom et pas de fichier image.
Si quelqu'un à une idée cela m'aiderait grandement.
merci

Hors ligne

#2 25-07-2012 04:40:20

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : réalisation d'une galerie - probleme upload/chemin

Bonjour,

Le problème viens du fait que vous ne pouvez pas traiter les variables $_POST d'un formulaire sur le même formulaire qui gère le dépôt de fichier en PHP.
Le dépôt de fichier en PHP a déjà été abordé sur ce forum comme par exemple ici : http://forum.phpdebutant.org/viewtopic.php?id=8452

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#3 01-08-2012 09:08:48

lamerehic
Membre
Inscription : 25-07-2012
Messages : 4

Re : réalisation d'une galerie - probleme upload/chemin

bonjour,
voilà j'ai avancé, j'arrive a envoyer et récuperer sur server l'image, créer un thumbnail, et générer un certain nombre de variables, que je désirerai entrer dans ma base.
Cependant, j'ai beau retourner le script dans tout les sens rien ne rentre.
j'arrive pas à voir d'ou cela peut provenir



<?php
include "config.php";
include "database.fn.php";

// ***** ici on récupère les données et on les stocke dans mysql
$nom = $_POST['nom'];
$note = $_POST['note'];
 
//******* On renomme l'image de manière aléatoire pour éviter un conflit dans le dossier (2 fois le même nom par exemple

include 'functions.php';

$allowed_ext    = "jpg, gif, png, jpeg, JPG";
$top        = 50;                  
$filename     = $_FILES['image']['name'];


// Is the extension allowed?
$extension = checkext($filename, $allowed_ext);

// connection base
$connect = database_connect($db);
if(!$connect){die("Could not connect to MySQL");}

if ($extension != False)
  {
    // Move the temporary file to the image folder
    $save_to="temp/";
    if ($_POST['send_upload']==1)
      {
        $file_name=$_FILES['image']['name'];
        move_uploaded_file($_FILES['image']['tmp_name'], $save_to.basename($file_name)) or die('Cannot upload image');
        $filepath = $save_to.basename($file_name);
      }

    // Create an image resource from the uploaded image
        if($extension == "jpg" || $extension == "jpeg" || $extension == "JPG"){
          $source=imagecreatefromjpeg($filepath);
        }elseif($extension == "png") {
          $source=imagecreatefrompng($filepath);
        }elseif($extension == "gif") {
          $source=imagecreatefromgif($filepath);
        }
   
    // Resize the image resource
    $width_orig = imagesx( $source );                                 // width of image resource
    $height_orig = imagesy( $source );                                  // height of image resource
    $uploadedimage = $source;                   // Create space for the resized image
 

    //Save the resized image
    if($extension == "jpg" || $extension == "jpeg" || $extension == "JPG"){
      imagejpeg($uploadedimage, $filepath, 100);
        }elseif($extension == "png") {
      imagepng($uploadedimage, $filepath);
        }elseif($extension == "gif") {
          imagegif($uploadedimage, $filepath);
        }


    //Print and clean stuff
    $im =imagejpeg($uploadedimage, "images/genuine/" . $filename );
   
   
    //imagedestroy($im);
    imagedestroy($uploadedimage);
  //  imagedestroy($source);
  }
 
 

 
 
    $im = imagecreatefromjpeg('images/genuine/'.$filename);
 
 
   
        // thumbnail
    list($width, $height) = getimagesize('images/genuine/'.$filename);
    $new_width = 150;
    $new_height = round((150/$width)*$height);

    // Redimensionnement
    $image_p = imagecreatetruecolor($new_width, $new_height);
    imagecopyresampled($image_p, $im, 0, 0, 0, 0, $new_width, $new_height, $width, $height);
    imagejpeg($image_p, 'images/thumbs/'.md5($filename).'-thumb.jpg', 70);
 
    imagedestroy($im);
    imagedestroy($image_p);
 
 
 
$ip = $_SERVER["REMOTE_ADDR"];

$photo = "../images/genuine/" . $filename;
$md5 = md5($filename);
$model = '';
$title = "$filename.";
$today = date("F j, Y, g:i a");
$loc = ($ip);
$warnings = 0;
$candidate = 0;
$accepted = 0;
$date_accepted = 0;

//

echo $nom,"</br>", $photo,"</br>", $md5,"</br>", $loc,"</br>", $today, "</br>";
//var_dump($connect);


$poids = getimagesize('images/genuine/'.$filename);
 
  if($poids !=0)
  {
   
 


// on enregistre les données

$sql = "INSERT INTO poster (nom, note, photo, md5, model, title, date, ip, warning, candidate, accepted, date_accepted) VALUES
(

'".mysql_real_escape_string($nom)."',
'".mysql_real_escape_string($note)."',
'".mysql_real_escape_string($photo)."',
'".mysql_real_escape_string($md5)."',
'".mysql_real_escape_string($model)."',
'".mysql_real_escape_string($title)."',
'".mysql_real_escape_string($today)."',
'".mysql_real_escape_string($loc)."',
'".mysql_real_escape_string($warnings)."',
'".mysql_real_escape_string($candidate)."',
'".mysql_real_escape_string($accepted)."',
'".mysql_real_escape_string($date_accepted)."',

)
";

 mysql_query($sql);


//Si il y a une erreur, on crie ^^
if (!$sql) {
 die('Requête invalide : ' . mysql_error()); echo"$sql";
}


// on ferme la connection mysql donc ci-dessous plus de sql
mysql_close($connect); 
 
   
};
var_dump($sql);

Hors ligne

#4 01-08-2012 10:55:12

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : réalisation d'une galerie - probleme upload/chemin

Bonjour,

Votre table poster possède une PK auto incrémentée?

Sinon pour le reste de l'écriture de votre code je vous recommande une lecture à laquelle j'ai eu l'occasion de participer récemment
http://www.developpez.net/forums/d12434 … tions-sql/


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#5 01-08-2012 11:47:41

lamerehic
Membre
Inscription : 25-07-2012
Messages : 4

Re : réalisation d'une galerie - probleme upload/chemin

oui l'id est en auto increment

Hors ligne

#6 01-08-2012 13:23:02

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : réalisation d'une galerie - probleme upload/chemin

Vous avez une virgule de trop avant de fermer votre parenthèse.
Tous vos paramètres sont des VARCHAR? parce que une colonne "accepted" et "date_accepted" en VARCHAR, je trouve cela inquiétant^^.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#7 02-08-2012 08:12:30

lamerehic
Membre
Inscription : 25-07-2012
Messages : 4

Re : réalisation d'une galerie - probleme upload/chemin

Merci, c'était la virgule de trop...
j'ai essayé et retourné tout dans tous les sens, et j'ai pas vu la virgule!!


non j'ai que 3 colonnes en varchar, pourquoi?
cela peut poser problème?

Hors ligne

#8 02-08-2012 21:30:50

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : réalisation d'une galerie - probleme upload/chemin

Normalement votre colonne "accepted" devrait être définie en boolean ou bit(1) et date_accepted en datetime ou timestamp selon vos besoins.

++


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums