Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1027 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Photo jpg et BDD : Veritable enigme !

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Photo jpg et BDD : Veritable enigme !

n°1724164
waxxx
Posté le 25-04-2008 à 09:42:44  profilanswer
 

Dans le cadre de la réalisation d'un site internet j'ai mis en place un système d'ajout/sup de photos en php.
 
Le principe est simple : Récupérer la photo grâce à un "form" , vérifier si son format est valide, enregistrer son nom dans la BDD ( URL) et enregistrer l'image dans un fichier ( exposes) et de ensuite renommer " l'url " et l'image contenue dans le dossier " exposes" par un nom formalisé.
 
Le programme marche pour un grand nombre de mes photos en ".jpg"  : l'image et son nom sont correctement modifier par un nom plus formel.
 
J'ai cependant une erreur avec 2 photos très importantes toujours en ".jpg" : le fichier image est correctement modifié cependant le nom de l'image contenu dans la BDD n'est jamais modifié.
 
Je pensais que cela provenait du nom de mes photos , mais même en les renommant cela me pose probléme!
 
 
Je vous fais part de mon code php :  
 
 
if (isset($photo) && $photo != "" ) {
  // Pour raison de sécurité test des extensions
  $extens = substr($photo_name, -3, 3);
  $size = filesize($photo)/1064;
  if ($size > 2000)
  {
   $text_err = "upload fichier impossible : Le fichier est trop gros";
   unlink($fichier);
  }
  else if ($extens != "jpg" && $extens != "JPG" && $extens != "gif" && $extens != "GIF" ) {  
   $text_err = "upload photo impossible";
   unlink($photo);
  }
  if ($text_err == "" ) {
   $repphoto = "../expose/";
   $nomphoto = $photo_name;
   if (copy($photo, $repphoto.$nomphoto)) {  
    unlink($photo);
    //enregistrement en base
    $requete = "INSERT INTO img_exposes (id_photo, id_detail, url, legende) VALUES";
    $requete .= "('', '".$id_partie."', '".addslashes($nomphoto)."', '".addslashes($legende)."' ) ";
    $cnx->fExecQuery($requete);
    $id = mysql_insert_id();
     
    $newnomphoto = "photoID_".$id.".".strtolower($extens);
    rename($repphoto.$nomphoto, $repphoto.$newnomphoto);
     
    $thumb = new Thumbnail($repphoto.$newnomphoto);
    $thumb->resize(150,150);
    $thumb->save($repphoto."mini_".$newnomphoto);
    $thumb->destruct();
     
    $requete = "UPDATE img_exposes set url='".addslashes($newnomphoto)."' WHERE id_photo='".$id."'";   // ne marche pas avec certaines photos JPG (10% de mes images)
    $cnx->fExecQuery($requete);
   }
  }
 }
 else $text_err = ERROR_MAX_FILE;
}
 
 
 
Je ne comprends pas pourquoi ce script fonctionne pour la plupart des mes images mais pas pour quelques unes... Je tiens à signaler que les image posant probléme répondent aux exigeances du programme : - de 2 mo  et de format ".JPG"
 
 
 
Merci pour l'aide que vous pourrez m'apporter !  
 
 
Waxxx

mood
Publicité
Posté le 25-04-2008 à 09:42:44  profilanswer
 

n°1724172
mrbebert
Posté le 25-04-2008 à 09:50:24  profilanswer
 

Faut regarder s'il y a une particularité dans le nom de ces images (quotes, espaces ...) [:figti]

n°1724181
waxxx
Posté le 25-04-2008 à 09:56:50  profilanswer
 

mrbebert a écrit :

Faut regarder s'il y a une particularité dans le nom de ces images (quotes, espaces ...) [:figti]


 
 
Je les ai renommée pourtant , sans succès ! Est-il possible d'avoir autre chose que le "nom de l'image" dans le "nom de l'image" ? Par exemple un nom d'image louche composé d'autres codes cachés : comme par exemple impossibilité de renommer avec une commande SQl?

n°1724209
masterpsx
Aigloun foutougrafe
Posté le 25-04-2008 à 10:21:15  profilanswer
 

Est-ce que le fichier image est bien creé et avec la bonne ID dans le nom ?  
L'enregistrement dans la base de données a t-il bien eu lieu ?
 
Pourquoi ne pas créer la miniature directement avec le fichier uploadé et l'ajouté à ta table en une fois plutot que de faire 2 réquétes à chaque fois. Tu peut surement te passer de l'id dans le nom surtout si c'est juste pour éviter qu'une image ait le même nom qu'une autre.
 
Pour info, le fait de vérifier seulement l'extension ne sécurise pas complétement, l'astuce de la double extention fonctione sur pas mal d'hebergeur. (ex : hack.php.jpg), si la photo original est conservée avec le nom d'origine dans un repertoire, méfie toi quand même.

n°1724212
tostiere
Posté le 25-04-2008 à 10:23:38  profilanswer
 

Au risque de dire n'importe quoi et de m'attirer les foudres des plus experimentés ici, je vais quand même dire ce qui me passe en premier par la tête (ce qui suit est à prendre avec des pincettes) :
 
Alors je dirais qu'il s'agit d'un problème d'identifiant.
Cette ligne pose peut-être problème :
 
$id = mysql_insert_id();  
 
Essaie (juste pour voir) de récupère l'identifiant d'une autre manière, histoire d'écarter cette possibilité tout au moins, en faisant quelque chose du style :
 
$requete = "SELECT id FROM img_exposes WHERE url='$nomphoto'";
 
Je ne dis pas que c'est ça mais sait-on jamais ;)

n°1724223
masterpsx
Aigloun foutougrafe
Posté le 25-04-2008 à 10:32:47  profilanswer
 

Tu ne dis pas n'importe quoi, au contraire, c'est dailleur pour la même raison que je demande si la miniature crée a la bonne ID dans son nom. :)

n°1724635
waxxx
Posté le 25-04-2008 à 17:21:39  profilanswer
 

masterpsx a écrit :

Tu ne dis pas n'importe quoi, au contraire, c'est dailleur pour la même raison que je demande si la miniature crée a la bonne ID dans son nom. :)


 
Problème réglé : La résolution de l'image qui "buggait" était trop élevée pour le serveur : impossibilité de créer une miniature avec thumbnail.
 
Le code qui suivait n'était donc pas interprété par l'ordinateur!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Photo jpg et BDD : Veritable enigme !

 

Sujets relatifs
Insérer un album photo dans une page html[PHP / BDD] Ma gallerie photo
Interaction avec BDD chez 1and1BDD et les objets graphique
mini galerie photoUne grosse BDD ou plusieurs ?
Obtenir les schema a partir d'une BDDHELP ! Connexion BDD php avec dreamweaver 8
Mise à jour BDD 
Plus de sujets relatifs à : Photo jpg et BDD : Veritable enigme !


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR