PHP и htpasswd - PullRequest
       33

PHP и htpasswd

0 голосов
/ 03 апреля 2009

У меня есть такая структура:

/home
/home/dir1
/home/dir2

Теперь, когда кто-то идет в / home, его просят ввести имя пользователя и пароль (в форме), и я устанавливаю информацию о сеансе в PHP для оставшихся файлов / home. Теперь / home / dir1 и / home / dir2 защищены htpasswd, но с тем же именем пользователя и паролем. Я не хочу, чтобы пользователь повторно вводил свое имя пользователя и пароль снова, когда они заходили в / home / dir1 ... Также, когда я выхожу из / home, я также хочу выйти из / home / dir1. Подскажите, пожалуйста, как этого добиться?

Ответы [ 2 ]

3 голосов
/ 03 апреля 2009

Это должно быть поведение по умолчанию.

То есть, если вы используете файлы Apache и .htaccess для настройки HTTP-аутентификации, все правила, которые вы применяете к каталогу, будут также применяться к его дочерним каталогам, и он будет рассматриваться браузером как один вход в систему.

Если вы хотите, чтобы он действовал по-другому, т. Е. Если вы хотите, чтобы некоторые разделы сайта рассматривались как требующие полностью отдельного входа в систему, вы должны указать «область» для каждого раздела с помощью директивы AuthName в .htaccess. Больше информации здесь . Однако, если вы этого не сделаете, он всегда будет рассматриваться как часть одного и того же логина.

Особенность HTTP-аутентификации заключается в том, что нет способа «выйти», по крайней мере, если браузер не предоставляет эту функцию. Единственный способ, которым большинство браузеров позволяют вам выйти из системы, - это завершить сеанс браузера (то есть закрыть браузер). И да, как только вы это сделаете, вы выйдете из / home, / home / dir1, / home / dir2 и всех каталогов на всех сайтах / сферах.

0 голосов
/ 27 мая 2009

В Apache, если обе папки имеют одинаковое AuthName и находятся на одном сайте, они должны иметь общий пароль.

В обоих каталогах может быть файл .htaccess, например:

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