Sessionproblem

Wolfsbein

Erfahrenes Mitglied
Hallo
ich habe ein kleines Problem mit meiner Session. Meine Seite läuft fast komplett über index.php und den Querystring. Der Besucher kommt also auf index.php sieht sich die Seite an (alles ohne Session) und beschließt dann sich einzuloggen ->login.php -> index.php.
Jetzt das Problem: Bei der Zurückleitung auf index.php muss ich ja mit session_start() die Session weiterlaufen lassen. Wie schreibe ich das also am besten in der Datei index.php wenn ich unterscheiden muss ob der Benutzer eingeloggt ist oder nicht.
PHP:
if(isset($_SESSION['myVar'])) {//....}
Geht ja nicht, da ich dazu erst die Session starten muss. Danke.
 
Auf der vorherigen Seite hast du die Session ja gestartet, wie wärs wenn du da diese if Bedingung machst, und je nachdem ob er eingeloggt ist oder nicht, irgendwas in die URL packst?
Muss ja nicht unbedingt $loggedin heißen, sondern irgendwas fiktives, womit der User selbst nix anfangen kann, damit keiner seine Spielchen treibt ;)
 
Das wäre natürlich möglich, wiederspricht aber total der Sessiontheorie. Da könnte ich die Session ja immer per SID weitergeben und auf SID überprüfen, was aber die Serverperformance in den Keller gehen lässt.
 
Okay...also...

du machst auf deiner Index-Seite einfach mal generell session_start(); ... das brauchst du später sowieso...

und dann guckst du einfach per simpler If-Abfrage ob ein bestimmter Sessionwert da ist, also zum Beispiel per session_is_registered, und wenn sie da ist, dann ist er eingeloggt, und du zeigst ihm die Inhalte für die eingeloggten...
 
Genau so habe ich es im Moment. Nur wenn man sich jetzt einloggt, dann muss ich erst die Session löschen und dann die neue starten. Anders gehts nicht?
 
wieso musst die eine Session dafür löschen? Es dürfte doch gar keine gefüllte vorhanden sein....selbst wenn eine da ist, dann wird diese halt verwendet, und in diese die SessionWerte reingeschrieben...dafür braucht man doch keine neue Session?!?
 
Naja wenn ich in login.php eine neue starte und eine leere von index.php vorhanden ist dann schon. Aber egal wenn das geht und keine größeren Sicherheitsprobleme macht, dann lass ich es einfach so.
 
wie startest du denn eine neue Session? session_start() nutzt bei einer schon vorhanden SessionID automatisch die vorhandene...wenn die leer ist, also noch keine Sessionwerte registriert worden sind, dann kannst du diese ja einfach benutzen...und halt mit Werten vollschreiben...

sollte die Session allerdings schon Werte enthalten, dann musst du sie natürlich löschen....
 
Zurück