Probleme avec nom de mes images uploadées

kurosaki -  
 forum92 -
Bonjour ,
jai un probleme depuis quelques jours ,voila j'ai cette fonction qui me permet d'uploader des images dans un dossier ,j'y ai aussi ajouté un bout de code qui me permet de de créer un nom aléatoire pour chacune d'elle.
<?php
$bdd=new PDO('mysql:host=127.0.0.1;dbname=authentification','root',''); 
function upload_avatar($avatar_tmp)
{
 if(file_exists($avatar_tmp))
 {
  $image_size=getimagesize($avatar_tmp);
  if($image_size['mime']== 'image/jpeg')
  {
   $image_src=imagecreatefromjpeg($avatar_tmp);
  }elseif($image_size['mime']=='image/png')
  {
   $image_src=imagecreatefrompng($avatar_tmp);
  }
  elseif($image_size['mime']=='image/gif')
  {
   $image_src=imagecreatefromgif($avatar_tmp);
  }
  else
  {
   echo"Votre image n'est pas valide";
   $image_src=false;
  }
  
  if($image_src!==false)
  {
   $image_width=300;
   if($image_size[0]<=$image_width)
   {
    $image_finale=$image_src;
   }
   else
   {
    $new_width[0]=$image_width;
   //Pour le ratio largeur / Hauteur
   $new_height[1]=($image_size[1]/$image_size[0])*$image_width;
    //Permet le redimensionnement de notre image
    $image_finale=imagecreatetruecolor($new_width[0],$new_height[1]);
   imagecopyresampled($image_finale,$image_src,0,0,0,0,$new_width[0],$new_height[1],$image_size[0],$image_size[1]);
   }
   $caracteres = array( 0, 1, "a","b",2,3,"c",5,8,"d", "e", "f","g","h",4, 9,"i","j","k",6,7,"l","m","n","o");
                         $caracteres_aleatoires = array_rand($caracteres, 18);
                         $nom_aleatoire = "";
       foreach($caracteres_aleatoires as $i)
                         {
                              $nom_aleatoire .= $caracteres[$i];
                         }
        $nom=$nom_aleatoire;
       $nom.=$_SESSION['id'];

       
   imagejpeg($image_finale,'avatar/'.$nom.'.jpg');
   
   
  }
  
 }
 
}
?>

Le truc cest que le nom du fichier dans la bdd est completement different, du coup pour l'afficher , je n'ai aucune image .
$query=$bdd->prepare('UPDATE membres SET avatar=:avatar WHERE id='.$_SESSION['id'].'');
   $query->execute(array(
   'avatar'=>$nom_aleatoire.$_SESSION['id'].".jpg"
   ));

Merci de m'aider .

EDIT : Ajout du LANGAGE dans les balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

1 réponse

forum92 Messages postés 226 Statut Membre 133
 
pourquoi mettre faux ? c'est pas un booleen si ?
$image_src=false;

il y a un point en trop non ?
$nom_aleatoire .= $caracteres[$i];
idem
$nom.=$_SESSION['id'];
0
NHenry Messages postés 15479 Statut Modérateur 366
 
Le vormat :
$Var .= Value;
est équivalente à :
$Var = $Var . Value;
Le "." étant la concaténation de chaine en PHP.


Pour le nom aléatoire, tu peux aussi regarder du côté d'une fonction de hashage (MD5, SHA, ... ) basé sur l'heure, cela te donnera pas mal de random.
0
forum92 > NHenry Messages postés 15479 Statut Modérateur
 
Ok. Pardon,je connaissais pas le racoucci....^^
0