Probleme avec nom de mes images uploadées

Fermé
kurosaki - Modifié par NHenry le 1/08/2016 à 20:05
 forum92 - 1 août 2016 à 23:35
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 220 Date d'inscription lundi 6 juillet 2015 Statut Membre Dernière intervention 14 août 2018 133
1 août 2016 à 19:52
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
1 août 2016 à 20:07
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 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024
1 août 2016 à 23:35
Ok. Pardon,je connaissais pas le racoucci....^^
0