PX : code

MAKE htaccess|htpasswd by Eric
Download this code



MAKE .htaccess + .htpasswd

Originally by: von Lars Brinkmann ( info@lars-brinkmann.de ) 
einfach die Endung umbenennen.

Modified by: Eric Pecoraro ( eric@shepard.com ) 2002 Apr 1 
for multiple directory .htaccess creation.

Simple stand-alone PHP script for creating .htaccess + .htpasswd 
files on *nix in multiple directories. No modifications are 
required. Up & running in about 15 seconds.

Place in any directory. When called, it will return the path 
where it resides, allowing the creation of a password file in 
its directory, or another directory which is specified. Be sure 
to put a forward slash, "/" at the end of the path specified.

For security, be sure to create a password where this file 
resides (default path).

If realm entry is not specified, it will be named "Please_Login".

New directory passwords will overwrite previous ones.

*** Use at your own risk... ***


$thisdirectory = $DOCUMENT_ROOT . dirname($PHP_SELF) . "/" ;

if (($user) && ($password) && ($directory))

     for ($i = 0; $i < count ($user); $i++)
     $htpasswd_text .= "$user[$i]:".crypt($password[$i],CRYPT_STD_DES)."\n";
     $dir .= "$directory[$i]";
     $realm .= "$realmname[$i]";
     If ( file_exists($dir) ) {} else
     echo "Directory does not exist!"; 
     if( $realm == "" )
     $realm = "Please_Login";
     $htaccess= fopen("$dir.htaccess", "w");
     $htpasswd= fopen("$dir.htpasswd", "w");
     $htaccess_text = "AuthType Basic\n".
     "AuthName \"$realm\"\n".
     "AuthUserFile $dir.htpasswd\n".             
     "require valid-user\n";

     fputs($htaccess, $htaccess_text);
     fputs($htpasswd, $htpasswd_text);

echo nl2br($htaccess_text);
echo "<p><hr></p>";
echo nl2br($htpasswd_text);
echo "<p><hr></p>";

} // end if user and password


<TITLE> MAKE .htaccess + .htpasswd </TITLE>
<FORM METHOD="post" ACTION="<? echo $PHP_SELF; ?>">
<p>Username: <INPUT TYPE="TEXT" NAME="user[]"></p>
<p>password: <INPUT TYPE="TEXT" NAME="password[]"></p>
<p>realm: <INPUT TYPE="TEXT" NAME="realmname[]"></p>
<p>in directory: <INPUT TYPE="TEXT" size=75 NAME="directory[]" value="<? echo 
$thisdirectory ?>"></p>
<p><INPUT TYPE="submit" VALUE="make"></p>

Comments or questions?
PX is running PHP 5.2.17
Thanks to Miranda Productions for hosting and bandwidth.
Use of any code from PX is at your own risk.