Authentifizierung mit PHP und .htaccess

cws

Grünschnabel
Hallo!

Habe ein kleines Authentikationsproblem:

Ich verwende eine .htaccess-Datei zur Authentisierung an einer Webseite. Finde das recht praktisch und recht einfach.

Nun möchte ich aber auch wieder ein Ausloggen erreichen, damit man sich mit einem anderen Benutzernamen an der Webseite anmelden kann. Dazu habe ich folgendes Logout-Skript geschrieben:

PHP:
$auth = false;
if ($_GET["logout"] == "index") {
         $_SERVER[PHP_AUTH_USER] = NULL;
         $_SERVER[PHP_AUTH_PW] = NULL;
}
if (isset($_SERVER[PHP_AUTH_USER]) && isset($_SERVER[PHP_AUTH_PW])) {
        exec("/usr/sbin/htpasswd2 -snb ".$_SERVER[PHP_AUTH_USER]." "
                .$_SERVER[PHP_AUTH_PW]."", $enc_pw);
    $filename = '/var/..../.htpasswd';
    $fp = fopen($filename, 'r');
    $file_contents = fread($fp, filesize($filename));
    fclose($fp);

    $lines = explode("\n", $file_contents);

    foreach ($lines as $line) {
                if ($line == $enc_pw[0]) {
                        $auth = true;
                        break;
        }
    }
}
if (!$auth) {
        header("WWW-Authenticate: Basic realm=\"GSHB / GSTOOL FAQ\"");
        header("HTTP/1.0 401 Unauthorized");
        exit;
} else {
        header ("Location: ".$site_url."index.php");
}

Das insoweit ganz gut, dass er auch wirklich nen Benutzername/Passwort-Vergleich hinbekommt und auch in die richtigen Schleifen springt. Allerdings macht er nicht wirklich einen Logout, sprich die Variablen usw. werden nicht richtig überschrieben etc.

Wie schaffe ich es also, dass das Skript bzw. der Browser sogar, die Authentikationsinformationen von Benutzername und Passwort vergisst und ansonsten die neuen Informationen akzeptiert.

Gleich vorneweg: Ich will keine aufgeblähte Datenbank-Authentisierung, da ich keine Datenbank zur Verfügung habe und sie auch sonst nicht benötige.

Vielen Dank für Hinweise und Eure schnelle Hilfe.

Viele Grüße
Michael
 
Zurück