Mettre en ligne une arborescence de dossiers et de fichiers

hkpsyco974 Messages postés 5 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 12 janvier 2007 - 11 janv. 2007 à 11:20
kwiki1nut Messages postés 1 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 15 janvier 2007 - 15 janv. 2007 à 10:38
Bonjour tout le monde, je ne sais pas si mon post est bien placé, désolé si ce n'est pas le cas...

Mon problème :

L'endroit ou je travaille est un cabinet d'expertise comptable. Le boss possède un serveur distant avec hébergement et il aimerait mettre les dossiers et les fichiers des clients en ligne.

L'arborescence se présente de la manière suivante :

CompteClients
------ClientA
---------DossierPermamant
-------------Sousdossier1
------------------fichier1 (xls, ou pdf, ou doc)
------------------fichier2
-------------Sousdossier2
---------2000
---------2001
------ClientB
--------DossierPermanant
------------Sousdossier1
------------------fichier1
...

Tous les clients possèdent la même arborescence, cependant les fichiers sont différents d'un client à l'autre (évidement lol).
Le boss aimerait donc que le client se loggue et tombe directement dans son répertoire sans qu'il puisse aller dans le répertoire d'un autre client !
De plus il aimerait pouvoir mettre des restrictions sur des dossiers. Par exemple, si il décide qu'un client n'aura pas droit au dossierpermanant alors tous les clients n'auront pas droit.

Voici un aperçu de ce que j'ai déjà réalisé :
http://membres.lycos.fr/hkpsyco974/
login : test
pass : test

L'arborescence est géré mais niveau sécurité c'est pas le top (vérifiez par vous-même...).Que me conseillez-vous?
Faites des propositions même si c'est totalement différent de ce que j'ai déjà fait !

En tout cas merci d'avance pour votre aide, si vous avez besoin plus de précisions n'hésitez à le demander.

Cordialement

10 réponses

cs_Springer Messages postés 85 Date d'inscription lundi 14 juillet 2003 Statut Membre Dernière intervention 14 mars 2007 1
11 janv. 2007 à 12:39
bonjour,
est-ce que tu vérifies les logins de tes utilisateurs dans une base de données?
Si c'est le cas tu peux ajouter un champ qui contiendrait les restrictions d'affichage des dossiers, ex 0=> tous les dossiers, 1=> tous sauf dossierpermanent, etc.
Tu utiliserais cet indiquateur dans une condition if contenu dans la boucle qui parcours le dossier ex : if($authorisation == 0)      {ton code ici}
ou avec un switch($authorisation)
{
case 0:
ton code;
break;
case 1:
ton code ;
break;
}
tu peux augmenter la sécurité avec un .htaccess par dossier client ou générique.
Voilà ce n'est que quelques pistes d'actions mais si cela peut-être utile.
cordialement
0
hkpsyco974 Messages postés 5 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 12 janvier 2007
11 janv. 2007 à 12:55
Une restriction via une base de données n'est pas suffisante. En effet le client (http://membres.lycos.fr/hkpsyco974/http://membres.lycos.fr/hkpsyco974/A) accedera à son dossier mais si par malheur il tappe dans la barre d'adresse http://membres.lycos.fr/hkpsyco974/http://membres.lycos.fr/hkpsyco974/B il tombera dans le dossier du client B... lol

Qu'entends-tu par htaccess par dossier générique.

J'ai déjà essayé de mettre en place un htaccess mais sans reussite. j'active le htaccess sur mon site et regarde ce que ça fait (RIEN lol).
En effet pour utiliser le htaccess qui est sur mon site il faut tapper dans la barre d'adresse par exemple : http://membres.lycos.fr/hkpsyco974/http://membres.lycos.fr/hkpsyco974/A
Si on parcours avec mon arborescence le htacess n'est pas reconnu et laisse le passage.

htaccess client A
login : test
mdp : test

htaccess clientB
login : test1
mdp : test1

Cepedant j'aimerai également par la suite pouvoir bloquer un des sous répertoires des répertoires du dossier client. 

En tout cas merci de ta réponse :)
0
cs_Springer Messages postés 85 Date d'inscription lundi 14 juillet 2003 Statut Membre Dernière intervention 14 mars 2007 1
11 janv. 2007 à 12:59
le htaccess doit être précédé d'un point ".htaccess"
le plus simple est de le construire en .txt puis de le renomer en .htaccess sur le site.
0
hkpsyco974 Messages postés 5 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 12 janvier 2007
11 janv. 2007 à 13:03
oui je sais, le htaccess est bien en place sur mon site mais à condition que tu tappes l'url dans la barre d'adresse.
0

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

Posez votre question
cs_Springer Messages postés 85 Date d'inscription lundi 14 juillet 2003 Statut Membre Dernière intervention 14 mars 2007 1
11 janv. 2007 à 13:10
peux tu mettre en ligne ton arborescence, merci
0
hkpsyco974 Messages postés 5 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 12 janvier 2007
11 janv. 2007 à 13:14
Il est déjà en ligne
http://membres.lycos.fr/hkpsyco974/

util : test
mdp : test
0
cs_Springer Messages postés 85 Date d'inscription lundi 14 juillet 2003 Statut Membre Dernière intervention 14 mars 2007 1
11 janv. 2007 à 13:23
je me suis mal fait comprendre,

ou as tu placé le htaccess.
et quel forme a t il
c'est pour vérifier si il est bien formé
sa forme doit être :
#AuthName "Pages d'administration protégées"
AuthName "Album Photos protégé"
#<Files .htaccess>
#order allow,deny
#deny from all
#</Files>
AuthType Basic
#AuthUserFile "/chemin de ton hébergeur/www/admin/.htpasswd"
AuthUserFile "/chemin de ton hébergeur/www/albumPhoto/.htpasswd"
Require valid-user
ErrorDocument  404  /index.php?fond=8&texte=planSite
ErrorDocument  401  /index.php?fond=8&texte=planSite
et il doit être associé avec un htpasswd de cette forme :
superAdmin:$1$od1.Ri4.$q5OqjgqmHVe3MG9/6b8dX1
jean-claude:$1$wS3.3B3.$EBQRCZ76d5fYvJbCrS30o1
isabelle:$1$4W/.5J5.$3FTNtuIBjkM6bGtcf0S7l0
jean-marc:$1$nt/.k21.$xHnGP5qCgsVNXSkiGntEi1
invité:$1$t15.yU0.$It9xZrmtNWZLocu1teX3B0
0
cs_Springer Messages postés 85 Date d'inscription lundi 14 juillet 2003 Statut Membre Dernière intervention 14 mars 2007 1
11 janv. 2007 à 13:56
ajout, pour connaitre le chemin d'acces à tes fichiers utilise la fonction : realpath('le fichier.php ou tu veux que cela s'affiche')
0
hkpsyco974 Messages postés 5 Date d'inscription jeudi 3 novembre 2005 Statut Membre Dernière intervention 12 janvier 2007
12 janv. 2007 à 05:34
Ne t'inquiète mes fichiers .htaccess et .htpasswd sont bien formés. D'autres personnes m'ont dit qu'il serait peut-être astucieux de mettre un .htaccess unique dans le dossier qui précède celui des dossiers clients, ainsi ils ne seront plus accessibles via l'url. Ensuite on navigue dans l'arborescence à l'aide de php.

Le seul endroit ou je bute c'est comment faire ensuite pour les droits sur tel ou tel dossier puis comment autoriser le téléchargement de fichiers vu que tous les dossiers seront bloqués par le .htaccess
Y'aurait-il pas un moyen pour pouvoir accéder à ces fichiers avec le php? :)

merci pour tes réponses springer !

cordialement
0
kwiki1nut Messages postés 1 Date d'inscription vendredi 17 février 2006 Statut Membre Dernière intervention 15 janvier 2007
15 janv. 2007 à 10:38
Bonjour

en fait je pense qu'il faudrait reprendre depuis le début ton programme.
Met en place une base de donnée dans laquelle tu défini un login un pass une date d'inscription, une date et heure de passage et le fait de qui passe.

Ensuite lorsque la personne  se connecte avec son login et son pass :
crée un fichier php du genre validcompte.php et  tu mets par exemple
SetCookie("login","$nom");
SetCookie("pass","$pass");

//Fichier necessaire avec infos pour se connecter a la BD
include("fonction/config.php");

// Verifie si on peut se connecter a la base sql
$connect=mysql_connect($host,$user,$pass) or die ("Impossible de se connecter");
mysql_select_db($base, $connect) or die ("Impossible de selectionner la base de donnees");

//Verification que tous les champs ont ete rempli
if ((!$nom)|| (!$pass)){
echo("<script language="javascript">location="erreurcon.php";</script>");}

//Configure les dates et les heures
$qui= date("Y-m-d");
$heure= date("H:i:s");

//Cryptage du mot de passe
$conpass=md5($pass);

//Verification du mot de passe
$result=mysql_query ("SELECT * FROM Nom de ta table de donnée WHERE nom='$nom' and pass='$pass'") or die ("Requete impossible");
$nbconnom = mysql_num_rows($result);
if ($nbconnom==0) {
echo("<script language="javascript">location="erreurcon.php";</script>");}
else {echo("<script language="javascript">location="";</script>"); //la tu crée un système de redirection personnalisé
//Enregistre l'heure et la date de connexion
$query ="UPDATE nom de ta table SET qui='$qui', heurepass='$heure' WHERE nom='$nom'";}

//Libere la base de donnees
mysql_query($query, $connect);
mysql_free_result($result);
mysql_close($connect);

Ensuite dans tes fiches clients tu teste si on est connecté sinon on renvoit une erreur
<?php
//Fichier necessaire
include("fonction/config.php");

// Verifie si on peut se connecter a la base sql
$connect=mysql_connect($host,$user,$pass) or die ("Impossible de se connecter");
mysql_select_db($base, $connect) or die ("Impossible de selectionner la base de donnees");

//Verifie si on s'est connecte a l'espace membre
$nom=$HTTP_COOKIE_VARS["login"];
$pass=md5($HTTP_COOKIE_VARS["pass"]);
$result=mysql_query ("SELECT * FROM comptes WHERE nom='$nom' and pass='$pass'") or die ("Requete impossible");
$autoconnect = mysql_num_rows($result);
if ($autoconnect==0) {
echo("<script language="javascript">location="erreur.php";</script>");}
?>
et en dessous le reste de ton fichier

Voila qqs piste

Pour voir ce genre de programmation en live tu peux aller voir mon site  
il ya un espace membre qui utilise ce genre de fonction
0
Rejoignez-nous