Frage zu Sessions

SilentWarrior

Erfahrenes Mitglied
Hoi Folks

Hab mal folgendes Tutorial durchgelesen:

http://www.develnet.org/26.html

Hab's soweit auch (einigermassen) kapiert. Nur meine Frage jetzt: Wo liegt der Vorteil gegenüber einer einfachen Datenbank mit allen Usern, die online sind? Ich meine, Sessions arbeiten ja scheinbar auch mit Cookies, und wenn die nicht aktiviert sind ist man genauso am A**** wie mit jeder anderen Methode. Wo bitte liegt also der Vorteil von Sessions? thx 4 replies.

Gr¨sse und so ;-)

SilentWarrior
 
Wenn keine Cookies gesetzt werden können, muss eben dafür gesorgt werden, dass die Session-ID anderweitig übergeben wird, z.B. über Links oder Formulare.

Der Vorteil von Sessions ist der, dass
einem viel Arbeit abgenommen wird. Man braucht sich nicht mehr darum kümmern, bestimmte Variablen in der Datenbank zu speichern und sie später wieder abzurufen. Auch das Löschen ungültig gewordener Sessions wird von alleine erledigt.

Natürlich könntest du das auch selber ein Session-Management schreiben, aber wozu? Wenn es ein derartiges Feature schon gibt, sollte man es auch nutzen... man muss ja nicht immer das Rad neu erfinden.
 
Am Rande:
Die Sessioninformationen werden auf dem Server im session_tmp-Verzeichnis gespeichert. Wenn man nun die Session-ID hat, hat man automatisch (wird von PHP zur verfügung gestellt) die Daten der ID, die ja auf dem Server gespeichert werden.
In den Cookies, die gespiechert werden ist AFAIK nur die SessionID drin.
 
hm ne krass schwierige frage. wegen dem blöden register_globals off

also früher konnte man die existenz einer session mit session_is_registered() prüfen. da des jetzt aber nimmi geht wollte ich fragen wie man das jetzt neu macht. hab keine vernünftige erklärung gefunden, net mal bei php.net. und dann noch ne frage in dem zusammenhang. angenommen auf meiner seite schaut das so aus:
PHP:
session_start();
aber der user kommt grad von einer anderen seite wo auch sessions verwendet werden. also das problem ist ja dass session_start net zwingend ne neue session startet. jetzt wollte ich fragen wie ich das sicher mach dass ich da keine sessions von anderen seite "klau".

hoffe, mich verständlich gemacht zu haben :)

Gr¨sse und so ;-)

SilentWarrior

//edit jop und schon taucht das nächste problem auf. wegen session.save_path.

auszug aus der php-ini-datei:
Note: Windows users have to change this
; variable in order to use PHP's session functions.
super... was muss ich denn da jetzt genau ändern? momentan steht da noch "/tmp", was ja scheinbar auch gut wäre wenn billy-boy net wäre. :rolleyes:
 
Zuletzt bearbeitet:
Du kannst keine Sessions von anderen Seiten übernehmen.
Stell dir das mal vor!

Zum 2.:
Also bei mir steht bei session.save_path ein absoluter Pfad.
 
nuinmundo: zum zweiten erstmal thx. werd's ausprobieren.

zum ersten: fremde seiten? was versteht man (bzw. php) denn genau darunter? gleiche domain? gleicher ordner? erklär das mal etwas genauer. bzw. das ganze prinzip. wie du ja siehst, kapier ich offensichtlich noch net all zu viel davon. :rolleyes:

gr¨sse und so ;-)

SilentWarrior
 
Sessions müssten pro Root-Verzeichnis sein. D.h. wenn jemand von http://www.seite1.de kommt, auf der natürlich Sessions genutzt werden und dann auf http://www.seite2.de geht, werden neue Session-Datas angelegt.
Hmm, is schwierig (für mich jedenfalls) zu erklären.
Jedenfalls kannst du im Normalfall nicht auf die Sessions zugreifen, die von einer anderen Seite sind.
 
Zurück