Как сделать чтобы при регистрации на сайте автоматически созлавалась папка для пользователя, которая будет закрыта для других пользователей через .htaccess.
Вобщем при регистрации пользователя, создается папка, записывается index.php и .htaccess. с паролями именно этого пользователя (зашифрованые)
Так ты ведь написал алгоритм, в чем проблема ?
mkdir, file_put_contents и все. Нет ?
Только чтобы из PHP можно было создать папку, она должна быть сама по себе открыта для всех пользователей, в том числе и на запись =) Толку?
Первый: вопрос как создать фаил с паролями…
Второй Какраз касаемый доступности папки для всех….
Я так понимаю что это плохая затея ??? Ну или вобще это можно реализовать?
2 Александр Усков:
И вовсе не обязательно. PHP, как правило, работает из под апача. Соответственно, права на доступ можно выставить, например, тока для владельца. А для остальных – тока на чтение
В данном случае, понятно, такое не прокатит… Но файлы паролей и basic аутентификацию тоже никто не отменял
Так в том то и дело – php Работает из под юзера Apache, а владельцем папки хоста является владелец учетной записи на хостинге/сервере. Конечно, если есть рутовский доступ, можно отдать её Apache, но тогда например по фтп ничего не скопируешь. В одну группу их поставить тоже не всегда возможно. А в большинстве случае только 777
создается папка users с правами 777 и htaccess'ом. Вкотором Deny from all
А в этой папке уже создаются пользовательские диры со своими htaccess'ами, которые перекроют действие родительской диры, в котором бейсикавторизация.
пхп пофигу, есть там хтаксес или нет…
Как я понял ТС нужен не htaccess а htpasswd
И какая тогда разница есть там htpasswd или нет, если на папку любого юзера стоят права 777? =)
Но пользователи же к файловой системе имеют доступ через апач)
А там доступ настраивается через .htaccess и .htpasswd =)
вот именно без разницы какие права будут у папки. Апач не отдаст страницу, закрытую хтаксесом
Ну, совсем без разницы – это не так :Р
Если папка и от апача закрыта… ^^'
Но это уже мелочи и не по теме =)
если и от апача, тогда форбиден)
Остался один вопрос: Как создать фаил .htpaswd с MD5 шифрованием?
во первых можно создавать их консольной утилиткой
http://httpd.apache.org/docs/2.0/programs/htpasswd.html
во вторых можно просто через file_put_contents
Сделал вот так:
$path ="team/".$team;
mkdir($path, "777");
$f = fopen($path. "/.htpassword", "w");
$user_pass = md5($user_pass);
$str = $user_login . ":" . $user_pass;
fwrite($f, $str);
fclose($f);
но пароль не подходит….
$f = fopen($path. "/.htpassword", "w"); уже заменил на .htpasswd
а в .htaccess то прописали что надо?
да
у меня отличия получаются когда содаю .htpaswd через утилиту
через утилиту вот такой фаийлик:
admin:$apr1$KR2…..$AdvxdOALfiAi2Oz7.K9r3/
через скрипт:
admin:f83c4c89162355f253dbedcc4489f12b
через утилиту все работает а через скрипт не получается войти
ну вообще мд5 там обычно не используется. либо Crypt либо SHA. Так что вполне может быть, что ваше сервер не поддерживает basic авторизацию с md5
Все получилось, Александр спасибо!
поменял md5 на crypt
и все стало ОК !