PHP4-Forum
Forum | Befehle | MySQL | Beispiele | Newsletter | Suche | Home

Untermenü

Erweitertes
Reguläre Ausdr.
MIME-Mail
PHP und WAP
Crontab
HTTP-Header
Klassen, Objekte

Zu dieser Seite

HTTP-Header
Content-Type
Cache-Controll
Download von Dateien
Authentifizieren
Authentifizieren

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:

status: 401 Unauthorized
HTTP/1.0 401 Unauthorized
WWW-authenticate: basic realm="NAME DES BEREICHES"


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...
Dienstleistungen | Werbung | Impressum | Sitemap | Kontakt | Email © 1999 - 2013 | Last Update: 30.01.2001