Forum Webscript.Ru

Программирование => Perl => Тема начата: Hatchet от 27 Октября 2003, 23:26:21

Название: Новая песня о главном .htpasswd
Отправлено: Hatchet от 27 Октября 2003, 23:26:21
Cлегонца стыдясь задаю вопросик.

Как мне стало известно файлик .thpasswd создается командой из шелла... у меня туда доступа нет...
Уже была тема - но ссылка на документ, что помог - мертвая...

Такой вариант не годится? (хотя он и не работает!!!:)#Записываем пароль введенный пользователем в файл .htpasswd
open (PASS,">>$datadir/.htpasswd");
$pass = "$FORM(password)";
$salt = join \'\', (\'.\', \'/\', 0..9, \'A\'..\'Z\', \'a\'..\'z\')[rand 64, rand 64];
$crpass = crypt($pass,$salt);
print RASS "$crpass\\n";
close (PASS);

Однако запись в файлике должна быть
login:XXXXX.....YYYYY
где YYYY - это закриптованный пароль
а что такое XXXX?
Название: Новая песня о главном .htpasswd
Отправлено: alex007 от 28 Октября 2003, 00:32:45
Цитировать
а что такое XXXX?

Вообщето когда логися, помимо пароля еще есть имя пользователя :) :)
Название: Новая песня о главном .htpasswd
Отправлено: ThE0ReTiC от 28 Октября 2003, 10:15:46
Hatchet
Формат файла паролей:
<имя_пользователя>:<шифрованный_пароль_пользователя>
Создать его можно при помощи аналогичной утилиты, которая идет с Апачем под винду
потом просто копируешь созданный файл по FTP на свой хост. Тока клади его вне корневой директории твоего сайта.
Название: Новая песня о главном .htpasswd
Отправлено: Hatchet от 28 Октября 2003, 22:10:30
Это понятно, но эти записи должен делать перловый скрипт...
Название: Новая песня о главном .htpasswd
Отправлено: ThE0ReTiC от 29 Октября 2003, 02:20:50
Hatchet
ну так и вызови htpasswd из скрипта
Название: Новая песня о главном .htpasswd
Отправлено: Hatchet от 29 Октября 2003, 11:06:11
Это понятно, туда надо саписать в шифрованном виде - та запись, что была выще верна???

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

Есть еще вопросик...
чел проходит регистрацию и заполняет форму, данные складываются в базу. Поскольку каждый юзер может вносить изменения в свои данные пришлос сделать помимо общей базы данных и отдельную папочку для каждого по логину и туда делать копию его записей.
Придя второй раз он хочет отредактировать  - открываем ему форму прописанную в скрипте но с уже занесенными вполя его данными... А КАК занести туда всякие "чекбоксы", "меню перехода" там ведь нет понятия Value=""...
Название: Новая песня о главном .htpasswd
Отправлено: NeoNox от 29 Октября 2003, 11:07:22
Цитировать
Hatchet:
open (PASS,
.....
print RASS "$crpass\\n";

ну и куда ты пишеш $crpass?
Название: Новая песня о главном .htpasswd
Отправлено: Hatchet от 29 Октября 2003, 13:16:30
$datadir/.htpasswd

ну типа это путь к этому файлу
дописываем к уже существующим записям

этот вариант я взял из этой конфы, в строку я даже не добавил login...

Главное, (я похвастаюсь) я только 3-ий день Перл учу... радость неописуемая когда хоть чтото работает... как я понимаю фанатов программирования :)
Название: Новая песня о главном .htpasswd
Отправлено: Hatchet от 29 Октября 2003, 13:19:20
Еще вопросик... самый частый ответ на все вопросы  - perldoc XXX

Это очевидно для тех кто под *nix ... а я тупо под Виндами, типа
в Досе таку команду дать ? :)
В Хелпах, что к Апачу и Перлу в формате .htm особо не порыщешся
Название: Новая песня о главном .htpasswd
Отправлено: NeoNox от 29 Октября 2003, 13:48:25
1. Ты открываеш файл. Дескриптор PASS
2. Передаеш дескриптору пароль и логин. НО! Имя дескриптора у тебя RASS. Опечатка.
Так понятнее?
А теперь еще. Начни сразу использовать use strict; в противном случае таких вещей огребеш целое море.
Название: Новая песня о главном .htpasswd
Отправлено: Hatchet от 29 Октября 2003, 14:41:32
Спасибо
Название: Новая песня о главном .htpasswd
Отправлено: Hatchet от 26 Ноября 2003, 18:47:29
Продолжение темы... есть затык...
как писать .htpasswd я нашел :
\'$password = crypt($FORM{NewPassword}, "YL");
open (wdata, ">>$passfile") or &error("Unable to write to the data file");
if ($flock eq "y") {
flock wdata, 2;
}
print wdata "$FORM{Login}:";
print wdata "$password\\n";
close(wdata);
\'
Но вот беда -  то как я пишу .htaccess.
Он должен быть в виде UNIX формата...
как убрать символ переовда каретки /r при чтении и обработки знаю - а как записывать без него?
Карочиии файл не читабельный!
............
Еще одна проблема - возможно ли совместить использование .htpasswd  и авторизацию через фориу с файликом где лежат логины и пароли в не шифрованном виде?

Т.е. задача - чел логинится через форму и как бы автоматом заполняет окошко .htaccess чтобы не повторять пароль при проходе в какуюнить зону.