Für $_SERVER php.ini eintrag?
robert0
- php
Hallo,
ich will eine php-datei erstellen und das Array $_SERVER[AUTH_USER] abfragen... jedoch steht in meiner phpinfo nur no value. muss ich in der php.ini dazu igendwelche änderungen vornehmen oder bei meinem iis?
gruß
robert
Mahlzeit,
ich will eine php-datei erstellen und das Array $_SERVER[AUTH_USER] abfragen...
Erstens vermute ich, dass Du keine Konstante namens "AUTH_USER" definiert hast, der PHP-Interpreter deshalb nicht weiß, was er Dir liefern soll und Du eigentlich $_SERVER['AUTH_USER']
meintest ... und zweitens wundert mich, dass Du davon ausgehst, dort ein Array zu finden - normalerweise sollte dort nur ein String stehen.
MfG,
EKKi
jo meinte auch $_SERVER['AUTH_USER']
aber um mir das ausgeben lassen zu können, muss ich meine php.ini editieren?
robert
Mahlzeit,
aber um mir das ausgeben lassen zu können, muss ich meine php.ini editieren?
Nein, nicht dass ich wüsste. Wenn natürlich dem Server kein authentifizierter Benutzer bekannt ist, steht dort auch kein Wert drin ...
MfG,
EKKi
Nein, nicht dass ich wüsste. Wenn natürlich dem Server kein authentifizierter Benutzer bekannt ist, steht dort auch kein Wert drin ...
das heißt: da müsste eig meine AD user-id drin stehen? tut es aber nicht, woran könnte das liegen?
robert
Mahlzeit,
das heißt: da müsste eig meine AD user-id drin stehen? tut es aber nicht, woran könnte das liegen?
Keine Ahnung, IIS ist böse ... verwende einen vernünftigen Webserver, dann klappt's bestimmt auch. ;-)
Ein PHP-Problem ist es jedenfalls nicht - deshalb der Themenwechsel.
MfG,
EKKi
Hi,
tut es aber nicht, woran könnte das liegen?
// Autorisierter (eingeloggter) Username
define('AUTH_USER',(!empty($_SERVER['REMOTE_USER']))?$_SERVER['REMOTE_USER']:((!empty($_SERVER['PHP_AUTH_USER']))?$_SERVER['PHP_AUTH_USER']:''));
Gruß, Cybaer
Hello,
das heißt: da müsste eig meine AD user-id drin stehen? tut es aber nicht, woran könnte das liegen?
Nein, normalerweise dürfte diese Variable überhaupt nicht vorhanden sein, es sei denn, der Client hat Anmeldedaten mitgeschickt. Das Tut er aber üblicherweise erst, wenn er durch einen entsprechenden Statuscode vom Server dazu aufgefordert wurde und Du dann das berühmte Anmeldefenster ausgefüllt hast.
Den Authentifizierungsdialog am Client kannst Du i.d.R. dadurch hervorrufen, dass Du ihm diese Header sendest:
Header("WWW-authenticate: basic realm="Privater Bereich"");
Header("HTTP/1.0 401 Unauthorized");
Wenn Du dann darauf antwortest, sollte auch im Script die Variable für $_SERVER['AUTH_USER'] oder die für $_SERVER['REMOTE_USER'] vorhanden sein.
Ein harzliches Glückauf
Tom vom Berg
echo $begrüßung;
das heißt: da müsste eig meine AD user-id drin stehen? tut es aber nicht, woran könnte das liegen?
Nein, normalerweise dürfte diese Variable überhaupt nicht vorhanden sein, es sei denn, der Client hat Anmeldedaten mitgeschickt. Das Tut er aber üblicherweise erst, wenn er durch einen entsprechenden Statuscode vom Server dazu aufgefordert wurde und Du dann das berühmte Anmeldefenster ausgefüllt hast.
Man kann den IIS auf NTLM-Authentifizierung konfigurieren. Der Authentifizierungsvorgang läuft dann von User und PHP-Script unbemerkt zwischen IIS und IE ab. Der FF kann zwar auch NTLM, muss dazu aber die Windows-Anmeldedaten vom Benutzer erfragen.
echo "$verabschiedung $name";
Hello,
Man kann den IIS auf NTLM-Authentifizierung konfigurieren. Der Authentifizierungsvorgang läuft dann von User und PHP-Script unbemerkt zwischen IIS und IE ab. Der FF kann zwar auch NTLM, muss dazu aber die Windows-Anmeldedaten vom Benutzer erfragen.
Das habe ich zum Thema gefunden...
http://www.innovation.ch/personal/ronald/ntlm.html
http://www.phpcs.com/code.aspx?ID=25272
Soweit ich das sehe, werden da nicht die Variablen $_SERVER['AUTH_USER'] oder $_SERVER['REMOTE_USER'] angelegt und gefüllt, sondern die Variable $_SERVER['Authorization']. das aber auch nur, wenn eine Benutzeranmeldung stattgefunden hat.
siehe auch http://www.softgames.de/forum/frage115506.html
Ein harzliches Glückauf
Tom vom Berg
echo $begrüßung;
Hello,
Man kann den IIS auf NTLM-Authentifizierung konfigurieren. Der Authentifizierungsvorgang läuft dann von User und PHP-Script unbemerkt zwischen IIS und IE ab. Der FF kann zwar auch NTLM, muss dazu aber die Windows-Anmeldedaten vom Benutzer erfragen.
Das habe ich zum Thema gefunden...
http://www.innovation.ch/personal/ronald/ntlm.html
http://www.phpcs.com/code.aspx?ID=25272
Solange man einen IIS hat, wie der OP, ist das beides überflüssig. Einfach den Haken bei Integrated Windows... setzen, und den bei Anonym... und Basic... raus.
Soweit ich das sehe, werden da nicht die Variablen $_SERVER['AUTH_USER'] oder $_SERVER['REMOTE_USER'] angelegt und gefüllt, sondern die Variable $_SERVER['Authorization'].
In einem Out-of-the-box-IIS (plus Haken) werden AUTH_USER und REMOTE_USER gefüllt. $_SERVER['Authorization'] dagegen existiert nicht.
das aber auch nur, wenn eine Benutzeranmeldung stattgefunden hat.
Das ist die Voraussetzung. Zur Not prüft man das mit dem FF. Der FF verlangt ja explizit nach den Daten und macht das nicht im Hintergrund. Wenn keine Aufforderung kommt, gibt sich der IIS also ohne Anmeldung zufrieden. Der Fehler ist dann in der IIS-Konfiguration zu suchen.
Größtenteils unwichtig. Passende Haken setzen muss reichen.
echo "$verabschiedung $name";
Hallo
ich will eine php-datei erstellen und das Array $_SERVER[AUTH_USER] abfragen...
du meinst, wie bereits festgestellt, den Eintrag $_SERVER['AUTH_USER'].
jedoch steht in meiner phpinfo nur no value. muss ich in der php.ini dazu igendwelche änderungen vornehmen oder bei meinem iis?
Authentifizierung für Site bzw. Datei einstellen, siehe https://forum.selfhtml.org/?t=169939&m=1110305.
Freundliche Grüße
Vinzenz