nutzererfassung
Binni
- programmiertechnik
Hallo zusammen,
sagt mal, wie erkennt dieses Forum eigentlich seine eingelogten Nutzer? Wie werden hier die Informationen zwischen Client und Nutzerdaten hergestellt?
Danke und viele Grüße - Binni
Hello,
sagt mal, wie erkennt dieses Forum eigentlich seine eingelogten Nutzer? Wie werden hier die Informationen zwischen Client und Nutzerdaten hergestellt?
Über ein WWW-Authenticate: Basic realm="SELFHTML Forum"
Und Dein Browser sendet CN und PW jedes Mal mit, daran bist Du dann am Server erkennbar.
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
danke
Über ein WWW-Authenticate: Basic realm="SELFHTML Forum"
und gibts da ein gutes tutorial dazu, wo man dahintersteigen kann, wie soetwas funktinert?
Viele Grüße - Binni
hab schon was gefunden, danke :)
http://www.usegroup.de/software/phptutorial/ausgabefunktionen.html#authenticate
Viele Grüße - Binni
Hello,
Der Server sendet einen Header, der zur Authentifizierung auffordert.
Als Einstirg könnte Dir diese Seite dienen:
http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=Authentication
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hello,
Der Server sendet einen Header, der zur Authentifizierung auffordert.
Als Einstirg könnte Dir diese Seite dienen:
http://de.selfhtml.org/navigation/suche/index.htm?Suchanfrage=Authentication
Die Seite war doch nicht so das Pralle :-(
Mit PHP taugt diese hier etwas: http://de.php.net/features.http-auth
Und etwas basisorientierter erstmal für den Server
http://httpd.apache.org/docs/2.0/howto/auth.html
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
hallo,
Der Server sendet einen Header, der zur Authentifizierung auffordert.
und damit das ganze funktioniert, muss php als apache-modul laufen, hab ich jetzt gelesen und so wie ich mir das anschaue hab ich da pech oder?
schaut mal bitte:
root.esc-now.de/test.php
Viele Grüße - Binni
Hello,
Der Server sendet einen Header, der zur Authentifizierung auffordert.
und damit das ganze funktioniert, muss php als apache-modul laufen, hab ich jetzt gelesen und so wie ich mir das anschaue hab ich da pech oder?
schaut mal bitte:
root.esc-now.de/test.php
Sieht so aus:
Server API CGI
Da kannst Du aus PHP angeblich nicht auf die Credentials
$_SERVER['PHP_AUTH_USER'] und $_SERVER['PHP_AUTH_PW']
zugreifen.
Aber in dem Array http://de.php.net/manual/de/function.getallheaders.php
müssten die beiden Werte trotzdem enthalten sein.
Der Client kann sie ja trotzdem senden.
Ich werde das gleich mal ausprobieren, habe aber PHP nicht als CGI zur Verfügung, bzw. ich habe den Apachen nicht (nicht mit PHP als Modul).
Vielleicht klappt es, wenn ich PHP einfach als CGI deklariere mit einer anderen Dateiendung?
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Hello,
Aber in dem Array http://de.php.net/manual/de/function.getallheaders.php
müssten die beiden Werte trotzdem enthalten sein.
Scheinbar auch keine gute Idee.
Nun steht's drin im Manual, dass das auch nicht gehen soll.
Aber irgendwo müssen doch die Header des Requests auch bei der PHP-CGI-Version bleiben...
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Moin!
Aber in dem Array http://de.php.net/manual/de/function.getallheaders.php
müssten die beiden Werte trotzdem enthalten sein.Scheinbar auch keine gute Idee.
Nun steht's drin im Manual, dass das auch nicht gehen soll.Aber irgendwo müssen doch die Header des Requests auch bei der PHP-CGI-Version bleiben...
$_SERVER['REMOTE_USER'] ist der authentifizierte Username aus der Benutzerdatenbank.
Die Originalheader sind nicht notwendig. Insbesondere weil PHP als CGI den Server nicht dazu veranlassen kann, dem Browser die Header zu schicken, die den Passwortdialog anwerfen.
Man muß also zwingend due Authentifizierung im Webserver konfigurieren (im Apache z.B. mit .htaccess) - und ist dementsprechend gezwungen, auch die Benutzerdatenbank auf diesem externen Wege abzufragen. PHP erhält dann nur die Requests, bei denen die Benutzerdaten korrekt sind.
- Sven Rautenberg
echo $begrüßung;
Aber irgendwo müssen doch die Header des Requests auch bei der PHP-CGI-Version bleiben...
Im Server. Wenn der sie nicht rausrückt, sprich: sie in irgendwelchen Umgebungsvariablen ablegt, hat sie kein CGI-Programm zur Verfügung.
Es gibt $SERVER['REMOTE_USER']. Wenn man die Authentifizierung dem Webserver überlässt, hat man darin wenigstens den Benutzernamen.
echo "$verabschiedung $name";
hallo,
Es gibt $SERVER['REMOTE_USER']. Wenn man die Authentifizierung dem Webserver überlässt, hat man darin wenigstens den Benutzernamen.
d.h. wenn ich das richtig verstanden habe, nehme ich bei der CGI-Version $SERVER['REMOTE_USER'], habe damit den Benutzernamen denn ich dan in meiner DB wiederfinde und gucken ob der Nutzer rein darf macht dann der Apache per htaccess
alles richtig soweit? - if($question){echo "Juhu!";} else{echo "Was ist falsch?";}
Viele Grüße - Binni
Hello,
Es gibt $SERVER['REMOTE_USER']. Wenn man die Authentifizierung dem Webserver überlässt, hat man darin wenigstens den Benutzernamen.
d.h. wenn ich das richtig verstanden habe, nehme ich bei der CGI-Version $SERVER['REMOTE_USER'], habe damit den Benutzernamen denn ich dan in meiner DB wiederfinde und gucken ob der Nutzer rein darf macht dann der Apache per htaccess
Wenn ich das richtig verstanden habe, hat man in $_SERVER['REMOTE_USER'] nur dann den Benutzernamen, wenn der Server vorher die Authentifizierung durchgeführt hat. Dann ist der Username auch vertrauenswürdig, vorausgesetzt, er sit in der Authentifizierungsdatei Unique.
Bliebe jetzt nur die Frage, ob es nun das Basic Auth Verfahren des Apachen sein darf, dass diese Authentifizierung bereitstellt...
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
hallo,
Dann ist der Username auch vertrauenswürdig, vorausgesetzt, er sit in der Authentifizierungsdatei Unique.
was ist das für eine Datei und wo is die?
Viele Grüße - Binni
Hi Binni,
Der Server sendet einen Header, der zur Authentifizierung auffordert.
und damit das ganze funktioniert, muss php als apache-modul laufen, hab ich jetzt gelesen und so wie ich mir das anschaue hab ich da pech oder?
Ja, mit PHP über CGI geht das nicht - du kannst zwar mit PHP eine Authentifizierung beim Clienten auslösen, der fragt seinen User dann nach Benutzername und Passwort, der Browser sendet das an den Server.
Allerdings ist dann irgendwie die Kommunikation zwischen Apache und PHP nicht möglich, weil dies zwei verschiedene Programme sind und eine Kommunikation wäre aber erforderlich, damit klargestellt werden kann, ob die Zugangsdaten jetzt richtig sind oder nicht.
Es gibt aber andere Möglichkeiten - du kannst z.b. mit einer .htaccess Datei einen Zugriffschutz konfigurieren, so wie du es sonst auch für geschützte Bereiche/Ordner machst. Die Username und Passwort Verwaltung machst du dann über die .htusers Datei, das Kontrollieren der Daten übernimmt der Apache damit für dich und welcher User gerade die Seite aufruft steht dann in PHP in $_SERVER['REMOTE_USER'];
MfG, Dennis.