Comment démarrer une session de php

La clé pour utiliser les sessions PHP est le session_start () fonction. Tu appelles session_start () sur chaque page et ensuite avoir accès à tous les éléments de la $ _SESSION tableau.

Il peut sembler un peu d'un drôle de nom pour la fonction, session_start (), parce que sur la plupart des pages que vous voulez vraiment juste pour poursuivre la session et accéder aux variables qui sont là. Mais en réalité, session_start () fait les deux: Il commence une nouvelle session en cas de besoin et continue une session existante, le cas échéant.

La session_start () fonction est appelée simplement comme ceci:

lt; phpsession_start () - // Autres déclarations PHP ici>?

Voici le code pour quelques pages qui suivent lorsque vous avez accédé à la première page de l'application. Cela montre l'utilisation de la session_start () fonction, puis la création d'une variable pour tenir le temps d'accès initial.

Voici le code de la première page, appelée page1.php.

? lt; phpsession_start () - $ _ SESSION ['accessTime'] = date ("M / D / Y g: i: SA") - print "Ceci est page 1
"-print" Vous avez accédé à la demande: ". $ _SESSION ['accessTime'] - print"
Continuer à la page suivante
»->

Lorsqu'on regarde dans un navigateur, la page ressemble à la suivante:

image0.jpg


La page suivante dans l'application commence alors la session et peut accéder à toutes les variables déjà définies dans la session. Voici le code pour la deuxième page, page2.php.

lt;? phpsession_start () - print "Ceci est la page 2
"-print" Vous avez accédé à la demande: ". $ _SESSION ['accessTime'] - print"
Continuer à la page suivante
»->

Notez que dans le code de la variable $ _SESSION ['AccessTime'] est pas défini encore, mais seulement accessible après la session est démarrée. Lorsque vous êtes sur page1.php et cliquez sur le lien pour accéder à la page suivante, vous obtenez une page comme celle-ci:

image1.jpg

Vous pouvez stocker à peu près tout dans une session, mais vous devez être conscient que la session peut, et parfois ne disparaissent pour une variété de raisons. Une raison d'une séance pourrait disparaître est qu'il fois sur. Si les utilisateurs sont assis sur une page pendant trop longtemps, la session pourrait ne pas être là quand ils commencent à utiliser de nouveau l'application.

La conséquence pratique de la session disparition est que toutes les variables que vous avez déjà définies disparaissent également. Par conséquent, il est recommandé de vérifier si la session contient les valeurs que vous attendez avant de les utiliser.

Il ya deux façons de le faire. Une façon serait de vérifier toutes les variables avant de les accéder. Par exemple, vous pouvez modifier le code pour vérifier la $ _SESSION ['AccessTime'] la variable avant de l'utiliser en production.

? lt; phpsession_start () -if (! isset ($ _ SESSION ['accessTime'])) {mourir (en-tête ("Location: page1.php")) -}imprimer "Ceci est la page 2
"-print" Vous avez accédé à la demande: ". $ _SESSION ['accessTime'] - print"
Continuer à la page suivante
»->

Cette fiche a ajouté le code suivant:

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

L'emplacement de ce code est importante. Parce que ce code doit envoyer un en-tête HTTP, il doit apparaître avant toute autre sortie. Ainsi par exemple, si ce code est apparu en dessous de la sortie "Ceci est la page 2", il ne serait pas travailler parce que les têtes ont déjà été envoyés. Le code apparaît avant toute sortie, mais aussi important, apparaît après la session_start () fonction.

La meilleure pratique consiste à vérifier l'existence de variables de session avant de les utiliser, comme vient de le montrer. Cependant, il peut être assez lourde pour vérifier toutes les variables que vous pouvez utiliser dans une grande application. Avec cela à l'esprit, une autre option est de définir une variable globale de session et vérifier son existence plutôt que chaque variable individuellement. Voici comment faire.

Voici une version mise à jour du code, page1.php. Dans ce code, il ya une seule addition, une nouvelle variable de session appelée appStarted.

? lt; phpsession_start () -$ _SESSION ['AppStarted'] = vrai-$ _SESSION ['AccessTime'] = date ("M / D / Y g: i: SA") - print "Ceci est page 1
"-print" Vous avez accédé à la demande: ". $ _SESSION ['accessTime'] - print"
Continuer à la page suivante
»->

Vous pouvez ensuite modifier d'autres pages dans l'application pour vérifier l'existence de cette variable, comme dans le changement noté.

? lt;! phpsession_start () - if (isset ($ _ SESSION ['appStarted'])) {Die (header ("Location: page1.php")) -} print "Ceci est la page 2
"-print" Vous avez accédé à la demande: ". $ _SESSION ['accessTime'] - print"
Continuer à la page suivante
»->

» » » » Comment démarrer une session de php