Eine Authentifizierung, wie man sie von der .htaccess von Apache kennt, ist auch mit PHP ohne große Probleme möglich. Dazu muss zunächst der Status-Code 401 (nicht authorisiert) gesendet werden. Da dies in HTTP-Version 1.0 und 1.1 unterschiedlich ist, muss dies zweimal geschehen. Danach wird noch der Authentifizierungs-Type mit Bezeichnung für den geschützten Bereich gesendet:
Anschließend kann noch eine HTML-Code gesendet werden, der im Browser erscheint, wenn der Benutzer im erscheinenden Passwort-Eingabe-Fenster auf Abbrechen klickt.
Hat der Benutzer seine Daten eingegeben wird die PHP-Datei erneut aufgerufen. Nun befinden sich in den Variablen
$PHP_AUTH_USER der Benutzername und in
$PHP_AUTH_PW das Passwort, welches der Benutzer eingegeben hat. Dieses kann nun überprüft werden und, falls nötig, erneut der "Unauthorized"-Header gesendet werden. Ein entsprechendes Script könnte z.B. so aussehen:
<?
mysql_connect("localhost","user","pwd");
mysql_select_db("datenbank");
$result = mysql_query("SELECT * FROM user WHERE
usr='$PHP_AUTH_USER' && pwd='$PHP_AUTH_PW'");
if(!mysql_num_rows($result)) {
header("status: 401 Unauthorized");
header("HTTP/1.0 401 Unauthorized");
header("WWW-authenticate: basic realm=\"Ganz Geheim\"");
echo "<HTML><BODY>Dieser Bereich ist nur für
angemeldete Nutzer</BODY></HTML>";
exit;
}
echo "Willkommen im Benutzerbereich, ".$HTTP_AUTH_USER."!";
?>
|
|
|
|
Dieses Script lässt sich übrigens sehr einfach in das
Login-Beispiel integrieren. Aber diese Aufgabe ist Ihnen überlassen...