Ich würde dir diese PHP-Variante empfehlen:
http://www.php.net/manual/de/features.http-auth.php
Das funktioniert bestens.
Arbeitet ähnlich wie htaccess und niemenad kommt an das Passwort ran.
Es muss dann nur die komplette Hausverwaltung bzw. der Passwortgeschützte Bereich so gesichert werden.
Sprich: alle Seiten müssen in PHP mit diesem Quellcode sein.
Beispiel (Seite):
PHP:
<?php
$bdir = "";
include_once($bdir."access.php");
?>
<html>
<head>
<title>Bin ich schon drin?</title>
</head>
<body>
<h1>Du bist drin!</h1>
</body>
</html>
Beispiel (access.php):
PHP:
<?php
$zugang = Array(
Array("hanswurst", "dampf"),
Array("weiterer benutzer", "passwort"));
if(!isset($PHP_AUTH_USER))
{
Header("WWW-Authenticate: Basic realm=\"Zugang zur Hausverwaltung\"");
Header("HTTP/1.0 401 Unauthorized");
echo "Access denied!\n";
exit;
}
else
{
for($i=0;$i<count($zugang);$i++)
{
if($PHP_AUTH_USER != $zugang[$i][0] && $PHP_AUTH_PW != $zugang[$i][1])
{
echo "Falscher Benutzername oder falsches Passwort";
exit;
}
}
}
?>
Dieser Schutz arbeitet hervorragend und ist zudem sicher (außer ich hab da nen Bug drin).
Der Benutzer bekommt ein Fenster wie bei HTACCESS und wird aufgefordert seinen Benutzernamen und sein Passwort zum Bereich "Zugung zur Hausverwaltung" einzugeben.
Wenn das Passwort bzw. der Benutzername nicht stimmt, erhält er den Text "Falscher Benutzername oder falsches Passwort".
(Dieser Text kann natürlich auch eine komplette HTML-Seite sein.)
Wenn er bei der Benutzerabfrage den Abbrechen-Button drückt, erhält er "Access denied!". (Kann auch eine HTML-Seite sein.)
Wenn der Benutzername und das Passwort passen, wird access.php komplett durchlaufen, ohne die Ausgabe mit exit abzubrechen.
Dann kommt der Seiteninhalt zum Benutzer.
Alles klar?
Ich hoffe, dass ich das nicht zu kompliziert gemacht habe.