Fatal error ^_o

Fatal error ^_o - PHP - Programmation

Marsh Posté le 05-03-2009 à 22:45:06    

Slt, je programme une petite fonction qui me permet d'afficher des images dans un tableau au format png, gif et jpg seulement et affiche un nombre d'images par ligne défini par l'utilisateur...
 
Seulement, quand je vérifie mon code avec easyphp, j'ai un message d'erreur fatal: " Fatal error: Can't use function return value in write context in C:\Program Files\EasyPHP 3.0\www\APIG\AP_Fevrier\affiche.php on line 34 "
 
Voici mon code:

Code :
  1. <html>
  2. <head>
  3. <link rel="stylesheet" type="text/css" href="fichier.css">
  4. </head>
  5. <body>
  6. <?php
  7. $repertoire=$_POST['repertoire'];
  8. $nombre=$_POST['image'];
  9. $largeur=$_POST['largeur'];
  10. $hauteur=$_POST['hauteur'];
  11. $curseur=opendir($repertoire);
  12. $file=readdir($curseur);
  13. $nbp=0;
  14. function getExtension($image){
  15. $trunc = split('[.]', $image);
  16. if(sizeof($trunc)>1){
  17.  return $trunc[sizeof($trunc)-1];
  18. }else {
  19.  return strtolower(substr($image,-3));
  20. }
  21. }
  22. echo "<TABLE BORDER='1'>";
  23. echo "<TR> ";
  24.      while ( $curseur != FALSE){
  25.     if ( (getExtension($file)="JPG" ) or (getExtension($file)="PNG" ) (getExtension($file)="GIF" ) ){
  26. $nbp=$nbp+1;
  27.     echo "<TD>".$file."</TD> "; 
  28.      if ($nbp=$nombre){
  29.  echo "<TD>".$file."</TD>";
  30. }else{
  31.    
  32.  echo "</TR>"};
  33.  }else
  34.  { echo "</TR>";
  35.  }
  36.  echo "</TABLE>";
  37. ?>
  38. </body>
  39. </html>


 
La ligne 34 est celle avec le if pour les extensions..
 
PS: je sais que mon conde est sâle..  :d


Message édité par absot77 le 05-03-2009 à 22:47:29
Reply

Marsh Posté le 05-03-2009 à 22:45:06   

Reply

Marsh Posté le 05-03-2009 à 22:59:29    

tu affectes au lieu de comparer dans ton if :o
 
en plus tu devrais mettre une variable au dessus pour faire ton découpage, tu appelerais la fonction qu'une fois, au lieu de le faire 3x pour un résultat identique

Reply

Marsh Posté le 05-03-2009 à 23:11:19    

Comment ça j'ai affecter au lieu de comparer?
 
Au quel?
 

Reply

Marsh Posté le 05-03-2009 à 23:32:10    

ligne 34 les 2.
pour comparer faut ==

 

T'as repompé ce code qque part ou tu l'as écrit toi même ?


Message édité par PunkRod le 05-03-2009 à 23:32:17
Reply

Marsh Posté le 05-03-2009 à 23:33:54    

Je l'ai fais moi-même, c'est aussi mauvais que ça?  :(

Reply

Marsh Posté le 06-03-2009 à 09:08:53    

ben tu devrais savoir la différence entre = et == quoi :o

Reply

Marsh Posté le 06-03-2009 à 09:18:40    

[:haha]

Reply

Marsh Posté le 06-03-2009 à 10:28:45    

...
= != == != ===
:D
Nan mais sérieu, tu met un = dans un test => tu redéfini ta variable; donc forcément, sa marche moins bien...

Reply

Marsh Posté le 06-03-2009 à 10:45:00    

Bon plusieurs erreurs : certaines ont déja été dites :
 
= au lieu de == dans ton if.
 
un }; au lieu de ;}  
une indentation laisant a desirée j'ai cru un bon moment qu'il te manquait un } avant de voir le coup du }; au lieu de ;}
 
un while ( $curseur != FALSE){ qui te fait surement une boucle infinie car $curseur n'est jamais mis a true apparement
 
Tu peux simplifier le test de l'extention autorisée avec une variable temporaire et in_array
 
ta fonction getExtention est tordue : si split n'a pas donné au moins un tableau a deux elements, ca ne sert a rien de renvoyer les 3 derniers caracteres : ce n'est pas l'extention du fichier.
tu renvoies dans ce cas strtolower alors que tu vas tester des extentions en majuscules ? Et dans ce cas pourquoi faire appel a cette fonction dans un cas et pas dans l'autre ?
 
...
 

Code :
  1. <html>
  2. <head>
  3. <link rel="stylesheet" type="text/css" href="fichier.css">
  4. </head>
  5. <body>
  6. <?php
  7. $repertoire=$_POST['repertoire'];
  8. $nombre=$_POST['image'];
  9. $largeur=$_POST['largeur'];
  10. $hauteur=$_POST['hauteur'];
  11. $curseur=opendir($repertoire);
  12. $file=readdir($curseur);
  13. $nbp=0;
  14. function getExtension($image){
  15. //verrifier si cette fonction fait bien ce que tu veux
  16. $trunc = split('[.]', $image);
  17. if(sizeof($trunc)>1){
  18.  return $trunc[sizeof($trunc)-1];
  19. }else {
  20.  return strtolower(substr($image,-3));
  21. }
  22. }
  23. echo "<TABLE BORDER='1'>";
  24. echo "<TR> ";
  25. while ( $curseur != FALSE){
  26. $ext = getExtension($file);
  27. if ( in_array($ext, array("JPG","PNG","GIF" ))){
  28.  $nbp=$nbp+1;
  29.  echo "<TD>".$file."</TD> ";
  30.  if ($nbp=$nombre){
  31.   echo "<TD>".$file."</TD>";
  32.  }else{
  33.   echo "</TR>";
  34.  }
  35. }else {
  36.  echo "</TR>";
  37. }
  38. }
  39. echo "</TABLE>";
  40. ?>
  41. </body>
  42. </html>


Message édité par fluminis le 06-03-2009 à 10:50:47

---------------
http://poemes.iceteapeche.com - http://www.simuland.net
Reply

Sujets relatifs:

Leave a Replay

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