Afficher un repertoire avec des restrictions
Résolu
Synerz
Messages postés
1341
Statut
Membre
-
Synerz Messages postés 1341 Statut Membre -
Synerz Messages postés 1341 Statut Membre -
bonjour,
J'ai écris un code php pour afficher le contenu d'un répertoire avec une restriction mais mon script ne fonctionne pas j'aimerai avoir de l'aide.
Merci d'avance
EDIT: Précision du langage dans la coloration syntaxique.
Un peu d'aide contre un topic résolu !
J'ai écris un code php pour afficher le contenu d'un répertoire avec une restriction mais mon script ne fonctionne pas j'aimerai avoir de l'aide.
<?php
//recuperation de la variable
$ID = isset($_GET['ID']) && !empty($_GET['ID'])?$_GET['ID']:NULL;
//Test de l'ID
if (($ID) == "3fuHXxYxaTJ84NQygauXCchT") {
//nom du repertoire contenant les .HAR à afficher
$nom_repertoire = '/opt/Fichier HAR';
//on ouvre le repertoire
$pointeur = opendir($nom_repertoire);
//Tri des fichiers
while ($file = readdir ($pointeur)){
if ($file == "www.test1*") echo "$file<br/>"
}
// fermeture du repertoire
closedir($pointeur);
//Test de l'ID
} elseif (($ID) == "8FFSkmwmRAbrHMpfnAfqdDLC") {
//nom du repertoire contenant les .HAR à afficher
$nom_repertoire = '/opt/Fichier HAR';
//on ouvre le repertoire
$pointeur = opendir($nom_repertoire);
//Tri des fichiers
while ($file = readdir ($pointeur)){
if ($file == "test2*") echo "$file<br/>"
}
// fermeture du repertoire
closedir($pointeur);
//Test de l'ID
} elseif (($ID) == "Emarf6d6rfqh7T8bDukG9YVb"){
//nom du repertoire contenant les .HAR à afficher
$nom_repertoire = '/opt/Fichier HAR';
//on ouvre le repertoire
$pointeur = opendir($nom_repertoire);
//Tri des fichiers
while ($file = readdir ($pointeur)){
if ($file == "test3*") echo "$file<br/>"
}
closedir($pointeur);
}
?>
Merci d'avance
EDIT: Précision du langage dans la coloration syntaxique.
Un peu d'aide contre un topic résolu !
1 réponse
-
Bonjour,
Ton script ne marche pas.. ... ok... mais en quoi ne fonctionne t'il pas ??
Bon.. après une brève lecture.. je me demande si tu n'aurais simplement pas oublié des points virgules derrière tes echo...
Bon.. de toutes façons on peut facilement rendre ton script plus beau et plus maintenable...<?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.test1*"; break; case "8FFSkmwmRAbrHMpfnAfqdDLC" : $nom_repertoire = '/opt/Fichier HAR'; $fichier = "test2*"; break; case "Emarf6d6rfqh7T8bDukG9YVb" : $nom_repertoire = '/opt/Fichier HAR'; $fichier = "test3*"; break; default: echo "<br>ERREUR : ID Inconnu ! "; } //--- LECTURE --- //on ouvre le repertoire $pointeur = opendir($nom_repertoire); while ($file = readdir($pointeur)){ if ($file == $fichier ){ echo $file."<br/>"; } } closedir($pointeur); }else{ echo "<br> ERREUR ! NO ID !!"; }
EDIT : Correction nom de variable $ficher en $fichier dans le IF
Cordialement,
Jordane-
Par contre.... tu as mis une astérisque à côté du nom des fichiers..... tu veux surement dire qu'il peut y avoir d'autres caractères derrières non ?
Donc utiliser un EGAL avec ça.. risque de ne pas fonctionner non ??
Regardes plutot du côté de strpos (et retire les asterisques * ) ://on ouvre le repertoire $pointeur = opendir($nom_repertoire); while ($file = readdir($pointeur)){ if (strpos($file, $fichier)){ echo $file."<br/>"; } } closedir($pointeur);
ou après.. tu peux aussi regarder du côté des expressions régulières.
(avec preg_match par exemple) => (et retire les asterisques * )//on ouvre le repertoire $pointeur = opendir($nom_repertoire); while ($file = readdir($pointeur)){ if (preg_match("#^".$file."(.*)$#i", $fichier)){ echo $file."<br/>"; } } closedir($pointeur); -
-
-
Ah oui c'est vrai ! Donc je dois faire comment exactement ? Je suis pas ttres bon en PHP :/
Dans les fichier de log j'ai cette erreur :
- Undefined variable: nom_repertoire in /var/www/html/index.php on line 29
- readdir() expects parameter 1 to be resource, boolean given in /var/www/html/index.php on line 30
- closedir() expects parameter 1 to be resource, boolean given in /var/www/html/index.php on line 35
Donc il pointe pas au bon endroit pourtant j'ai ajouté un Alias dans HTTPD.conf :/ -
-