Erreur PHP

Résolu
Synerz Messages postés 1341 Statut Membre -  
Synerz Messages postés 1341 Statut Membre -
Bonjour,

Voici mon script qui me permet d'afficher des fichiers dans certain cas precis.
<?php
//recuperation de la variable
$ID = isset($_GET['ID']) && !empty($_GET['ID'])?$_GET['ID']:NULL;

if($ID){
//Test de l'ID
switch($ID){
 case "3fuHXxYxaTJ84NQygauXCchT" :
   $nom_repertoire = '/opt/Fichier HAR/';
   $fichier = 'www';
   break;
  
  case "8FFSkmwmRAbrHMpfnAfqdDLC" :
   $nom_repertoire = '/opt/Fichier HAR/';
   $fichier = "test2*";
   break;
  
  case "Emarf6d6rfqh7T8bDukG9YVb" :
   $nom_repertoire = '/Fichier HAR/';
   $fichier = "test3*";
   break;

  default:
  echo $ID " <br>ERREUR : ID Inconnu ! "; 
}

  //--- LECTURE ---
  //on ouvre le repertoire
  $pointeur = opendir($nom_repertoire);
  while ($file = readdir($pointeur)){
   foreach (glob('/opt/Fichier HAR/'.$fichier) as $file) {
 ($file == $fichier)
 echo $file."<br />";

 }
 closedir($pointeur);
  } 
}else{
 echo "<br> ERREUR ! NO ID !!";
}



?>

Mais j'ai une erreur lignes 33 qui dit :PHP Parse error: syntax error, unexpected T_ECHO in /var/www/html/index.php on line 33
Merci d'avance :)
Un peu d'aide contre un topic résolu !

1 réponse

Résumé de la discussion

Un script PHP tente d’afficher des fichiers selon un identifiant reçu via GET mais souffre d’erreurs de syntaxe et de logique dans le traitement du switch et la lecture du répertoire. Des réponses suggèrent principalement de corriger une concaténation manquante sur l’ID et d’assurer une syntaxe propre, puis de standardiser le flux du switch avec des valeurs et des chemins corrects. D’autres échanges abordent aussi la gestion de la lecture de répertoire avec opendir et readdir, l’usage inapproprié de foreach sur glob, et les messages d’erreur faible comme les warnings. En pratique, il est conseillé d’isoler les tests et d’afficher les variables pendant le débogage, afin de valider chaque cas du switch et chaque étape de lecture.

Bobot (l'IA à votre service)
  1. Mazamazine Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   13
     
    Salut, je comprend pas pourquoi tu fais
    ($file == $fichier)

    Tu veux faire quoi là?
    0
    1. Synerz Messages postés 1341 Statut Membre 116
       
      Ah mince c'est à supprimer ça c'etais pour un autre test. Mais maintenant j'ai cette erreur :PHP Warning: readdir(): 3 is not a valid Directory resource in /var/www/html/index.php on line 30
      0
    2. Mazamazine Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   13
       
      Peux-tu recopier la partie --- LECTURE --- que tu as modifiée?
      0
    3. Synerz Messages postés 1341 Statut Membre 116 > Mazamazine Messages postés 83 Date d'inscription   Statut Membre Dernière intervention  
       
        //--- LECTURE ---
        //on ouvre le repertoire
        $pointeur = opendir($nom_repertoire);
        while ($file = readdir($pointeur)){
         foreach (glob('/opt/Fichier HAR/'.$fichier) as $file) {
       echo $file."<br />";
      
       }
       closedir($pointeur);
        } 
      }else{
       echo "<br> ERREUR ! NO ID !!";
      }
      
      
      
      ?>
      
      0
    4. Mazamazine Messages postés 83 Date d'inscription   Statut Membre Dernière intervention   13
       
      Je crois que
      closedir($pointeur);
      est dans ta boucle while....
      Tu devrais le sortir de là! Parce que là tu le ferme avant d'avoir fini.
      0
    5. Synerz Messages postés 1341 Statut Membre 116 > Mazamazine Messages postés 83 Date d'inscription   Statut Membre Dernière intervention  
       
      J'ai fais ça :

        $pointeur = opendir($nom_repertoire);
        while ($file = readdir($pointeur)){
         foreach (glob('/opt/Fichier HAR/'.$fichier) as $file) {
       ($file == $fichier)
       echo $file."<br />";
      
       }
        }
       closedir($pointeur);
        
      }else{
       echo "<br> ERREUR ! NO ID !!";
      }
      
      ?>
      

      Et j'ai de nouveau :PHP Parse error: syntax error, unexpected T_ECHO in /var/www/html/index.php on line 33
      0