 |
| Hinweise |
Willkommen im TP-Hilfe-Forum!Dies ist ein Forum zu den Themen Photoshop, Dreamweaver, Flash, Selbständigkeit und mehr, in dem Du Hilfe, Anleitung oder eine Lösung zu Deinen Problemen erhältst. Aktuell bist Du in unseren Foren als Gast mit reinen Leserechten unterwegs. Wenn Du Dich registrierst, kannst Du eigene Themen verfassen, deine Frage stellen und privat mit anderen TPlern kommunizieren. Weitere Foren werden zugänglich, und Du wirst – falls gewünscht – per Mail über neue Beiträge informiert. Die Registrierung ist schnell und kostenlos. Sollten bei der Registrierung Fragen auftauchen, reicht ein Klick in unsere Hilfe - Häufig gestellte Fragen oder eine kurze Mitteilung an das Support-Team. Viel Spaß bei Traum-Projekt.com |
07.01.2006, 14:38
|
#1
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Oberbayern
|
Authentifiziert oder nicht?
Kann man eigentlich mit PHP auch außerhalb eines per .htaccess-Datei kennwortgeschützten Verzeichnisses feststellen, ob sich ein Benutzer authentifiziert hat?
|
|
|
07.01.2006, 16:36
|
#2
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Die Authentifizierung findet nicht in PHP statt, sondern auf dem Server, abgelegt wird das in einer Session. Ob man die in PHP auslesen kann, bezweifel ich.
Du kannst allerdings in eine PHP-Session das erfolgreiche Betreten der Seite schreiben, das gilt auch ausserhalb es Verzeichnisses.
|
|
|
07.01.2006, 16:38
|
#3
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Oberbayern
|
Danke. Wie mache ich sowas?
|
|
|
07.01.2006, 17:04
|
#4
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
indem z.B. am Anfang der Seite steht
PHP-Code:
session_start();
$_SESSION['ich_bin_drin']=1;
Das session_start(); muss dann aber bei jeder Seite als erstes stehen, sonst geht die Session verloren. Abfragen kannst Du das dann
PHP-Code:
if(isset($_SESSION['ich_bin_drin'])) {
// aha, user ist authentiziert
}
|
|
|
07.01.2006, 17:07
|
#5
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Oberbayern
|
Hey, so kompliziert ist das ja gar nicht. Werd' ich gleich mal ausprobieren. 
|
|
|
08.01.2006, 20:10
|
#6
|
|
TP-Senior
Registriert seit: Jan 2003
Ort: Darmstadt
|
Zitat:
|
Die Authentifizierung findet nicht in PHP statt, sondern auf dem Server, abgelegt wird das in einer Session. Ob man die in PHP auslesen kann, bezweifel ich.
|
stimmt nicht wirklich, http authentifizierungen werden nirgends abgelegt. es wird bei jeder anfrage eine neue authentifizierung verlangt, solange man innerhalb eines geschützten bereiches anfragt.
in einem nichtgeschützten bereich erwartet der server keine authentifizierung, demnach ist der client auch nicht gezwungen, eine mitzusenden. also im endeffekt musst du das dann so machen, wie es steffen erläutert hat.
__________________
forenregeln - 3.d) ... richtige groß- und kleinschreibung benutzen ...
|
|
|
08.01.2006, 20:31
|
#7
|
|
TP-Supporter
Registriert seit: Dec 2005
|
Zitat:
|
Zitat von giv
stimmt nicht wirklich, http authentifizierungen werden nirgends abgelegt. es wird bei jeder anfrage eine neue authentifizierung verlangt, solange man innerhalb eines geschützten bereiches anfragt.
|
hm, http authentifizierung != authentifizierung per apache + htaccess ?!
ich schätze in letzterem fall wird auf jeden fall etwas auf dem server angelegt.
|
|
|
08.01.2006, 20:46
|
#8
|
|
TP-Senior
Registriert seit: Jan 2003
Ort: Darmstadt
|
1. ja
2. "Im Kern ist HTTP ein zustandsloses Protokoll. Das bedeutet auch, dass nach erfolgreicher Datenübertragung die Verbindung zwischen den beiden Kommunikationspartnern nicht aufrecht erhalten werden muss. Sollen dann weitere Daten übertragen werden, muss zunächst eine weitere Verbindung aufgebaut werden. Auch ein zuverlässiges Mitführen von Sitzungsdaten kann erst auf der Anwendungsschicht, z.B. durch Cookies, implementiert werden."
(Quelle: http://de.wikipedia.org/wiki/Http)
unten im angegebenen artikel findest du auch links zum rfc, da kannst du jedes detail nachlesen.
die erwähnte anwendungsschicht wäre z.b. ein php script, wie es steffen angegeben hat.
du kannst natürlich aber immer im http header der anfrage nachschauen, ob eine authentifizierung mitgesendet wurde. im falle des apache und php kannst du das einfach durch überprüfen der servervariablen $_SERVER['PHP_AUTH_USER'] und $_SERVER['PHP_AUTH_PW'] machen. ich bin aber im moment überfragt unter welchen apache bzw. php versionen/einstellungen diese variablen verfügbar sind.
__________________
forenregeln - 3.d) ... richtige groß- und kleinschreibung benutzen ...
|
|
|
08.01.2006, 21:22
|
#9
|
|
TP-Specialist
Registriert seit: Nov 2004
Ort: Oberbayern
|
Zitat:
|
Zitat von giv
du kannst natürlich aber immer im http header der anfrage nachschauen, ob eine authentifizierung mitgesendet wurde. im falle des apache und php kannst du das einfach durch überprüfen der servervariablen $_SERVER['PHP_AUTH_USER'] und $_SERVER['PHP_AUTH_PW'] machen. ich bin aber im moment überfragt unter welchen apache bzw. php versionen/einstellungen diese variablen verfügbar sind.
|
Die beiden Variablen stehen allerdings nur im kennwortgeschützten Bereich zur Verfügung.
|
|
|
08.01.2006, 23:43
|
#10
|
|
TP-Special Mod
Registriert seit: Feb 2005
Ort: Haan / NRW
|
Danke giv für die weiterführenden Infos. Ich weiss aus eigener Erfahrung, das die HTTP-Authentifizierung bei einem geschütztem Verzeichnis nicht erneut abgefragt wird, wenn man das Verzeichnis verlässt und dann wieder betritt - also wird je nach Browsereinstellung auch dies im Cookie abgelegt.
Ausserhalb des Verzeichnisses die Authentifizierung abzufragen kann aber nur gehen, wenn man selber sich das in irgendeiner Form merkt, und dafür bietet sich Session an, so hat man auf jeden Fall was zuverlässiges, ohne in den Authentifizierungsprozess selbst eingreifen zu müssen.
|
|
|
09.01.2006, 02:56
|
#11
|
|
TP-Senior
Registriert seit: Jan 2003
Ort: Darmstadt
|
jede http anfrage, also jeder klick auf einen link oder jedes abschicken eines formulars, auf einen per .htaccess geschützten bereich muss im header die authentifizierungsdaten enthalten. selbstverständlich übernimmt dies der browser, sonst müsste man die ja jedes mal neu eintippen  . in der devbar für den ff kann man diese funktionalität des browser jedoch mit 'clear http authentication' zurücksetzen und sofort wird man neu nach benutzername und passwort gepromptet.
ich stimm dir auf jedem fall hundert prozentig in allem zu, was du dukexp vorgeschlagen hast. lediglich die "session" auf dem server bei http authentifizierung war falsch, nur ne kleinigkeit - das wollt ich einfach nur korrigieren  .
nachtrag zu jede: stimmt nicht ganz, denn es ist natürlich auch vorgesehen, erstmal ohne authentifizierung anzufragen, falls man gar nicht weiß, dass der bereich geschützt ist. dann wird der server ordnungsgemäß antworten: 401 - unauthorized. dann schaut der browser im header dieser antwort im eintrag "www-authenticate" nach, wie er die authentifizierung senden soll (stichwort: basic/digest) usw.
__________________
forenregeln - 3.d) ... richtige groß- und kleinschreibung benutzen ...
|
|
|
09.01.2006, 03:02
|
#12
|
|
TP-Senior
Registriert seit: Jan 2003
Ort: Darmstadt
|
ach ja, wenn man sich für die http kommunikation, die dem normalen user ja durch die borwsersoftware weitgehend transparent erscheint, aber für den php web entwickler manchmal wichtig wird, interessiert, dann empfehle ich die firefox erweiterung livehttpheaders. das teil logt die kommunikation komplett mit und bietet viele features nach bestimmten kriterien zu filtern und zu sortieren. viel spass!
__________________
forenregeln - 3.d) ... richtige groß- und kleinschreibung benutzen ...
|
|
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
Thema durchsuchen |
|
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 01:40 Uhr.
|
 |