$PHP_AUTH_USER bzw PW

Uddi

Grünschnabel
:( Ich habe ein Verzeichnis mit htaccess geschützt und es funktioniert auch alles so weit, also ich kann mich einloggen. Nach dem Login öffnet sich ein PHP-Script in dem folgendes steht:

<?php echo "Hallo ".$PHP_AUTH_USER." dein Passwort ist ".$PHP_AUTH_PW."!"; ?>

Aber da wird irgendwie nichts angezeigt. Die beiden Variablen funktionieren bei mir nicht. Weiss jemand Rat? Wäre echt nett

Danke
 
Ich hatte neulich das gleiche Problem.

Nimm $_SERVER["PHP_AUTH_USER"] und $_SERVER["PHP_AUTH_PW"], dann müsste es gehen.

Gruß
Falk
 
Hallo!

Welche PHP-Version hast du denn???
Solltest Deine Version unter 4.1.0 sein, so probier doch auch mal $HTTP_SERVER_VARS["PHP_AUTH_USER"] und $HTTP_SERVER_VARS["PHP_AUTH_PW"] aus.....

Gruß,
Lugi.
 
Boah das funktioniert auch nicht *noch ne kriese kriegt*
Also bei mir ist jetzt PHP Version 4.3.0 drauf. Spielt das ne rolle?
 
Nee nur die beiden Variablen werden ned angezeigt. Also im Browser steht dann nur

Hallo dein Passwort ist!
 
Ich weiß nicht genau.
Ich verwende die Method auch zum sichern meiner Seite allerdings im Script und mit einer Datenbank und nicht mit htaccess.

Sieht ungefähr so aus:
PHP:
<?php
  if(!isset($PHP_AUTH_USER)) {
    Header("WWW-Authenticate: Basic realm=\"My Realm\"");
    Header("HTTP/1.0 401 Unauthorized");
    echo "Text to send if user hits Cancel button\n";
    exit;
  } else {
    echo "Hello $PHP_AUTH_USER.<P>";
    echo "You entered $PHP_AUTH_PW as your password.<P>";
  }
?>

Siehe hier: http://www.php.net/manual/de/features.http-auth.php

edit:
Wenn du schon eine PHP-Seite aufrufst, kannst du das auch so machen.

Konkretes Beispiel (access.php):
PHP:
<?php
  $zugang = Array(
   Array("hanswurst", "dampf"),
   Array("weiterer benutzer", "passwort"));
  if(!isset($PHP_AUTH_USER))
  {
   Header("WWW-Authenticate: Basic realm=\"My Realm\"");
   Header("HTTP/1.0 401 Unauthorized");
   echo "Text to send if user hits Cancel button\n";
   exit;
  }
  else
  {
   $allow = false;
   for($i=0;$i<count($zugang);$i++)
   {
    if($zugang[$i][0] == $PHP_AUTH_USER && $zugang[$i][1] == $PHP_AUTH_PW)
    {
     $allow = true;
    }
   }
   if($allow == false)
   {
    echo "Falscher Benutzername oder falsches Passwort.";
    exit;
   }
  }
?>
Beispiel-Seite (datei.php):
PHP:
<?php
$bdir = "";
include_once($bdir."access.php");
?>
Hier kommt dann der wirkliche Seiteninhalt...

Variable $bdir enthält eine relative Angabe zum Basisverzeichenis.
Das Script überprüft erst, ob ein Benutzer eingegeben wurde.
Wenn nein, wird ein Header zur eingabe gesendet und das Script abgebrochen.
Wenn ja, wird die Array mit den Benutzername/Passwort-Kombinationen abgeklappert.
Ist ein Treffer vorhanden, wird $allow auf true gesetzt.
Nach dem Abklappern wird noch überprüft, ob $allow immer noch false ist.
Wenn ja, wird eine Meldung ausgegeben und das Script abgebrochen.
Wenn nein, wird die Überprüfung ohne Abbruch durchlaufen.
Da vorher nichts ausgegeben wurde, kommt jetzt der Seiteninhalt zum User.

PS. Lese die Benutzernamen und Passwort nach Möglichkeit aus einer Datenbank aus.
So kannst du dem User ermögliches, sein Passwort zu ändern.
 
Zuletzt bearbeitet:
also wenn Safe_mode auf -> on gesetzt (PHP_ini) ist, dann funktioniert das mit PHP_AUTH_USER etc nicht.. (soweit ich weiss) ..versuchs mal mit

PHP:
$_SERVER["REMOTE_USER"];
 
@Daxi mh so wollt ichs auch machen, aber da hab ich ja wieder diese blöden variablen dabei.

@loki2002 ja supi das funktioniert komischerweise. Gibts das auch fürs Passwort?
 
Zurück