Glück Auf Alex,
Ich nutze PHP, um die sich wiederholenden Bereiche (Navigation, Zufallsbild etc.) einzubinden. Der Inhalt (Hauptbereich der Seite) ist meist statisch. Ausnahmen (Gästebuch, Freundeseiten, Zitate etc.) werden aus MySQL abgerufen.
Dann könntest Du also ganz bequem mittels auto_prepend_script einen PHP-Bereich vorbinden lassen, der den Zugang checkt. Das machst Du dann nur einmal und wenn die Seite auf Deinem "Index" (also der Sperrliste) steht, dann wird sie nur ausgeliefert, wenn der User sich authentifiziert hat, sonst wird eine Ersatzseite eingeblendet und dann mit exit verlassen.
Wie man eine Authentifizierung baut, ist Dir doch aber klar, oder?
function authenticate($ansage, $absage=false) # $ansage = Text, $absage = vollständiges HTML-Dok
{
Header("WWW-authenticate: basic realm="".htmlspecialchars($ansage).""");
Header("HTTP/1.0 401 Unauthorized");
if (!$absage)
{
echo "Benutzerdaten erforderlich!";
}
else
{
echo $absage;
}
exit;
}
Je nachdem, ob Du nun PHP als Modul oder als CGI nutzt, können dann unterschiedliche Parameter im Script als Variablen zur Verfügung gestellt werden.
Beim Modul sind es $_SERVER['PHP_AUTH_USER'] und $_SERVER['PHP_AUTH_PW']
Beim CGI meistens $_SERVER['REMOTE_USER'], das Passwort wird standardmäßig nicht ins Script weitergegeben. man kann es aber mit einem Environmentimport beim Apachen zumindest trotzdem ins Script bringen (in einer .htaccess z.B.).
Wenn Du Dir nun eine Tabelle baust (z.B. mit serialize() und unserialize()) in der der User, die Seite und die zugehörigen Rechte stehen, kannst Du das leicht als Kriterium nehmen, ob die Seite angezeigt wird, oder nur die Ersatzseite oder gar kein Passwort notwendig ist.
Die Passworte stehen dann ja in einer extra-Datei. Die sollte möglichst außerhalb der Dokument-Root geparkt werden.
Ein harzliches Glückauf
Tom vom Berg