begin process at 2012 05 31 19:26:06
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Vérification dossier, problème


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Vérification dossier, problème

lundi 27 février 2006 à 06:33:23 | Vérification dossier, problème

Satan2k

Voila je fais un explorateur de dossier multi-utilisateurs en ligne mais voila j'ai un problème que je n'arrive pas à résoudre.

Je veux faire en sorte que les membres ne puissent pas interférer aux dossier des autres membres donc pas les renommer ni les détruire.

Pour cela j'ai déja préparé la chose avec un $_SESSION['repertoire_membre'] mais voila j'ai essayé un tas de choses et j'y arrive pas.  Ce que je voudrais faire c'est que quand on execute une modification sur un fichier, si il est pas dans son répertoire, lui botter le cul   Donc un boolean quoi.  Je veux simplement vérifier que mettons le dossier fichier.php se trouve dans le répertoire dossier

J'ai bien trouvé la fonction in_dir sur la documentation php.net mais le realpath ne fonctionne pas sur le serveur.

Voila le bout de code que j'ai récupéré
    // Pour vérifier si un dossier est dans un autre dossier -> Sécurité multi utilisateur
    function in_dir ($file, $in_dir)
    {
        $dir    = realpath($file);
        $in_dir = realpath($in_dir);
       
        if (!is_dir($file))
        {
            $dir = dirname ($file);
        }
       
        do
        {
            if ($dir === $in_dir)
            {
                $is_in_dir = TRUE;
                break;
            }
        }
        while ($dir !== ($dir = dirname ($dir)));
       
        return (bool) @$is_in_dir;
    }

lundi 27 février 2006 à 07:42:48 | Re : Vérification dossier, problème

Satan2k

Apres plusieurs coup sur la tête, quelques clopes et beaucoup de patientes j'ai réussi a prendre le dessus.

Voici le code


function in_dir($verify,$dir)
{
// Définition pour les boucles
$directory = opendir($dir);
my_alert('on ouvre '.$dir);

// Simple boucle
while($file=readdir($directory))
{
if ($file!='.'&&$file!='..') // Cela va de soi
{
if (is_dir($file))   // Si c'est un repertoire
{
if($file==$verify){  // Si c'est ce qu'on cherchait
return true; // C'est bon
}
else {
in_dir($verify,$file); // Sinon on recommence
}
}
if (file_exists($verify)) // Si on trouve le fichier
return true; // Alors c'est bon
}
}
return false; // Sinon par défaut on retourne faux
}
lundi 27 février 2006 à 07:43:33 | Re : Vérification dossier, problème

Satan2k

arg qu'est ce que ce forum m'a fait avec mes tabulations :( snif snif code pas beau :p
lundi 27 février 2006 à 07:44:21 | Re : Vérification dossier, problème

Satan2k

et my_alert est une fonction personnelle, a enlever si vous voulez pas faire planter :D
lundi 27 février 2006 à 08:05:31 | Re : Vérification dossier, problème

Satan2k

Hmmm visiblement je me suis trop emporté, ca fonctionne pas :(
lundi 27 février 2006 à 10:07:25 | Re : Vérification dossier, problème

Satan2k

version corrigée et fonctionnelle et je me suis embeté avec la colorisation syntaxique rien que pour vous (et pour m'excuser des postes inutiles aussi )

    // Pour vérifier si un dossier est dans un autre dossier -> Sécurité multi utilisateur
    function in_dir(
$toverify,$dir)
    {
       
       
// Ne permet pas d'ouvrir un fichier qui vient d'un dossier parent
       
if (preg_match('!/\.\./!',$toverify))
           
return false;
           
       
// Définition pour les boucles   
       
$toverify = basename($toverify);
       
$directory = opendir($dir);
       
       
// On parcours les dossiers du membre a la recherche du fichier
       
while($file=readdir($directory))
        {
           
if ($file!='.'&&$file!='..')
            {
               
$sub = $dir.'/'.$file;
               
               
if (file_exists($file))
                {
                   
// Le fichier existe, l'utilisateur peut continuer
                   
return true;
                    break;
                }
               
else
                {
                   
// Le fichier n'existe pas, on vérifie les autres dossiers
                   
if(is_dir($sub))
                        in_dir(
$verify,$sub);
                }
            }
        }
    }


lundi 27 février 2006 à 11:05:22 | Re : Vérification dossier, problème

Satan2k

// Pour vérifier si un dossier est dans un autre dossier -> Sécurité multi utilisateur
    function in_dir(
$toverify,$dir)
    {
       
       
// Ne permet pas d'ouvrir un fichier qui vient d'un dossier parent
       
if (preg_match('!/\.\./!',$toverify))
           
return false;
           
       
// Définition pour les boucles   
       
$toverify = basename($toverify);
       
$directory = opendir($dir);
       
       
// On parcours les dossiers du membre a la recherche du fichier
       
while($file=readdir($directory))
        {
           
if ($file!='.'&&$file!='..')
            {
               
$sub = $dir.'/'.$file;
               
               
if (file_exists($dir.'/'.$toverify))
                {
                   
// Le fichier existe, l'utilisateur peut continuer
                   
return true;
                    break;
                }
               
else
                {
                   
// Le fichier n'existe pas, on vérifie les autres dossiers
                   
if(is_dir($sub))
                        in_dir(
$toverify,$sub);
                }
            }
        }
    }

Apres correction des bugs.  Si un admin passe par la il peut supprimer tous les posts précédents . (et pas m'envoyer aux Teletubbies si possible :p)
lundi 27 février 2006 à 11:05:48 | Re : Vérification dossier, problème

Satan2k

// Pour vérifier si un dossier est dans un autre dossier -> Sécurité multi utilisateur
    function in_dir(
$toverify,$dir)
    {
       
       
// Ne permet pas d'ouvrir un fichier qui vient d'un dossier parent
       
if (preg_match('!/\.\./!',$toverify))
           
return false;
           
       
// Définition pour les boucles   
       
$toverify = basename($toverify);
       
$directory = opendir($dir);
       
       
// On parcours les dossiers du membre a la recherche du fichier
       
while($file=readdir($directory))
        {
           
if ($file!='.'&&$file!='..')
            {
               
$sub = $dir.'/'.$file;
               
               
if (file_exists($dir.'/'.$toverify))
                {
                   
// Le fichier existe, l'utilisateur peut continuer
                   
return true;
                    break;
                }
               
else
                {
                   
// Le fichier n'existe pas, on vérifie les autres dossiers
                   
if(is_dir($sub))
                        in_dir(
$toverify,$sub);
                }
            }
        }
    }

Apres correction des bugs.  Si un admin passe par la il peut supprimer tous les posts précédents . (et pas m'envoyer aux Teletubbies si possible :p)


Cette discussion est classée dans : problème, file, dossier, in, dir


Répondre à ce message

Sujets en rapport avec ce message

Paginer dossier [ par speedylol ] Bonjour je suis sur un petit probléme je n'arrive pas a paginer le nombre de dossier créee je voix pas très bien comment faire Merci de votre aide.@se Afficher le contenu d'un dossier [ par Toolsweb ] SAlut, je voudrais afficher le contenu d'un dossier nommé fichiers. j'ai trouvé ceci$dir=opendir("images"); while($fi Sernier dossier [ par maximev ] Bonjour,J'utilise le code ci-dessous pour me connecter à un ftp depuis une page de mon site afin d'y chercher le dossier le plus récent mais cela ne f Problème récursivité pour arborescence de fichier [ par codbooster ] Bonjour à tous, et merci de à vous de prendre du temps pour lire mon post ... Je post aujourd'hui car j'ai un problème concernant une arbores lister les dossier et non le contenu [ par zuddap ] bonjour a tous, voila je cherche a lister tous les dossiers qui sont dans un dossier(parrent) ou il y a également des fichiers. Comme il est dit dans Affichage page par page d'un contenu de repertoir [ par fabrice88 ] bonjour, j'ai un repertoire dans lequel se trouve d'autres repertoires. je fait afficher le nom de ces repertoires sur ma page internet mais le proble Afficher le nom d'une image en php [ par karim88 ] Bonjour, je débute en php donc merci de votre aide. Voilà, j'aimerai afficher les images d'un dossier (ici photos) mais SURTOUT leur nom de fichier pa Problème d'encodage avec Excel [ par malik7934 ] Hello,J'ai un méchant problème d'encodage... Je m'explique : je lis un fichier xls avec file_get_contents et ensuite je récupère le contenu avec PEAR affichage liste dossiers par ordre ALPHABETIQUE [ par mailliam ] Ello tous! Voilà moi je me sers du code suivant pour lister les dossiers d'un répertoire sur mon serveur. Seulement ils ne s'affiche pas par ordre al tester l'existence de fichiers [ par quicommenceparQ ] Bonjour, Je parcours les fichiers et les sous-répertoires avec une fonction récursive, et je voudrais, s'il existe au moins un fichier portant une ce


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,671 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales