2009-04-03 13 views
0

j'ai une structure comme ceci:PHP et htpasswd

/home 
/home/dir1 
/home/dir2 

Maintenant, quand quelqu'un va à/home, il est demandé le nom d'utilisateur et mot de passe (sous une forme) et je définir des informations de session en PHP pour le reste fichiers de/home. Maintenant/home/dir1 et/home/dir2 sont protégés par htpasswd mais le même nom d'utilisateur et mot de passe. Je ne veux pas que l'utilisateur entre à nouveau leur nom d'utilisateur et mot de passe quand ils vont à/home/dir1 ... Aussi quand je me déconnecte de/home, je veux également me déconnecter de/home/dir1. Pouvez-vous s'il vous plaît des conseils sur la façon d'y parvenir?

+0

Vous devez utiliser le même domaine auth (ne sais pas si c'est le nom correct). Vérifiez les documents Apache. Mais ce n'est pas une question de programmation. – derobert

Répondre

3

Cela devrait être le comportement par défaut. Autrement dit, si vous utilisez des fichiers Apache et .htaccess pour configurer l'authentification HTTP, les règles que vous appliquez à un répertoire s'appliqueront également à ses répertoires enfants et seront traitées par le navigateur comme une seule connexion. Si vous souhaitez que certaines parties du site soient traitées comme nécessitant une connexion complètement séparée, vous devez spécifier un 'domaine' pour chaque section en utilisant la directive AuthName dans .htaccess. More information here. Cependant, si vous ne le faites pas, il sera toujours considéré comme faisant partie du même login. La chose à propos de l'authentification HTTP est qu'il n'y a aucun moyen de se déconnecter, du moins pas à moins que le navigateur ne fournisse cette fonctionnalité. La seule façon dont la plupart des navigateurs vous permettent de vous déconnecter est de terminer la session du navigateur (c'est-à-dire de fermer le navigateur). Et oui, une fois que vous faites cela, vous serez déconnecté de/home,/home/dir1,/home/dir2 et tous les répertoires sur tous les sites/domaines.

0

Dans Apache tant que les deux dossiers ont le même AuthName et sont sur le même site, ils doivent partager un mot de passe.

Les deux répertoires peuvent avoir un fichier .htaccess comme ceci:

AuthName "My Protect Folder" 
AuthType basic 
AuthUserFile /somewhere/htusers 
require valid-user