script php affichage photo

script php affichage photo - PHP - Programmation

Marsh Posté le 20-01-2011 à 13:58:43    

Bonjour , je réalise un projet pour ma formation webmestre au cnam et j'ai fait un script php pour afficher les photo d'un répertoire mais le soucis c'est que sous easyphp et directement en ligne le script ne fonctionne pas  

Code :
  1. <?php
  2.  // les extensions valides dans uen variable
  3.  $extensions_valides = array('jpg', 'jpeg', 'gif', 'png');
  4.  // ouverture du répertoire de photo
  5.  $rep='./photo';
  6.  $repertoire=opendir($rep);
  7.  //lecture des fichiers photos
  8.  while($fichier = readdir($repertoire))
  9.  {
  10.   $test_Fichier = $rep.$fichier;
  11.   // verifie si le fichier n'est pas un dossier
  12.   if(!is_dir($test_Fichier))
  13.   {
  14.    // Si le fichier à une extension valide afficher l'image
  15.    $ext = pathinfo($fichier,  PATHINFO_EXTENSION);
  16.    if(in_array($ext, $valide_extensions))
  17.    {
  18.     echo '
  19.      <div style="float:left; width:150px margin-right:10px">
  20.       <img src="'.$test_Fichier.'" style="whidth:150px" />
  21.      </div>';
  22.    }
  23.   }
  24.  }
  25. ?>


 
j'ai bien crée un dossier photo a la racine du fichier .php en y mettant une photo mais rien ne ce passe quand c'est héberger et j'ai une erreur sous easy :
 Notice: Undefined variable: valide_extensions in E:\EasyPHP-5.3.5.0\www\perso\photo\index.php on line 52
 
je sais pas comment faire pour régler ce soucis :/


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 20-01-2011 à 13:58:43   

Reply

Marsh Posté le 20-01-2011 à 17:17:14    

Petite confusion entre $extension_valides et $valide_extensions !

Reply

Marsh Posté le 20-01-2011 à 17:33:32    

Merci je ne l'avais pas vue :) ! mais le problème persiste toujours :/


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 20-01-2011 à 21:06:33    

T'as la même erreur à la même ligne ? ça me semble peu probable parce que si t'as corrigé la première ligne, ensuite la variable est correctement définie..


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 20-01-2011 à 21:08:46    

Oui je n'ai plus d'erreur mais rien ne s'affiche par contre :/


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 20-01-2011 à 21:16:04    

Normal, regarde ce que retourne pathinfo, et ce que tu demandes de faire à in_array :)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 20-01-2011 à 21:24:45    

a vrai dire je debute avec le php j'ai regarder à drotie a gauche pour essayer de me renseigner j'ai vue que pour le pathinfo avec l'option retourne bien l'extension? pour le in_array je voie pas du tout la :o


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 20-01-2011 à 21:31:37    

pathinfo retourne un array,
in_array regarde dans un array donné s'il trouve ce que tu lui donnes dans l'autre paramètre. Donc là il va regarder s'il trouve dans ton array ... un autre array => Non


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 20-01-2011 à 21:48:00    

hum faut que je le tourne comment? :/


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 20-01-2011 à 22:15:09    

Bein réfléchi :D In array va chercher si X est dans l'array Y. Il faut donc que X soit dans la même forme que les éléments de Y :bounce:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 20-01-2011 à 22:15:09   

Reply

Marsh Posté le 20-01-2011 à 23:32:33    

si j'ai bien compris il faut que j'arrive a mettre $ext et $extension_valide dans le même format?


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 21-01-2011 à 12:35:37    

u,nn petit up je suis a la ramasse ^^


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 21-01-2011 à 12:37:50    

Non, non, non. Relis la doc, relis mes réponses et réfléchis. Tout est là...


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-01-2011 à 12:47:44    

j'ai re lut en gros in array cherche dans un tableau les valeur et regarde si il lui correspond c'est bien ca ?

 

if(in_array($extensions_valides( les valeur contenu dans un tableau) ,$ext ( la valeur rechercher?))

 

c'est bien ca? :/


Message édité par wazany le 21-01-2011 à 12:47:52

---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 21-01-2011 à 12:53:37    

esox_ch a écrit :

pathinfo retourne un array

Oui, mais pas dans le cas où une option est utilisée :

Citation :

Valeurs de retour
 
Le tableau associatif contenant les éléments suivants est retourné : dirname, basename, extension (s'il y en a), et filename.
 
Si options est utilisé, cette fonction retournera une chaîne de caractères si tous les éléments ne sont pas demandés.
(source : http://fr2.php.net/manual/fr/function.pathinfo.php)

Donc, ici, puisque l'on a une option, $ext = pathinfo($fichier,  PATHINFO_EXTENSION); il n'y a pas besoin de faire une conversion. Le in_array devrait marcher.
Pour debugguer, affichez le contenu de vos données, et vous verrez ce qui ne va pas. Par exemple, c'est peut-être un problème de majuscules/minuscules.
 

Reply

Marsh Posté le 21-01-2011 à 12:56:36    

Citation :

if(in_array($extensions_valides( les valeur contenu dans un tableau) ,$ext ( la valeur rechercher?))

L'ordre des paramètres est à inverser.
Il faut mettre d'abord la valeur à rechercher, puis, le nom du tableau. Voir http://fr2.php.net/manual/fr/function.in-array.php

if (in_array($ext, $extensions_valides)) {


Message édité par billgatesanonym le 21-01-2011 à 12:58:41
Reply

Marsh Posté le 21-01-2011 à 13:00:47    

hum ben c'est ce que j'avais a la base :/


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 21-01-2011 à 13:04:53    

Ah oui my bad :jap:


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-01-2011 à 13:13:55    

ben alors le soucis viens d'autre chose?


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 21-01-2011 à 13:22:45    

Fait voir un print_r($ext) et print_r($extensions_valides)


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-01-2011 à 13:54:51    

Il m'affiche bien l'extension du fichier et aussi le tableau


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 21-01-2011 à 14:30:21    

ca doit peut être venir des variable? pour qu'il n'y ai rien qui s'affiche?


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 21-01-2011 à 14:44:09    

mets nous ici le retour des print_r


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-01-2011 à 14:47:08    

Le code

Code :
  1. <?php
  2.  // les extensions valides dans uen variable
  3.  $extensions_valides = array('JPG', 'jpeg', 'gif', 'png');
  4.  // ouverture du répertoire de photo
  5.  $rep='./photo';
  6.  $repertoire=opendir($rep);
  7.  //lecture des fichiers photos
  8.  while($fichier = readdir($repertoire))
  9.  {
  10.   $test_Fichier = $rep.$fichier;
  11.   // verifie si le fichier n'est pas un dossier
  12.   if(!is_dir($test_Fichier))
  13.   {
  14.    // Si le fichier à une extension valide afficher l'image
  15.    $ext = pathinfo($fichier,  PATHINFO_EXTENSION);
  16.    print_r($ext);
  17.    echo"<br/><br/>";
  18.    print_r($extensions_valides);
  19.    echo"<br/><br/>";
  20.    print_r($test_Fichier);
  21.    echo"<br/><br/>";
  22.    if(in_array($ext, $extensions_valides))
  23.    {
  24.     echo '
  25.      <div style="float:left; width:150px margin-right:10px">
  26.       <img src="'.$test_Fichier.'" style="whidth:150px">test</img>
  27.      </div><br/>';
  28.    }
  29.   }
  30.  }
  31. ?>


 
 
JPG
 
Array ( [0] => JPG [1] => jpeg [2] => gif [3] => png )
 
./photoDSC00105.JPG
 
test


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 21-01-2011 à 15:04:27    

esox_ch a écrit :

Ok  
Remplace
 

Code :
  1. if(in_array($ext, $extensions_valides))


par  

Code :
  1. if(in_array($ext, array_values($extensions_valides)))


 
Et ensuite explique à billgatesanonym pourquoi il avait tort :D


 
 
Tour rien qui s'affiche au final :o


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 21-01-2011 à 15:10:02    

print_r(array_values($extensions_valides))
 
Te retourne bien :
Array ( JPG, jpeg, gif, png )  
 
Non ?


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-01-2011 à 15:11:05    

Heu....  
array_values sur un array numerique sans clé ( = une liste), c'est l'identité  :heink:  
 
C'est pas dû à ça mais par contre je vois un gros bug dans ce code : in_array est case sensitive
 
 
 

Reply

Marsh Posté le 21-01-2011 à 15:20:11    

Bon faut que j'aille faire une pause, je racconte trop l'importe quoi là :'(

Message cité 1 fois
Message édité par esox_ch le 21-01-2011 à 15:20:21

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 21-01-2011 à 15:28:35    

donc faut que je fasse gaffe au maj c'est ça?


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 21-01-2011 à 16:23:25    

esox_ch a écrit :

Bon faut que j'aille faire une pause, je racconte trop l'importe quoi là :'(


courage c'est bientôt le week end  :)  

wazany a écrit :

donc faut que je fasse gaffe au maj c'est ça?


 
tout à fait. Imagine un utilisateur qui débarque avec des "photo.Jpg", l'extension est refusée
 
Sinon je vois pas pourquoi ton code plante : j'ai testé à la main un exemple avec tes valeurs (JPG et array('JPG".... ) et ça marche très bien.


Message édité par smaragdus le 21-01-2011 à 16:23:36
Reply

Marsh Posté le 21-01-2011 à 16:24:40    

n'y a t'il pas un moyen de le rendre insensible à la case?
 
 
edit : youhou ça fonctionne j'avais fait une petite erreur avec

Code :
  1. $rep='./photo/';

je n'avais pas mis le "/" a la fin :/


Message édité par wazany le 21-01-2011 à 16:27:41

---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 21-01-2011 à 16:42:15    

merci de votre coup de main , j'ai un autre soucis maintenant que l'image s'affiche c'est que le style n'est pas pris en compte en fait et je ne voie pas pourquoi oO


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le 21-01-2011 à 16:50:01    

je n'ai rien dit :D


---------------
L'annuaire des serveurs Discord Hardware.fr Aidez nous à le compléter ! | Mes ventes
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed