Mettre en ligne une arborescence de dossiers et de fichiers
hkpsyco974
Messages postés5Date d'inscriptionjeudi 3 novembre 2005StatutMembreDernière intervention12 janvier 2007
-
11 janv. 2007 à 11:20
kwiki1nut
Messages postés1Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention15 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.
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.
cs_Springer
Messages postés85Date d'inscriptionlundi 14 juillet 2003StatutMembreDernière intervention14 mars 20071 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
hkpsyco974
Messages postés5Date d'inscriptionjeudi 3 novembre 2005StatutMembreDernière intervention12 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.
cs_Springer
Messages postés85Date d'inscriptionlundi 14 juillet 2003StatutMembreDernière intervention14 mars 20071 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
hkpsyco974
Messages postés5Date d'inscriptionjeudi 3 novembre 2005StatutMembreDernière intervention12 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? :)
kwiki1nut
Messages postés1Date d'inscriptionvendredi 17 février 2006StatutMembreDernière intervention15 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