Komplexes Session/Cookie Management

nullpunkt

Grünschnabel
Hi,

Ich habe jetzt 2 Tage gegooglet und unzählige Forenbeiträge gelesen.

Ich will eigentlich folgendes:
Wenn ein User Cookies akzeptiert, dann soll in der URL keine Session-ID stehen.
Wenn ein Benutzer keine Cookies akzeptiert, dann schon.

Ich möchte session.use_trans_sid auf null lassen, da die ID ja sonst überall erscheint.

mit output_add_rewrite_var() kann ich ja dann die session-id anhängen.

ihr seht also, ich hab mich schon damit befasst. aber ich kriegs nicht 100% fehlerfrei hin...

Hat irgendjemand n wirklich perfektes Login-Script, dass meine Beispiele abdeckt?
Oder gibts n ausführliches Tut das die ganzen Abfragen/Möglichkeiten abdeckt?

mfg Nullpunkt
 
Du musst erstmal ueberpruefen ob die Cookies aktiv sind, das speicherst Du am besten in der Datenbank zusammen mit der SessionID. Anhand dessen kannst Du dann entscheiden ob die SessionID angehaengt werden soll.
Ich koennte jetzt etwas komplexen Code posten wie ich das geloest hab, das Problem ist nur, dass sich das ganze ueber ca. 3 Files erstreckt.
 
danke euch beiden. ich hab die links geprüft und alles gelesen.
anscheinend scheint die klasse auf develnet.org nicht mehr da zu sein.

vielleicht stelle ich mach klarere fragen und erkläre wo genau ich hängen bleib.

als erstes starte ich die session mit session_start();
dann frage ich ab, ob cookies vorhanden sind mit if (!empty($_COOKIE[cookiename]))

falls bereits ein cookie vorhanden ist, ist das thema eh gegessen, da
mein script bereits so geschrieben wurde und .

falls keins vorhanden ist, gibts 2 möglichkeiten.
1) Er ist das erste mal auf meiner seite und hat deshalb keine.
2) Er akzeptiert keine Cookies.

Möglichkeit 1 ist auch egal, denn sobald er sich das erste mal einloggt werden ja cookies geschrieben. somit sind bei seinem 2ten besuch diese verfügbar. -> thema gegessen.

Bei Möglichkeit 2 gehts los:
Hier müssen die registrierten variablen, welche ich beim login-prozess mit session_register() gespeichert habe, über die URL weitergegeben werden (in form einer session-id)

Ich dachte ich mach das so:
PHP:
output_add_rewrite_var('session',session_id());

Wie kann ich die session jetzt laden auf der neuen page?
Ich meine aus irgendeinem Grund gebe ich diese ja un der URL weiter..

also muss ich da auf der neuen seite mit:
PHP:
session_start($_GET[session]);
arbeiten?

mfg nullpunkt
 
Nein musst du nicht, session start sucht sich die SID selber, ob Cookie oder Query-string, deshald reicht nur session_start()

mfg birnkammer
 
alles klar. somit muss der query aber bedingt PHPSESSID heissen nicht?
denn ich arbeite atm mit datei.html?session=xxxxyyyxxx

mfg nullpunkt
 
Warum setzt du denn nicht einfach beim Link die Konstante SID an die Links
z.B.:
<a href="next_page.php?<?php echo strip_tags (SID)?>">Weiter</a>
Dann must du nur nach auf next_page.php session_start() eingeben und die Session ist gestartet

Du kannst dir auch noch die Session-Referenz im PHP-Manual ansehen:
http://de3.php.net/manual/de/ref.session.php

mfg Birnkammer
 
Zurück