phpbar.de logo

Mailinglisten-Archive

[php] (no subject)

[php] (no subject)

Falk Brockerhoff falk.brockerhoff_(at)_kruchem-schmitt.de
Fri, 10 Nov 2000 13:43:57 +0100


Hallo!

Ich bin gerade dabei mit PHP_AUTH_USER herumzuspielen. Ich habe mir den 
Code aus dem phpMyAdmin geklaut
und nachvollzogen. Klappt auch alles. Nur möchte ich dem Benutzer einen 
"Logout" anbieten. phpMyAdmin arbeitet
da mit einer Variable namens $old_usr.

Dies kann ich leider nicht nutzen, da ich in den folgenden Seiten und 
Scripten mit Sessions arbeite und, sobald die
Session nicht mehr existiert (also auch bei direktem Aufruf der 
entsprechenden Seiten) auf die Login-Seite redirecte.
Der Browser fügt dann die bereits eingegebenen Daten für PHP_AUTH_USER und 
PHP_AUTH_PW ein :-(

Außerdem kann ich mit dieser old_usr-Lösung nach dem gewollten Ausloggen 
nicht mehr denselben Usernamen er-
neut eingeben :-(

Ich möchte, daß

- der Benutzer sich ausloggen kann und sich dann auch wieder unter 
demselben Usernamen anmelden kann
- wenn ein direkter Zugriff auf die "geschützten" Files erfolgt, der User 
auf die Loginpage redirectet wird und
   dort _auf jeden Fall_, egal ob der der Browser die Login-Daten 
gespeichert hat oder nicht - sich neu anmelden
   muß.

Ach so, ich arbeite mit PHP4!

login.php ------
function auth()
  {
  Header("status: 401 Unauthorized");
  Header("HTTP/1.0 401 Unauthorized");
  Header("WWW-authenticate: basic realm=\"Kundenbereich\"");
  echo "<HTML><HEAD><TITLE>AccessDenied</TITLE></HEAD>\n";
  echo "<BODY BGCOLOR=#FFFFFF><BR><BR><CENTER><H1>AccessDenied</H1>\n";
  echo "</CENTER></BODY></HTML>";
  exit;
  }

if (empty($PHP_AUTH_USER) && isset($REMOTE_USER))
         $PHP_AUTH_USER=$REMOTE_USER;
if (empty($PHP_AUTH_PW) && isset($REMOTE_PASSWORD))
         $PHP_AUTH_PW=$REMOTE_PASSWORD;

if (!isset($old_usr)) {
         if(empty($PHP_AUTH_USER)) {
                 $AUTH=TRUE;
         } else {
                 $AUTH=FALSE;
         }
} else {
         if ($old_usr==$PHP_AUTH_USER) {
                 $AUTH=TRUE;
                 unset($old_usr);
         } else {
                 $AUTH=FALSE;
         }
}

if ($AUTH) {
         auth();
} else {
         [Daten gegen mySQL-DB überprüfen und ggf. $AUTH wieder auf TRUE 
setzen]
         Redirect("Header: welcome.php");
}


welcome.php ---------
         session_start();
         if (!$verified) {
                 session_destroy();
                 Header("Location: login.php");
}


MfG

Falk Brockerhoff,

-- 
PGP Key available - Fingerprint 270C 10BA 9A2F 3095 ADA5  54B6 4C8E EDCB 
3045 E470



php::bar PHP Wiki   -   Listenarchive