Kommunauty
Connexion
Inscription

Donner des propriétés à des fichiers copiés


Mizur Messages : 6616

Bonjour à tous !

Voilà, dans un projet auquel je participe, nous faisons un système permettant à chacun de posséder un espace de stockage pour quelques fichiers, pour développer des projets en équipes. Alors des images, des dossiers compressés, etc... C'est toujours intéressant de se les passer de l'un à l'autre dans une équipe.

Le principe

Un gars veut de l'espace de stockage pour son projet. Il envoie donc une demande. La demande est traitée par notre équipe d'administration. Si la demande est accéptée, on demande au systeme de créer un dossier d'upload pour le projet.

Le technique

A la base, nous avons un dossier "upload" de base, et quand quelqu'un crée un projet, par un copy() et un mkdir, on reconstitue ce dossier "upload" de base, mais dans un nouveau dossier : On a donc un espace de stockage complétement indépendant des autres.

Cependant, j'ai mis les .js utiles à l'upload en include, pour éviter de les copier/coller dans chaque dossier de projet.

Voici un joli schéma pour expliquer ça, cliquez dessus pour l'avoir en grand :

Le problème

Créer un dossier et faire des copier coller c'est bien joli, mais j'aimerais savoir comment faire en sorte que le index.php que j'ai collé soit personnalisé. Par exemple, il est censé afficher le titre du projet, alors que ça n'est qu'un copié/collé d'un meme fichier pour tous les projets?. Qu'est ce que je suis censé faire? Mettre une variable $titre et demander par une requete à ce que cette variable corresponde à "projet1"? Mais comment, puisque je n'ai pas d'ID assigné sur la page du projet, enfin je n'ai rien qui permette de relier cette page à un projet en particulier, par SQL.

Ou alors je demande à ce qu'il crée de toute pièce, en meme temps que le copy() et et le mkdir, un fichier du genre config.php dans lequel j'enregistrerai l'ID du projet, auquel index.php viendra automatiquement se rattacher? Mais suffirait que n'importe quel bidouilleur vienne changer les données enregistrées sur ce fichier config.php pour que le dossier d'upload corresponde à un autre dossier d'un autre projet, simplement en changeant l'ID !

En gros, comment faire en sorte que ces pages copiées/collées se voient assigner un projet en particulier?

Merci d'avance de votre aide !

mercredi 18 mai 2011 (Dernière édition mercredi 18 mai 2011)

SiMax Messages : 7572

Si c'est la même page PHP pour tous les sites avec quelques variables qui changent, autant en faire qu'un seul qui appelle des variables stockées dans une BDD (comme les pages membres de Kommunauty quoi).

mercredi 18 mai 2011

Mizur Messages : 6616

Ouaip mais je vois pas comment... Par exemple, dans upload.php, pour trouver les chemins des dossiers pour uploader les fichiers, j'ai pris ça :

Supprimé pour des raisons de sécurité

Et j'avais essayé vite fait de changer le dirname, pour n'avoir qu'une page mais passant par des dossiers différents, mais ça marchait pas vraiment

Ou alors je prends 'upload_dir' => $script_dir.'/'.$nomduprojet.'/files/', ?

EDIT : Ben en fait nan meme comme ça c'est pas possible. index.php utilise upload.php comme action pour son formulaire, alors pas question de mettre des variables dans tous les sens


Ce que je comprends pas SiMax, c'est comment t'as fait pour récupérer le pseudo de quelqu'un sur la page membre.php, pour que ça retrouve quelque chose avec par exemple http://kommunauty.fr/membre:mizur/ ?

A mon avis ce qui joue c'est :

Supprimé pour des raisons de sécurité

Et le while qui suit, mais... Comment t'as fait pour que membre:mizur/ existe?

mercredi 18 mai 2011 (Dernière édition mercredi 18 mai 2011)

Mizur Messages : 6616

Bon, j'ai triché, et j'ai dit que

url = '$dossier'

avec $dossier le nom du dossier du projet Et comme ça ça marche.

mercredi 18 mai 2011 (Dernière édition mercredi 18 mai 2011)

SiMax Messages : 7572

Evite de balancer des bouts de code de Kommunauty, ça fait partie de la sécurité, donc à garder strictement secret

Oui, tu peux mettre ce que tu veux dans une variable, une destination de dossier pourquoi pas. Après, regarde dans les codes de Kommunauty et demande à Nico, il doit bien gérer tout ça !

mercredi 18 mai 2011

Mizur Messages : 6616

Pour le code j'ai pas sorti l'array suivante justement pour ça, j'ai seulement mis le GET que tu as fait pour chopper le nom du membre dans l'adresse ça passe...

Donc on va dire que $dossier ça mène a la bonne page et tout le tralala. Plus qu'a mettre un systeme de mot de passe pour acceder a l'ulpoad de chaque projet Yep yep ! Nico m'a bien aidé deja pour la création de dossiers automatiques

mercredi 18 mai 2011

Répondre Pour répondre, tu dois d'abord t'inscrire rapidement sur Kommunauty. Rejoins-nous vite !