venyl hat gesagt.:
Wenn er die Session erst nach einem erfolgreichen Login startet, kann er auch über einfach schaun ob eine Session existiert...
Schönes Thema...dazu hab ich auch gleich mal eine Frage, den ich habe mal gehört, das die session schon am anfang gestartet werden, wenn der headeran den Server gesendet werden muss, jedoch gehts auch wenn mans erst nach dem Login macht....
Wenn die session einmal gestartet ist, muss man sie nicht mehr Starten, jedoch warum ist das bei dem TuT von Karl Förster übers Loginsystem anders?
Ohne jetzt mal zu gucken ob das schon kommentiert wurde moechte ich das mal etwas zerlegen.
Dazu moechte ich aber, aus Gruenden die wohl im Laufe der Erklaerung offensichtlich werden duerften, die Reihenfolge der Punkte umdrehen.
venyl hat gesagt.:
Wenn die session einmal gestartet ist, muss man sie nicht mehr Starten, jedoch warum ist das bei dem TuT von Karl Förster übers Loginsystem anders?
Die Session muss bei jedem Aufruf eines Scripts neu gestartet werden. Dies gilt natuerlich nicht fuer includete Scripts, aber bei jedem Seitenaufruf muss die Session wieder gestartet werden.
venyl hat gesagt.:
Schönes Thema...dazu hab ich auch gleich mal eine Frage, den ich habe mal gehört, das die session schon am anfang gestartet werden, wenn der headeran den Server gesendet werden muss, jedoch gehts auch wenn mans erst nach dem Login macht....
session_start() muss wie z.B. header() und setcookie() ausgefuehrt werden bevor etwas an den Browser geschickt wird. Das liegt daran, dass in der Regel von session_start() ein Session-Cookie gesetzt wird, und dies ist eben im Header der Fall.
Wenn beim eigentlich Login-Vorgang nichts ausgegeben wird kann session_start() auch erst nach der Verifizierung des Users ausgefuehrt werden. Es muss also nicht am Anfang des Scripts stehen.
venyl hat gesagt.:
Wenn er die Session erst nach einem erfolgreichen Login startet, kann er auch über einfach schaun ob eine Session existiert...
Das Problem ist hier, dass man um zu pruefen ob eingeloggt wurde die Session starten muss. Man kann natuerlich auch ueberpruefen ob man eine SessionID per Cookie oder URL uebergeben bekommt, aber es ist meiner Meinung nach sicherer zu ueberpruefen ob die Session nicht leer ist als wenn man sich darauf verlaesst, dass die Session zuvor durch ein Login gestartet wurde wenn man entsprechende Daten bekommt. Diese Daten (Session-Cookie oder SessionID im URL) koennen ja auch gefaelscht werden. Um dann sicher zu sein, dass wirklich jemand mit dieser Session eingeloggt ist muesste man wieder ueberpruefen ob die Session nicht leer waere. Das ganze waere dann also sozusagen doppelt gemoppelt.
Dementsprechend kann man, meiner Meinung nach, immer eine Session starten, ob der User sich nun einloggen will oder nicht.
Ausserdem kann ja eine Session auch noch zu anderen Spielereien genutzt werden, auch ohne ueberhaupt Daten in der Session selbst zu speichern. Auf meiner Seite wird beim ersten Aufruf der Seite geprueft ob vom Browser Cookies und JavaScript unterstuetzt/akzeptiert werden. Dies wird zusammen mit der SessionID in der Datenbank festgehalten. Anhand dessen kann ich dann schon vor dem Login entscheiden ob ich ueberhaupt die Checkbox anbiete um ein Auto-Login-Cookie zu setzen. Nach dem Login kommt dann auch die JavaScript-Einstellung zum tragen, dadurch entscheide ich dann im Forum und den News ob die schicke Button-Leiste zur Formatierung angeboten wird oder nicht.