Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 29/05/2007, 13h53   #1
Nouveau Membre du Club
 
Femme
Développeur Web
Inscription : janvier 2006
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2006
Messages : 102
Points : 28
Points : 28
Par défaut Parcourir des dossiers

bonjour

Voilà, j'ai un petit projet a faire, il s'agit de créer un porte document en ligne.
J'ai un petit problème pour l'affichage de mes dossiers : en effet, lorsque je met ../.. dans la barre d'adresse, l'arborescence remonte au dessus du dossier parent alors que je ne veux pas autoriser cela.

Voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
clearstatcache();
$rep_ini="Documents/".$_SESSION['login'];
 
if (isset($_GET['suiv']))
{
	$rep_ini=$_GET['suiv'];
	$rep_prec=$_GET['prec'];
}
 
	$handle = opendir($rep_ini);
	while (false !== ($file = readdir($handle)))
		If ($file != "." && $file != "..") 
		{
			$fic=$rep_ini."/".$file;
			$type=filetype($fic);
			$taille=filesize($fic);
			If ($type==dir)
			{
				Echo "<Tr><Td><img src='Images/dossier.gif'><a href=\"accueil.php?suiv=$fic\">".$file."</a></Td><Td>".$type."</Td><Td>".$taille."</Td><Td></Td></Tr>";
			}	
			Else
			{
				Echo "<Tr><Td>".$file."</Td><Td>".$type."</Td><Td>".$taille."</Td><Td><A Href=".$fic.">Télécharger</A></Td></Tr>";
			}
		}
		if (isset($_GET['suiv']))
		{
			Echo "<Tr><Td><Img Src='Images/dossier.gif'><A href=\"accueil.php\">Dossier précédent</A></Td><Td></Td><Td></Td><Td></Td></Tr>";
		}
		closedir($handle);
?>

Je pense qu'il faut que je fasse autrement que par la méthode get mais je ne vois pas trop... Si quelques uns pouvez me guider, j'en serais heureuse !

merci d'avance
gazelle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 14h50   #2
Membre régulier
 
Avatar de NiHiL
 
Inscription : juin 2006
Messages : 102
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 102
Points : 88
Points : 88
Code php :
1
2
3
 
if (ereg('..', $_GET['suiv']))
    die("HOLA JACOB TU CROYAIS ALLER OU COMME CA ??????");
NiHiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 18h10   #3
Nouveau Membre du Club
 
Femme
Développeur Web
Inscription : janvier 2006
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2006
Messages : 102
Points : 28
Points : 28
Pas mal, mais ca m'empêche de parcourir tout dossier...

Ce que je souhaite c'est interdire de parcourir au dessus du dossier parent.
Je m'explique, j'ai un dossier documents où se trouve les dossiers dont le nom est celui de l'utilisateur... Lorsqu'il met ../.. dans la barre d'adresse, il a le droit de regarder tout les dossiers contenu dans documents, or il ne doit rester que dans son dossier utilisateur.
Et j'ai énormément de mal à gérer ça...
gazelle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 18h22   #4
Membre régulier
 
Avatar de NiHiL
 
Inscription : juin 2006
Messages : 102
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 102
Points : 88
Points : 88
Hé bien justement en empêchant de remonter grâce a '..' personne ne pourra remonter au dessus du dossier racine.
NiHiL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/05/2007, 18h27   #5
Nouveau Membre du Club
 
Femme
Développeur Web
Inscription : janvier 2006
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2006
Messages : 102
Points : 28
Points : 28
Dans ce cas, soit j'ai mal placé le code que tu m'as proposé, soit ca marche pas...

Car quand je suis dans le dossier de l'utilisateur et que j'essai de parcourir un dossier a l'intérieur, il me dit "HOLA JACOB TU CROYAIS ALLER OU COMME CA ??????"
gazelle est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/05/2007, 12h27   #6
Nouveau Membre du Club
 
Femme
Développeur Web
Inscription : janvier 2006
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2006
Messages : 102
Points : 28
Points : 28
J'ai changer un peu mon code pour parcourir le dossier de l'utilisateur enregistrer :


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
clearstatcache();
 
$rep_ini="C:/Program Files/wamp/www/Porte_Doc(wamp)/Documents/".$_SESSION['login'];
 
 
if  (isset($_GET['suiv']))
{
	$rep_ini=$_GET['suiv'];
}
 
function parcourdos($rep_ini)
{
	chdir($rep_ini);
	if(($handle = opendir($rep_ini))!=false)
	{
	while (false !== ($file = readdir($handle)))
	{
		If ($file != "." && $file != "..") 
		{
			$fic=$rep_ini."/".$file;
			$type=filetype($fic);
			$taille=filesize($fic);
 
			If (is_dir($fic))
			{
				Echo "<Tr><Td><img src='Images/dossier.gif'><a href=\"accueil.php?suiv=$fic\">".$file."</a></Td><Td>".$type."</Td><Td>".$taille."</Td><Td></Td></Tr>";	
			}	
			Else
			{
				Echo "<Tr><Td>".$file."</Td><Td>".$type."</Td><Td>".$taille."</Td><Td><A Href=telecharger.php?fic=$fic>Télécharger</A></Td></Tr>";
			}
		}
		$d=getcwd();
		$rep_cour="C:/Program Files/wamp/www/Porte_Doc(wamp)/Documents/".$_SESSION['login'];
 
 
 
		if  (($file == "..") && ($d !== $rep_cour))
		{
			Echo "<Tr><Td><Img Src='Images/dossier.gif'><A href=\"accueil.php?suiv=$rep_ini/$file\">Dossier précédent</A></Td><Td></Td><Td></Td><Td></Td></Tr>";
		}
	}
	rewinddir($handle);
	closedir($handle);
	}
}
parcourdos($rep_ini);
?>
J'ai fait une fonction. par contre, j'ai toujours le même problème, j'ai un lien qui est censer me permettre de revenir au dossier précédent mais je n'arrive pas à gérer le fait d'interdire d'aller au dessus du dossier de l'utilisateur. Comment faire?
gazelle est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h58.


 
 
 
 
Partenaires

Hébergement Web