Делимся секретами создания сайтов

.htaccess

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

Вобщем при регистрации пользователя, создается папка, записывается index.php и .htaccess. с паролями именно этого пользователя (зашифрованые)

Ответы: 21 → “.htaccess”

  1. Андрей Смирнов Ответить

    Так ты ведь написал алгоритм, в чем проблема ?
    mkdir, file_put_contents и все. Нет ?

  2. Александр Усков Ответить

    Только чтобы из PHP можно было создать папку, она должна быть сама по себе открыта для всех пользователей, в том числе и на запись =) Толку?

  3. Сергей Ееежык Ответить

    Первый: вопрос как создать фаил с паролями…
    Второй Какраз касаемый доступности папки для всех….

    Я так понимаю что это плохая затея ??? Ну или вобще это можно реализовать?

  4. Алекс Ив Ответить

    2 Александр Усков:
    И вовсе не обязательно. PHP, как правило, работает из под апача. Соответственно, права на доступ можно выставить, например, тока для владельца. А для остальных – тока на чтение :)

    В данном случае, понятно, такое не прокатит… Но файлы паролей и basic аутентификацию тоже никто не отменял :)

  5. Александр Усков Ответить

    Так в том то и дело – php Работает из под юзера Apache, а владельцем папки хоста является владелец учетной записи на хостинге/сервере. Конечно, если есть рутовский доступ, можно отдать её Apache, но тогда например по фтп ничего не скопируешь. В одну группу их поставить тоже не всегда возможно. А в большинстве случае только 777

  6. Илья Антипенко Ответить

    создается папка users с правами 777 и htaccess'ом. Вкотором Deny from all
    А в этой папке уже создаются пользовательские диры со своими htaccess'ами, которые перекроют действие родительской диры, в котором бейсикавторизация.

    пхп пофигу, есть там хтаксес или нет…

    Как я понял ТС нужен не htaccess а htpasswd

  7. Александр Усков Ответить

    И какая тогда разница есть там htpasswd или нет, если на папку любого юзера стоят права 777? =)

  8. Алексей Сонькин Ответить

    Но пользователи же к файловой системе имеют доступ через апач)
    А там доступ настраивается через .htaccess и .htpasswd =)

  9. Илья Антипенко Ответить

    вот именно без разницы какие права будут у папки. Апач не отдаст страницу, закрытую хтаксесом

  10. Алексей Сонькин Ответить

    Ну, совсем без разницы – это не так :Р
    Если папка и от апача закрыта… ^^'

    Но это уже мелочи и не по теме =)

  11. Илья Антипенко Ответить

    если и от апача, тогда форбиден)

  12. Сергей Ееежык Ответить

    Остался один вопрос: Как создать фаил .htpaswd с MD5 шифрованием?

  13. Александр Усков Ответить

    во первых можно создавать их консольной утилиткой
    http://httpd.apache.org/docs/2.0/programs/htpasswd.html

    во вторых можно просто через file_put_contents

  14. Сергей Ееежык Ответить

    Сделал вот так:
    $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);

    но пароль не подходит….

  15. Сергей Ееежык Ответить

    $f = fopen($path. "/.htpassword", "w"); уже заменил на .htpasswd

  16. Александр Усков Ответить

    а в .htaccess то прописали что надо?

  17. Сергей Ееежык Ответить

    да

  18. Сергей Ееежык Ответить

    у меня отличия получаются когда содаю .htpaswd через утилиту

    через утилиту вот такой фаийлик:
    admin:$apr1$KR2…..$AdvxdOALfiAi2Oz7.K9r3/

    через скрипт:
    admin:f83c4c89162355f253dbedcc4489f12b

  19. Сергей Ееежык Ответить

    через утилиту все работает а через скрипт не получается войти

  20. Александр Усков Ответить

    ну вообще мд5 там обычно не используется. либо Crypt либо SHA. Так что вполне может быть, что ваше сервер не поддерживает basic авторизацию с md5

  21. Сергей Ееежык Ответить

    Все получилось, Александр спасибо!
    поменял md5 на crypt

    и все стало ОК !

Ответить