Wie man eine PHP-Session starten

Der Schlüssel zum PHP-Sitzungen mit der session_start () Funktion. Sie rufen session_start () auf jeder Seite und haben anschließend Zugriff auf alle Elemente in der $ _SESSION Array.

Es könnte für die Funktion wie ein bisschen aus einer ungeraden Namen erscheinen, session_start (), weil auf den meisten Seiten wünschen Sie wirklich nur die Sitzung fortzusetzen und die Variablen zugreifen, die es gibt. Aber in der Realität, session_start () beides kann: Es beginnt eine neue Sitzung, wenn es sein muss und weiterhin eine vorhandene Sitzung gegebenenfalls.

Das session_start () Funktion wird einfach wie folgt aufgerufen:

? Lt; phpsession_start () - // Andere PHP-Anweisungen hier>?

Hier ist Code für ein paar Seiten, die verfolgen, wenn Sie die erste Seite der Anwendung abgerufen. Dies zeigt die Verwendung der session_start () Funktion und dann die Schaffung einer Variablen die anfängliche Zugriffszeit zu halten.

Hier ist der Code für die erste Seite, die so genannte page1.php.

? Lt; phpsession_start () - $ _ SESSION [ 'Zugriffszeit'] = date ( "M / d / Y g: i: sa") - print "Dies ist die Seite 1
"-Druck" Sie Zugriff auf die Anwendung auf: ". $ _SESSION [ 'Zugriffszeit'] - print"? "->

Wenn in einem Browser betrachtet, sieht die Seite wie folgt aus:

bild0.jpg

Auf der nächsten Seite in der Anwendung startet dann die Sitzung und alle Variablen bereits in der Sitzung festgelegt zugreifen können. Hier ist der Code für die zweite Seite, page2.php.

lt; phpsession_start () - print "Dies ist Seite 2
"-Druck" Sie Zugriff auf die Anwendung auf: ". $ _SESSION [ 'Zugriffszeit'] - print"? "->

Beachten Sie in dem Code, der die Variable $ _SESSION [ 'Zugriffszeit'] nicht wieder, sondern lediglich zugegriffen gesetzt, nachdem die Sitzung gestartet wird. Wenn Sie sind auf page1.php und auf den Link klicken, um zur nächsten Seite zu gelangen, erhalten Sie eine Seite wie diese:

image1.jpg

Sie können in einer Sitzung einfach alles speichern, aber man sollte diese Sitzung können sich bewusst sein, und manchmal ist, für eine Vielzahl von Gründen verschwinden. Ein Grund, warum eine Sitzung verschwinden könnte, ist, dass es mal aus. Wenn Benutzer zu lange auf einer Seite sitzen, könnte die Sitzung nicht da sein, wenn sie wieder mit der Anwendung beginnen.

Die praktische Bedeutung der Sitzung Verschwinden ist, dass alle Variablen, die Sie zuvor festgelegt haben, wird auch verschwinden. Daher ist es ratsam, zu überprüfen, ob die Sitzung, um die Werte enthält, die Sie mit ihnen vor erwarten.

Es gibt ein paar Möglichkeiten, dies zu tun. Eine Möglichkeit wäre, alle Variablen zu überprüfen, bevor sie zugreifen. Zum Beispiel könnten Sie den Code ändern, um das zu überprüfen $ _SESSION [ 'Zugriffszeit'] Variable vor es in Ausgabe zu verwenden.

? Lt; phpsession_start () -if (! isset ($ _ SESSION [ 'Zugriffszeit'])) {die (header ( "Location: page1.php")) -}print "Dies ist Seite 2

"-Druck" Sie Zugriff auf die Anwendung auf: ". $ _SESSION [ 'Zugriffszeit'] - print"? "->

Dieser Eintrag hinzugefügt, um den folgenden Code:

if (! isset ($ _ SESSION [ 'Zugriffszeit'])) {die (Header ( "Location: page1.php")) -}

Die Lage dieses Codes ist wichtig. Da dieser Code einen HTTP-Header senden muss, muss es vor einer anderen Ausgabe erscheinen. So zum Beispiel, wenn dieser Code erschien unter dem "Dies ist Seite 2" -Ausgabe, würde es nicht funktionieren, weil die Header bereits gesendet wurden. Der Code erscheint auf jeden Ausgang vor, sondern auch wichtig ist, erscheint nach dem session_start () Funktion.

Am günstigsten ist es für die Existenz von Session-Variablen zu überprüfen, bevor Sie sie verwenden, wie gerade gezeigt. Es kann jedoch sehr aufwendig werden, alle Variablen zu überprüfen, die Sie in einer großen Anwendung verwenden können. Vor diesem Hintergrund ist eine weitere Möglichkeit einer globalen Session-Variable zu setzen und für seine Existenz überprüfen, anstatt jede individuell variabel. Hier ist, wie das zu tun.

Hier ist eine aktualisierte Version des Codes, page1.php. In diesem Code ist es eine einzige hinaus eine neue Session-Variable namens appStarted.

? Lt; phpsession_start () -$ _SESSION [ 'AppStarted'] = Echt-$ _SESSION [ 'Zugriffszeit'] = date ( "M / d / Y g: i: sa") - print "Dies ist die Seite 1

"-Druck" Sie Zugriff auf die Anwendung auf: ". $ _SESSION [ 'Zugriffszeit'] - print"? "->

Sie können dann andere Seiten in der Anwendung ändern für die Existenz dieser Variablen zu überprüfen, wie es in der Änderung zur Kenntnis genommen.

? Lt;! Phpsession_start () - if (isset ($ _ SESSION [ 'appStarted'])) {Die (Header ( "Location: page1.php")) -} print "Dies ist Seite 2
"-Druck" Sie Zugriff auf die Anwendung auf: ". $ _SESSION [ 'Zugriffszeit'] - print"? "->

Menü