Rod: Zum Thema Seesion ID

Beitrag lesen

Hi Sven,

auch erstmal danke für diese supoer Antwort.

Falscher Ansatz: Wenn eine Seite ohne _Login_ aufgerufen wird, _dann_ soll man zum Login gelangen. Den Status "eingeloggt" schreibst du in deine Session-Daten.

Gut, mache ich. Komme weiter unten noch auf die Frage, wie denn? zurück :-) Weil die Idee mit dem "nicht ausgeloggt" hatte ioch auch schon, nur meine Lösung wäre sehr umständlich geworden. 'Bin halt nioch nicht so ein doller Programmierer, freue mich aber über eine so prima Unterstützung! :-)

Wahnsinnig umständlich. Und veraltet.

Aha :-(

Punkt 1: PHP liefert dir die Konstante "SID", welche Session-Name plus Session-ID enthält, sofern der aktuelle Seitenrequest nicht per Cookie diese Daten geliefert hat (wenn Sessions per Cookie möglich sind, ist SID leer).

Weiß ich ja, aber mit SID hat auf keine Art geklappt, die ich versucht hatte und ich hab keinen Schimmer, warum nicht.

Verwende also bitte diese Konstante:

echo "<a href="link.php?".SID."">Link</a>";

Mach ich und melde mich, wenns wieder nicht funtzt :-)

Punkt 2: Seit PHP 4.1 gibt es die superglobale Variable $_SESSION, in die man Werte einspeichern soll, die per Session auf jeder folgenden Seite wieder erscheinen sollen. session_register() soll nicht mehr verwendet werden.

Ok. Verwende ich nicht mehr. Wie bitte schreibt man denn in die $_SESSION die Daten rein?

Das ist aber genau der Punkt: Wenn irgendwas nicht geht - warum geht es nicht.

Sehe ich ja genauso, nur ich hab Tage mit der SID verbracht und irgendwann war ich schlichtweg entnervt :-(

So, kommt der Gast nun auf die Link-Seite, gehts so weiter:

if ($SESSID=="") {

Das hier ist aus zwei Gründen problematisch.

Also lieber so:

if (isset($_GET['SESSID'])) {

Aha :-)

Weiterleitungen müssen immer eine absolute URL enthalten, beginnend mit "http://". Der HTTP-Standard schreibt es zwingend vor.

Kann ich mich gerne dran halten, ich wußte es nur nicht :-)

Deswegen ja mein Vorschlag: Schau in den _Sessiondaten_ nach, ob der Benutzer sich schon mal eingeloggt hat. Wenn nein: Redirect zum Login.
Ach ja: Es wäre nicht schlecht, wenn du in die Session-Daten auch noch das aktuelle Datum und Uhrzeit reinschreibst, wenn der Zugriff erlaubt war (also angemeldeter Benutzer etc.). Dann kannst du nämlich am Anfang nicht nur prüfen, ob der Benutzer eingeloggt war, sondern auch, ob er nicht schon zu lange keine Anfrage mehr gestartet hat. Vergessenes Logout ist nämlich auch nicht gut.

Jups, und genau hier weiß ich nicht, wie. Ich werde mal im Netz stöbern gehen, ansonsten wäre weitere Hilfe nochmal nett.

Danke bis hierhin schonmal

Rod