[Php-it] Errore con .htpasswd

Alessandro Marinuzzi alecos_net at libero.it
Wed Sep 5 14:18:24 CEST 2007


Ho creato uno script che crea i file .htaccess e .htpasswd e mentre su
Aruba (linux) Apache 2.0.59 mi funzia benissimo e mi accesso alla
cartella dopo aver verificato l'user e la pass... in locale su windows
le cose sono diverse.... in locale sulla macchina di sviluppo ho sempre
Apache 2.0.59 versione windows e non accetta l'user e pass inserire e di
conseguenza mi nega l'accesso alla cartella... perchè su aruba va ed in
locale non va?

Ecco lo script:

<?
if (($HTTP_POST_VARS['user']) && ($HTTP_POST_VARS['password'])) {
  $user =$HTTP_POST_VARS['user']; $password = $HTTP_POST_VARS['password'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/strict.dtd">
<html xml:lang="it" xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
<title>Questo script genera i file .htaccess e .htpasswd</title>
</head>
<body>
<?
if ((substr($_SERVER["DOCUMENT_ROOT"],-1,1) == "/") and (substr($_SERVER["PHP_SELF"],0,1) =="/")) {
  $percorso = $_SERVER["DOCUMENT_ROOT"]. substr(dirname($_SERVER["PHP_SELF"]),1) . "/.htpasswd";
} else {
  $percorso = $_SERVER["DOCUMENT_ROOT"]. dirname($_SERVER["PHP_SELF"]). "/.htpasswd";}
  $tmp1 = fopen(".htaccess", "w+");
  $tmp2 .= "AuthType Basic\n";
  $tmp2 .= "AuthName \"Area Protetta\"\n";
  $tmp2 .= "AuthUserFile $percorso\n";
  $tmp2 .= "Require valid-user\n";
  fwrite($tmp1, $tmp2);
  fclose($tmp1);
  unset($tmp1);
  unset($tmp2);
  $tmp1 = fopen(".htpasswd", "w+");
  $tmp2 = "$user:".crypt($password,CRYPT_STD_DES);
  fwrite($tmp1, $tmp2);
  fclose($tmp1);
  unset($tmp1);
  unset($tmp2);
  die ("<h2>.htaccess e .htpasswd generati correttamente!</h2>\n</body>\n</html>");
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/strict.dtd">
<html xml:lang="it" xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
<title>Questo script genera i file .htaccess e .htpasswd</title>
</head>
<body>
<form method="post" action="<? echo $PHP_SELF; ?>">
<p><label for="user">Username</label>: <input type="text" id ="user" name="user" /></p>
<p><label for="password">Password</label>: <input type="text" id ="password" name="password" /></p>
<p><input type="submit" value="Genera i file" /></p>
</form>
</body>
</html>

Cmq lo script esisteva già io l'ho solo stravolto per fargli creare in
automatico i file che mi servivano :-) Perchè Apache 2.0.59 in locale
pur mettendo user e pass corrette mi nega lo stesso l'accesso? Grazie
per qualcunque risposta ;-)

-- 
Alessandro Marinuzzi
--------------------
http://www.alecos.it
--------------------


More information about the Php-it mailing list