|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre du Club
![]() |
Bonjour tout le monde,
Je termine actuellement ma deuxième de BTS informatique de Gestion option développeur d'applications et le stage de cette année porte sur un assez gros projet (du moins pour moi). Je vais donc essayer d'être le plus clair possible : Mon stage se déroule chez un expert comptable. Il classe les documents de ses clients dans des répertoires sur son serveur : CLIENT A ---Année ------2002 ----------A --------------fichier1 --------------fichier2 ----------B ----------C ---------- ... ------2003 ------2004 ------ ... Il souhaiterait donc pouvoir gérer cette arborescence depuis un site internet. C'est à dire pouvoir donner accès à un client à tel ou tel dossier, pouvoir mettre à jour les fichiers, de les supprimer etc... Son objectif est de proposer à son client un aperçu de ses comptes 24H/24. Par la suite il aimerait egalement que ses clients puissent via le site remplir leur document (par exemple pour leurs chèques) puis mettre à jour le document du serveur afin que le comptable puissent consulter les modifications. Mon problème est que je ne sais pas comment je vais devoir gérer tout cela... J'ai pensé à parcourir directement les dossiers du serveur mais je ne sais pas comment mettre des restrictions par la suite. J'ai pensé également à faire une arborescence sous Mysql mais là aussi je ne vois pas trop comment m'y prendre. J'espère avoir été assez clair Cordialement |
|
|
00
|
|
|
#2 | |
|
Invité(e)
Messages : n/a ![]() |
Bonjour,
Citation:
sinon en une fonction récursive tu peux faire ce que tu souhaits je t'en dirais un peu plus après une fois avoir été éclairci. Cordialement. |
|
00
|
|
|
#3 |
|
Membre du Club
![]() Inscription : septembre 2006 Messages : 72 ![]() |
Salut,
Ton projet n'a pas l'air d'être très simple, mais j'ai besoin de plus amples informations pour t'apporter de meilleurs éléments de réponse : - De quels types son les documents ? - Combien y a t'il de document par client ? - Est-ce que le client à besoin du document en brut, ou seulement certaines informations ? - Est-ce que les dossiers du serveur sont succeptibles de changer par une autre manière que l'interface web ? J'imagine que tu n'a peux être pas le droit de trop t'étendre sur le sujet étant donné qu'il s'agit d'argent... 3 tables : dossiers id_dossier INT(10) id_parent INT(10) ou niveau INT(10) // à toi de voir si tu en as besoin selon la manière dont tu gères chemin TEXT utilisateurs_droits id_droit INT(10) id_utilisateur INT(10) lecture ENUM('oui','non') ecriture ENUM('oui','non') utilisateurs id_utilisateur INT(10) nom prenom .... A mon sens, à ce que je sais de ton probléme, il s'agirais de scrutter le dossier principal de manière redondante à l'aide de la réccursivité puis de vérifier l'existence du dossier dans une base Mysql et l'ajouter par défaut avec les droits du dossier parent si l'entrée n'existe pas. Si ton dossier n'existe plus, il faudrais supprimer l'entrée dans la base. Lors de son login, un client aurais une vue sur tous les dossiers parents desquels il a des droits. Si l'utilisateur a le droit d'écriture, il faudrais ajouter un formulaire d'upload (faire des vérifications anti-hacking dans le traitement) une fois que l'on se trouve dans le dossier. Voila pour ce qui me viens en tête, mais faut pas que je fasse ton boulot non plus... d'autant plus que le mien n'avance pas et que je vais me faire engeuler par le boss En espérant t'avoir aider. |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() |
Pour répondre à vous deux :
A la base, sur le serveur où est hébergé le site, chaque client possède un dossier. Ensuite le dossier principal du client il y aura d'autre sous-dossier et ainsi de suite (revoir mon premier post pour un aperçu approximatif de l'arborescence). Le comptable souhaite cependant pouvoir donner accès uniquement à certains dossier à son client. Par exemple il aura droit uniquement de télécharger les fichiers qui se trouve dans Dossierpermanent>Fiscal->2006-> et les fichiers. Il est donc clair que la gestion des autorisations doit se faire via un page admin Les fichiers qui circuleront sur le serveur seront surtout des fichiers excel, voir des pdf... Il souhaiterait également par la suite pouvoir proposer au client un formulaire qui vendra mettre a jour un fichier excel deja présent sur le serveur. J'espère que vous comprenez mieux ce que j'ai à faire... Je sais que c'est pas simple, quand le comptable m'a donné le projet j'ai tout de suite compris que j'allais pas glander. En tout cas merci pour vos réponses |
|
|
00
|
|
|
#5 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Salut,
Il faut d'abord architecturer ton appli avant de rentrer dans le code. Ton idée est je pense la bonne, mais tu dois la structurer et la consolider avant de te jeter dans le code. Pour l'instant pas besoin de php ou autre. Et pas de stress non plus, puisque cela semble tout à fait possible : - gestion des droits = base MySQL dont tu dois alors concevoir le modèle de données. - parcours récursifs des répertoires, c'est un problème classique et extrêment bien documenté. Donc tout est faisable, mais avant de t'aider sur le code, il faut vraiment que tu connaisse l'architecture de ton appli. Et ça, c'est toi qui va faire... |
|
|
00
|
|
|
#6 |
|
Invité(e)
Messages : n/a ![]() |
moi je procéderais ainsi :
tu fait une tite interface admin sobre pour ton comptable, tu liste toute l'arborescence de toute les client, devant chaque dossier (voir meme fichier) met une case à cocher (avec une id différente bien entendu) et ton comptable aura plus qu'a choisir l'utilisateur, et cocher les dossiers auquel il pourra accéder, une fois valider,tu stock tout dans une base, et par exemple si l'utilisateur se connecte et souhait consulter l'arborescence, tu affiche que les dossier auquels il a le droit d'accéder, tu peux éventuellement rajouter des options sur les droit en suppression, edition, lecture etc . mais moi je ferai quelques chose de similaire Cordialement |
00
|
|
|
#7 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Oui, mais si ça continue Fabouney, c'est toi qui va vaoir le BTS !
|
|
|
00
|
|
|
#8 |
|
Membre du Club
![]() |
Je réfléchirais un peu plus à ce problème. Donc comme je vois, vous deux vous me proposez de faire une petite base de données sous mysql et ensuite de l'exploiter.
En tout cas merci pour vos réponses, je chercherai un peu de mon coté niveau analyse etc, puis je reviendrai vous voir plus tard si jamais je bloque sur le code. |
|
|
00
|
|
|
#9 |
![]() ![]() Développeur Web Inscription : août 2006 Messages : 2 700 ![]() |
Il existe des solutions encore plus smart à base de RecursiveDirectoryIterator par exemple.
Un petit coup sur la SPL de donnera une idée des possibilités de cette classe. |
|
|
00
|
|
|
#10 |
|
Membre du Club
![]() |
Rebonjour tout le monde !
Je suis actuellement en stage et je commence à me reposer des questions sur mon projet ! j'ai hébergé mon site pour tester sur lycos : http://membres.lycos.fr/hkpsyco974/ util : test pass : test et vous voyez l'arborescence. Mais comment sécuriser tout ça...? En effet vous etes normalement dans le dossier du client A. Cependant si dans l'url vous tapper "http://membres.lycos.fr/hkpsyco974/B" vous serez dans le dossier du client B... De plus les restrictions peuvent se faire à l'aide d'un chmod. Comment le faire de façon recursive? car chmod('nom_dossier', code) verouille uniquement ce dossier et pas les dossiers fils. J'espere que vous pourrez m'éclairer sur ce sujet, merci à vous tous par avance |
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
déjà la protection contre le clic droit ne fait pas professionel et en plus on peux la contourner déjà enlève la si tu veux qu'on regarde ton problème
__________________
Modérateur PHP |
|
|
00
|
|
|
#12 |
|
Membre du Club
![]() |
Désolé pour le clique-droit, voila je l'ai enlevé.
|
|
|
00
|
|
|
#13 |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
n'utilise pas les droits avec chmod puisque tu as déjà tes droits dans une table
en fait dans la page encrypt.php tu dois chercher dans la base de données toutes les conditions qui font que la personne ait accès en fonction du chemin ou elle se trouve tu devras surement faire une boucle en suivant le parent dans la table
__________________
Modérateur PHP |
|
|
00
|
|
|
#14 |
|
Membre éclairé
![]() Inscription : avril 2005 Messages : 495 ![]() |
|
|
|
00
|
|
|
#15 |
|
Membre du Club
![]() |
Je suis d'accord avec toi, mais je n'arrive pas à faire le rapprochement entre les droits qui sont stockés dans une table et les droits d'accès au dossier du serveur distant.
J'avais commencé justement à mettre des droits dans une table, mais la seule utilisation que j'ai fait pour le moment c'est d'afficher le dossier ou pas et je ne vois pas ce que je peux faire d'autre avec droits d'accès dans une table. (Le dossier étant juste caché, le problème est simplement contourné mais un client un peu mal intentionné comprendrait vite le manège Que penses-tu si je mets un .htaccess avant les dossiers clients? Au moins personne pourra naviguer dans le dossier via l'URL. Cependant le problème qui se pose sera lors des téléchargements des fichiers, qui seront bloqués vu que le dossier parent est lui vérouillé par le .htaccess. Maintenant peut-être qu'il y a une solution pour contourner ce problème de téléchargement en php mais là je sèche Cordialement |
|
|
00
|
|
|
#16 | ||||
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
Citation:
si c'est ça, avant de lire le répertoire, tu découpes cette variable suivant le caractère "\" avec la fonction explode. et ensuite pour chaque élément tu cherches les droits dans la base de données d'ailleurs tu ne testes pas correctement le contenu de cette variable $_POST['ch']. Connecte toi et ensuite mets le code suivant dans un fichier html et clique sur le bouton, tu auras une surprise : Code html :
Citation:
http://php.developpez.com/faq/?page=..._forcedownload
__________________
Modérateur PHP |
||||
|
|
00
|
|
|
#17 |
|
Membre du Club
![]() |
Si tu as trouvé des erreurs dans le parcours de l'arborescence c'est normal car je suis en trin de le modifier depuis ce matin pour faire des tests.
Je vais étudier le lien que tu m'as donné, j'espère que ça fera l'affaire concernant les téléchargements. Ce qu'il me reste à faire : - Pouvoir mettre les droits sur les dossiers via un formulaire php. (Comme tous les clients auront les mêmes dossiers, il suffit d'appliquer les mêmes droits à tout le monde car si un client n'a pas droit un dossier l'autre client n'aura lui aussi pas droit). - Forcer les téléchargements. Que penses-tu de faire déplacer le fichier a télécharger dans un dossier temporaire pour contourner le .htaccess. Lorsque le fichier est télécharger on le supprime? En tout cas merci pour tes réponses, ça me rassure énormément sur mon projet, je constate que j'avance quand même dans la bonne direction Cordialement |
|
|
00
|
|
|
#18 | |
![]() ![]() Inscription : juin 2003 Messages : 4 893 ![]() |
Citation:
__________________
Modérateur PHP |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com