Если необходимо закрыть доступ к файлам, в опредиленной папке, данный скрипт создаст все необходимые файлы для конфигурации вебсервера Apache
<?php error_reporting (E_ALL ^ E_WARNING ^ E_NOTICE); // не показывать ошибки $login=$_REQUEST['login']; $pass=$_REQUEST['pass']; $puth=$_REQUEST['puth']; $acc=$_REQUEST['acc']; if ($_SERVER['REMOTE_USER'] != "uiso") {exit;} // Не обязательно, это проверка пользователя можно закоментить if ($puth == '') {$puth="C:/Apache2/Apache2/htdocs/site/new/www/databases/test";} // какую папку закрыть if ($acc == 'on') { $access_cod = <<<HTML AuthType Basic AuthName "Some Name" AuthUserFile $puth/.htpasswd require valid-user HTML; $file = fopen($puth."/.htaccess", "a+"); fputs($file, $access_cod.""); fclose($file); } if ($pass == '') { $chars="qazxswedcvfrtgbnhyujmkiolp1234567890QAZXSWEDCVFRTGBNHYUJMKIOLP"; $max=10; $size=StrLen($chars)-1; $password=null; while($max--) $password.=$chars[rand(0,$size)]; $pass=$password; } ////////////////////////////////////////////////////////////////////////////// print <<<HTML <form action="" method="post"> Полный путь к папке например (C:/Apache2/Apache2/htdocs/site/new/www/databases/db_rdoc/admin):<br> <input type="text" name="puth" size="80" value="$puth"><br> login:<br> <input type="text" name="login"><br> Pass:<br> <input type="text" name="pass"><br> Создать предварительно (.htaccess):<br> <input type="checkbox" name="acc"><br> <input type="submit" value="Создать"> </form> HTML; ////////////////////////////////////////////////////////////////////////////// if (($login != '') && ($pass != '')) { print "Вы ввели следующие данные:<br>Login: $login Pass: $pass<br>"; $file2 = fopen($puth."/user_login", "a+"); fputs($file2, $login.":".$pass.""); fclose($file2); $new_pass = crypt_apr1_md5($pass); //print $login.":".$new_pass; $file3 = fopen($puth."/.htpasswd", "a+"); fputs($file3, $login.":".$new_pass.""); fclose($file3); } function crypt_apr1_md5($plainpasswd) { $salt = substr(str_shuffle("abcdefghijklmnopqrstuvwxyz0123456789"), 0, 8); $len = strlen($plainpasswd); $text = $plainpasswd.'$apr1$'.$salt; $bin = pack("H32", md5($plainpasswd.$salt.$plainpasswd)); for($i = $len; $i > 0; $i -= 16) { $text .= substr($bin, 0, min(16, $i)); } for($i = $len; $i > 0; $i >>= 1) { $text .= ($i & 1) ? chr(0) : $plainpasswd{0}; } $bin = pack("H32", md5($text)); for($i = 0; $i < 1000; $i++) { $new = ($i & 1) ? $plainpasswd : $bin; if ($i % 3) $new .= $salt; if ($i % 7) $new .= $plainpasswd; $new .= ($i & 1) ? $bin : $plainpasswd; $bin = pack("H32", md5($new)); } $tmp = ''; for ($i = 0; $i < 5; $i++) { $k = $i + 6; $j = $i + 12; if ($j == 16) $j = 5; $tmp = $bin[$i].$bin[$k].$bin[$j].$tmp; } $tmp = chr(0).chr(0).$bin[11].$tmp; $tmp = strtr(strrev(substr(base64_encode($tmp), 2)), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/", "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"); return "$"."apr1"."$".$salt."$".$tmp; } ?>