Ich weiß nicht genau.
Ich verwende die Method auch zum sichern meiner Seite allerdings im Script und mit einer Datenbank und nicht mit htaccess.
Sieht ungefähr so aus:
PHP:
<?php
if(!isset($PHP_AUTH_USER)) {
Header("WWW-Authenticate: Basic realm=\"My Realm\"");
Header("HTTP/1.0 401 Unauthorized");
echo "Text to send if user hits Cancel button\n";
exit;
} else {
echo "Hello $PHP_AUTH_USER.<P>";
echo "You entered $PHP_AUTH_PW as your password.<P>";
}
?>
Siehe hier:
http://www.php.net/manual/de/features.http-auth.php
edit:
Wenn du schon eine PHP-Seite aufrufst, kannst du das auch so machen.
Konkretes Beispiel (access.php):
PHP:
<?php
$zugang = Array(
Array("hanswurst", "dampf"),
Array("weiterer benutzer", "passwort"));
if(!isset($PHP_AUTH_USER))
{
Header("WWW-Authenticate: Basic realm=\"My Realm\"");
Header("HTTP/1.0 401 Unauthorized");
echo "Text to send if user hits Cancel button\n";
exit;
}
else
{
$allow = false;
for($i=0;$i<count($zugang);$i++)
{
if($zugang[$i][0] == $PHP_AUTH_USER && $zugang[$i][1] == $PHP_AUTH_PW)
{
$allow = true;
}
}
if($allow == false)
{
echo "Falscher Benutzername oder falsches Passwort.";
exit;
}
}
?>
Beispiel-Seite (datei.php):
PHP:
<?php
$bdir = "";
include_once($bdir."access.php");
?>
Hier kommt dann der wirkliche Seiteninhalt...
Variable $bdir enthält eine relative Angabe zum Basisverzeichenis.
Das Script überprüft erst, ob ein Benutzer eingegeben wurde.
Wenn nein, wird ein Header zur eingabe gesendet und das Script abgebrochen.
Wenn ja, wird die Array mit den Benutzername/Passwort-Kombinationen abgeklappert.
Ist ein Treffer vorhanden, wird $allow auf true gesetzt.
Nach dem Abklappern wird noch überprüft, ob $allow immer noch false ist.
Wenn ja, wird eine Meldung ausgegeben und das Script abgebrochen.
Wenn nein, wird die Überprüfung ohne Abbruch durchlaufen.
Da vorher nichts ausgegeben wurde, kommt jetzt der Seiteninhalt zum User.
PS. Lese die Benutzernamen und Passwort nach Möglichkeit aus einer Datenbank aus.
So kannst du dem User ermögliches, sein Passwort zu ändern.