mikrocontroller.net

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


Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich will einige Seiten mit PW schützen. Dazu wollte ich folgenden Code 
nutzen
Code:
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])) {
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text, der gesendet wird, falls der Benutzer auf Abbrechen drückt';
    exit;
} else {
    echo "<p>Hallo {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>Sie gaben {$_SERVER['PHP_AUTH_PW']} als Passwort ein.</p>";
}

// Quelle: http://php.net/manual/de/features.http-auth.php
?>

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

Autor: Planlos (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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
foreach($_SERVER as $key_name => $key_value) 
{
    print $key_name . " = " . $key_value . "<br>";
}

anzeigen, ein REMOTE_USER ist nicht darunter...

Autor: Peter II (Gast)
Datum:

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

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

Autor: Tobi (Gast)
Datum:

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

so, Aufruf erfolgte
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?

Autor: Dirk D. (dicky_d)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.