Forum: PC-Programmierung PHP Login -> PHP_AUTH_USER nicht übergeben?


von Tobi (Gast)


Lesenswert?

Hallo,

ich will einige Seiten mit PW schützen. Dazu wollte ich folgenden Code 
nutzen
Code:
1
<?php
2
if (!isset($_SERVER['PHP_AUTH_USER'])) {
3
    header('WWW-Authenticate: Basic realm="My Realm"');
4
    header('HTTP/1.0 401 Unauthorized');
5
    echo 'Text, der gesendet wird, falls der Benutzer auf Abbrechen drückt';
6
    exit;
7
} else {
8
    echo "<p>Hallo {$_SERVER['PHP_AUTH_USER']}.</p>";
9
    echo "<p>Sie gaben {$_SERVER['PHP_AUTH_PW']} als Passwort ein.</p>";
10
}
11
12
// Quelle: http://php.net/manual/de/features.http-auth.php
13
?>

Nach Eingabe von Name/PW springt die Funktion immer wieder auf die 
Eingabemaske, sprich es scheint $_SERVER['PHP_AUTH_USER'] wird nicht 
übergeben. Im Netz habe ich gelesen, das könnte an PHP Einstellungen 
(php.ini?) liegen.
Könnt Ihr mir weiterhelfen, damit dieser einfache Code läuft?!

Danke und Gruß
Tobi

von Planlos (Gast)


Lesenswert?

Schau nach, ob
$_SERVER['REMOTE_USER']
gesetzt ist.

Wenn es eine Option ist: Lass den Passwort-Check vom Apache machen, da 
kannst du weniger Fehler unterbringen als in einem selbstgemachten 
PHP-Script.

von Tobi (Gast)


Lesenswert?

Planlos schrieb:
> Schau nach, ob
> $_SERVER['REMOTE_USER']
> gesetzt ist.

wo soll ich das finden bzw setzen - meinst Du bei den übergebenen 
Parametern?
Ich lass mir alle Parameter via
1
foreach($_SERVER as $key_name => $key_value) 
2
{
3
    print $key_name . " = " . $key_value . "<br>";
4
}

anzeigen, ein REMOTE_USER ist nicht darunter...

von Peter II (Gast)


Lesenswert?

Tobi schrieb:
> anzeigen, ein REMOTE_USER ist nicht darunter...

rufe einfach mal php_info auf, dann sieht auch auch noch andere 
Parameter.

von Tobi (Gast)


Lesenswert?

Peter II schrieb:
> rufe einfach mal php_info auf, dann sieht auch auch noch andere
> Parameter.

so, Aufruf erfolgte
1
echo phpinfo();

auch hier ist kein REMOTE_USER zu finden.

Ergänzend möchte ich noch anmerken, dass ich den Code sowohl beim 
Webhoster (www.7square.ch) als auch auf dem lokalen NAS-Webserver 
getestet habe.
Der gleiche Code funktioniert auf meinem NAS-Server, nicht aber beim 
Webhoster. Dies bringt mich wieder zurück auf die ursprüngliche Frage: 
ich muss doch sicher irgend etwas in der php.ini o.ä. setzten um die 
Funktion zu aktivieren?!
Nebenbei bemerkt: wo wäre die php.ini zu finden?

von Dirk D. (dicky_d)


Lesenswert?

Ob wo die hhtp-auth daten übergeben werden hängt von der 
webserver-konfiguration ab.
mit

    <?php
    print_r($GLOBALS);

Kannst du dir alles zeigen lassen was beim aktuellen Aufruf mitgekommen 
ist.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.