Explorer en php

Résolu
azqsazqs Messages postés 83 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 28 novembre 2010 - 29 janv. 2008 à 00:38
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 30 janv. 2008 à 00:11
Bonjour à tous,

Je cherche un explorateur en php, que je pourrais inclure dans une page de mon site.

quelle que soit la page que vous visionnez sur mon site, vous vous trouvez sur la page "accueil.php?..." grace à un jeu d'include. L'explorateur se trouvera dans un dossier "Fichiers" et sera appeler par include sur accueil.php.

Le problème est que je veux que les visiteurs ne puisse consulter l'explorateur que pour ce qui ce trouve dans Fichiers et pas ce qui se trouve à coté.

J'ai tenté plusieurs fois de modifier des codes existants sans trouvé la solution et Google ne m'a pas été d'une grande aide.

Merci pour vos réponses.

6 réponses

azqsazqs Messages postés 83 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 28 novembre 2010
29 janv. 2008 à 18:31
Ca y est, je viens de trouver ce que je voulais:

<?php
if(isset($_GET['chemin']))
{
$chemin = $_GET['chemin'];
}
else
{
$chemin = 'Fichiers';
}

$ligne = 1;
if ($dir = opendir("$chemin"))
  {
  while($file = readdir($dir))
  {
    $chemins = realpath("$file");
    if($file != "." && $file != "..")
    {
        if(is_dir($chemin."/".$file))
        {
            echo '
';
            echo '[?section=Fichiers&chemin='.$chemin. '.$file.']
';
            echo '
';
            $ligne++;
                if($ligne == 3)
                {
                $ligne = 1;
                }
        }
        else
        {
            $tab = explode(".",$file);           
           
            echo '
';
            echo '['.$chemin. '.$file.']
';
            echo '
';
            $ligne++;
                if($ligne == 3)
                {
                $ligne = 1;
                }
        }
    }
  }
  closedir($dir);
}
?>
3
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
29 janv. 2008 à 11:40
Ce que tu veux, c'est lister le contenu d'un repertoire, sans pouvoir aller dans un autre repertoire parent (genre on peux aller dans fichiers/repertoire_enfant, mais pas dans fichiers/../../repertoire_parent) ?

Quel est ta version de php ?
0
azqsazqs Messages postés 83 Date d'inscription jeudi 27 juillet 2006 Statut Membre Dernière intervention 28 novembre 2010
29 janv. 2008 à 12:36
oui, c'est ça.

pour la version php, je sais pas, j'utilise wamp je crois que c'est php5.
0
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
29 janv. 2008 à 12:43
Perso moi je comparais l'adresse du repertoire Fichier (genre /mondisque/www/Fichiers) avec la variable
realpath($varDir);

Généralement si c'est le meme début (si le retour de la fonction realpath contient le meme début que /mondisque/www/Fichiers/ alors je suis dans le bon repertoire et pas dans un repertoire parent.

Ensuite utilise DirectoryIterator de la spl de PHP 5.2 pour le parcours du repertoire, ca t'aidera pour lister ton repertoire (j'ai fait une classe pour Php4 de DirectoryIterator si t'a pas Php5.2)

Wala, toutes les informations ici :

php.net/realpath

                
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
codefalse Messages postés 1123 Date d'inscription mardi 8 janvier 2002 Statut Modérateur Dernière intervention 21 avril 2009 1
29 janv. 2008 à 22:04
Parfait :)
Alors valide en cliquant sur un "Réponse acceptée" ! :)
Merci ! :)
0
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
30 janv. 2008 à 00:11
Hello,

ça n'empêche rien ton code : si je clique sur un dossier, je me retrouver avec une url du type :
http://www.monsite.com/dossier/dir.php?section=Fichier&chemin=Fichier/test
Maintenant, je modifie mon url :
http://www.monsite.com/dossier/dir.php?section=Fichier&chemin=../
et je valide.
Je me retrouve au-dessus.
Tu ne protégeras rien comme ça. Tu dois faire des tests de sécurité plus poussés : simplement vérifier que l'on soit toujours en-dessous de la section décidée. Ce que tu affiches et ce que ton script permet de faire sont deux choses bien différentes...
0
Rejoignez-nous