Как можно создать .htpasswd на php

Brezee

Новичок
Как можно создать .htpasswd на php

Как можно создать .htpasswd на php?
 

Brezee

Новичок
да нет я имею ввиду как сделать сам логин и пароль, т.е. как сгенерировать для определенного логина пароль, ну потом понятно что я их сброшу в файл
 

Brezee

Новичок
да нет, htpasswd ведь создает к определенному логину свой пароль, а сrypt мне просто зашифрует строку. Я хочу сделать на пхп то же самое что делает выше указанная программа
 

Barlone

Guest
Не понял...
PHP:
fputs($file,$login.':'.crypt($password)."\n");
 

Brezee

Новичок
а так htpasswd просто шифрует пароль и нет никакой связи с логином нет??
Спасибо!!!
 

AnToXa

prodigy-одаренный ребенок
у меня в 4.0.6 почему-то не оказалось функции crypt и я сделал через system("/usr/sbin/htpasswd параметры user password");
 

Yurik

/dev/null
Лучше юзать апачевский htpasswd
Вот в php manual notes есть

If you want to use the exec command to change passwords in a .htaccess file, it's possible, but do not use the direct exec command, that didn't work for me.
What works perfectly; (on Linux)
PHP:
$Htuserfile = "/home/userssite";
$Pathhtpasswd = "/usr/local/apache/bin/htpasswd -b";
$test=shell_exec($Pathhtpasswd." ".$Htuserfile." ".strtolower($Login_Name)." $Password");
 

blur

Guest
<?



if (($user) && ($passwort))
{
# get url

$url = $DOCUMENT_ROOT . dirname($PHP_SELF) . "/.htpasswd";

# make .htaccess and .htpasswd

$htaccess_txt = "AuthType Basic" . "\n";
$htaccess_txt .= "AuthName \"protected area\"" . "\n";
$htaccess_txt .= "AuthUserFile $url" . "\n";
$htaccess_txt .= "require valid-user" . "\n";

$htpasswd_txt .= "$user:".crypt($passwort,CRYPT_STD_DES)."\n";

# save files

$htaccess= fopen(".htaccess", "w");
$htpasswd= fopen(".htpasswd", "w");

fputs($htaccess, $htaccess_txt);
fputs($htpasswd, $htpasswd_txt);
fclose($htaccess);
fclose($htpasswd);

# output

die ("OK!<HR>" . nl2br($htaccess_txt) . "<HR>" . nl2br($htpasswd_txt));

}

?>
<HTML><HEAD><TITLE> MAKE .htaccess + .htpasswd </TITLE></HEAD>
<BODY>
<FORM METHOD="POST" ACTION="<? echo $PHP_SELF; ?>">
<p>Username: <INPUT TYPE="TEXT" NAME="user"></p>
<p>Passwort: <INPUT TYPE="TEXT" NAME="passwort"></p>
<p><INPUT TYPE="submit" VALUE="make"></p>
</FORM>
</BODY></HTML>
 

Brezee

Новичок
Спасибо за внимание, но дело втом что у меня в принцепи всё так и сделанно, проблемма в том что таким образом
$htpasswd_txt .= "$user:".crypt($passwort,CRYPT_STD_DES)."\n"; закодированный пароль не работает под апачем. Так что приходится пользоваться утилитой htpassword. Смотри что получается твоим способои

login:ADxHJACiz3.6w

а вот что делает утилитка

login:$apr1$zZ2.....$zEyuowE.DEXzsq2AkVd00/

Поэтому и не работает :-(
 

light83

Новичок
Автор оригинала: Brezee
Смотри что получается твоим способои

login:ADxHJACiz3.6w

а вот что делает утилитка

login:$apr1$zZ2.....$zEyuowE.DEXzsq2AkVd00/

Поэтому и не работает :-(
Так и не нашлось решения кроме exec?
 
Сверху