2017-09-21 2 views
0

Warum müssen wir alle Sitzungsvariablen nach dem Abmelden aufheben, warum nicht einfach die Sitzungsvariable zurücksetzen, um zu überprüfen, ob ein Benutzer angemeldet ist. Ich frage, weil ich 4 Seiten auf dem lokalen Host habe Wenn ein Benutzer an der vier Site im selben Browser angemeldet ist und ich die Sitzung zerstöre, wenn sich ein Benutzer abmeldet, wird der Benutzer automatisch von den verbleibenden 3 abgemeldet, da die Session-Zerstörung alle Sitzungen zerstört.Alle Sitzungsvariablen aufheben - lokale Websites

+2

Warum ist es notwendig, alle SESSION-Variablen beim Abmelden zu deaktivieren? –

+3

4 Websites, die alle dieselbe Sitzung für einen Benutzer verwenden? Ist das intensiv? – RiggsFolly

+0

Ja, ich meine, wenn wir viele Sitzungsvariablen haben, warum nicht einfach die Sitzungsvariable aufheben, die überprüft, ob der Benutzer eingeloggt ist. – d0uph1x

Antwort

0

Sie sollten nicht die gleichen Sitzung für vier verschiedene Websites verwenden, es sei denn, Sie wollenihnen verbunden sein, und alles klar zugleich usw.

Ihr Problem ist, dass in der Entwicklung, die ganze Websites befinden sich in einer Domäne, und derselbe Cookie wird für alle vier Sitzungen verwendet.

Der Weg, dies sauber zu behandeln, ist die Verwendung session_name(), die Sie für jede Site völlig unterschiedliche Sätze von Sitzungsdaten haben können, indem Sie für jeden Browser verschiedene Cookies an den Browser senden. Wenn Sie dann session_destroy() ausführen, werden nur die Details für die aktuelle Site gelöscht, nicht die anderen drei Sites.

Beachten Sie auch, dass dieses Problem mit ziemlicher Sicherheit nicht auf einer Produktionsstätte auftreten würde, da sich jede Site in einer anderen Domäne befindet, also separate Cookies und daher separate Sitzungen.

Wenn Sie alle vier Standorte wollen die gleiche Sitzung aus irgendeinem Grund zu teilen, und können, weil sie alle laufen auf der gleichen Domain in der Produktion, dann sind Sie ganz richtig, könnte man einfach ungesetzt einzelnen Variablen speichern Sie Zustände wie "in Site A als Benutzer X angemeldet, aber nicht in Site B eingeloggt". Dies ist jedoch sehr ungewöhnlich und Sie möchten wahrscheinlich nur session_name() verwenden, so dass Ihre Sitzungen auch während der Entwicklung getrennt sind.

+0

Vielen Dank..Ich verwende den Session_Name(); – d0uph1x

+0

bitte kann ich Sie auf Facebook hinzufügen – d0uph1x