conceptone Posté 1 Août 2007 Posté 1 Août 2007 Bonjour, Je souhaiterais protéger des fichiers par Htaccess et en fonction des utilisateurs je voudrais que mon script php leurs donne accés à ces fichiers ou non. Est ce possible ? En bref je voudrais que certains de mes utilisateurs aient accés à des fichiers et d'autres non ( un utilisateur peut avoir accés a un seul fichier, 2, 3... c'est trés divers et doit etre dynamique ) Si vous avez également d'autres solutions je suis prenneur. Merci beaucoup pour votre réponse, Cordialement.
sarutobi Posté 1 Août 2007 Posté 1 Août 2007 Hello, Est-ce qu'un FTP ne répondrait pas mieux à tes besoins ? Tu parles d'un accès aux fichiers ici donc cela me semble plus adapté. En revanche s'il s'agissait d'un accès à du contenu (pages, articles, etc...) tu pourrais essayer de chercher un module de gestion de droit qui serait efficace. Cdlt
conceptone Posté 2 Août 2007 Auteur Posté 2 Août 2007 Je fais le site internet d'un ami qui est compositeur / chanteur. Il aura donc des mp3 libre d'écoute mais limité dans le temps (non protégés). Par l'intermédiaire de allopass les personnes pourront acheter ses musiques et donc avoir la possibilité de télécharger uniquement les musiques qu'il a acheté.
destroyedlolo Posté 2 Août 2007 Posté 2 Août 2007 J'imagine que tes utilisateurs sont dans une base de donnees, dans ce cas, tu peux regarder mod_dbd d'apache 2.2 ... mais quant une nouvelle version d'apache sortira car la version actuelle est completement buggee et ne fonctionne pas Pour palier a ce probleme, je fais l'authentification directement en PHP : function Authentification($usr, $func=false, $realm='Mais qui etes vous'){ global $_SERVER; if(!$usr->ok() || // L'utilisateur n'existe pas !$usr->verifPasswd($_SERVER['PHP_AUTH_PW']) || // Le mot de passe ne correspond pas ($func && !$usr->$func()) // L'utilisateur n'a pas la bonne capacite ){ $usr->invalide(); // Pour etre sur que l'utilisateur ne peut rien faire. header("WWW-Authenticate: Basic realm=\"$realm\""); header('HTTP/1.0 401 Unauthorized'); die('*F* Vous devez vous authentifier pour acceder a cette page.'); } Bon, faut adapter et je ne vais pas sortir tout mon code (trop long ) mais en resume, $usr est une classe qui est initialisee d'apres la valeur de $_SERVER['PHP_AUTH_USER']. Elle contient plusieurs methodes pour qualifier l'utilisateur et en particulier, function verifPasswd( $pw ){ return(crypt($pw, $this->getPasswd()) == $this->getPasswd()); } quio verifie que le mot de passe fourni par le visiteur correspond bien a celui stoque dans la database (qui est crypte), recupere par la methode getPasswd(). A nouveau, je ne rentre pas dans les details, c'est juste pour te donner une idee comment ca fonctionne Lolo
destroyedlolo Posté 2 Août 2007 Posté 2 Août 2007 Suite a mes echanges par MP avec conceptone. Pour des téléchargements de mp3 est ce que ça les protèges ?Cad si quelqu'un a un lien direct a t il le droit de les prendre ou pas ? http://mondi.com/musique.mp3 Il faudrait que le système protège le mp3 en fonction de mon programme php (qui gerre les utilisateurs) Alors, c'est tres simples, dans le repertoire des .mp3, il faut rajouter un .htaccess comme suit : Action audio/mpeg protmp3.php et un protmp3.php qui contient un code du genre : <?phpAuthentification( new Utilisateur($_SERVER['PHP_AUTH_USER'])); // Fonction d'authentification du post precedentheader('content-type: audio/mpeg');readfile($_SERVER['PATH_TRANSLATED']);?> A noter que la fonction Authentification() comme je l'ai code ci-dessous ne rend la main que si l'utilisateur est correctement authentifie. Y'a plus qu'a adapter ...
Leonick Posté 3 Août 2007 Posté 3 Août 2007 sauf que $_SERVER['PHP_AUTH_PW'] n'est pas défini chez de nombreux hébergeurs dont OVH
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant