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

  • Автор темы Автор темы Brezee
  • Дата начала Дата начала

Brezee

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

Как можно создать .htpasswd на php?
 
да нет я имею ввиду как сделать сам логин и пароль, т.е. как сгенерировать для определенного логина пароль, ну потом понятно что я их сброшу в файл
 
да нет, htpasswd ведь создает к определенному логину свой пароль, а сrypt мне просто зашифрует строку. Я хочу сделать на пхп то же самое что делает выше указанная программа
 
а так htpasswd просто шифрует пароль и нет никакой связи с логином нет??
Спасибо!!!
 
у меня в 4.0.6 почему-то не оказалось функции crypt и я сделал через system("/usr/sbin/htpasswd параметры user password");
 
Лучше юзать апачевский 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");
 
<?



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

login:ADxHJACiz3.6w

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

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

Поэтому и не работает :-(
 
Автор оригинала: Brezee
Смотри что получается твоим способои

login:ADxHJACiz3.6w

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

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

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