PHP sessions
Referències:
Introducció
Una sessió de PHP ens permetrà enregistrar variables i reprendre-les més endavant (en posteriors visites o recàrregues de la web).
Donat que HTTP és un protocol stateless o sense estat (també es sol dir protocol REST), cada cop que visitem una pàgina web es crea una nova connexió i a l'acabar el diàleg client-servidor (request-response) es destrueixen les dades. Està pensat per optimitzar els recursos de servidor, però ens complica força el poder mantenir un procés que ocupi diverses visites a la aplicació web.
Per suplir aquest problema s'han inventat les sessions PHP. Utilizen les PHP cookies per aconseguir una variable $_SESSION que sigui persistent.
Exemples
Si mires la web de PHP Sessions a W3C Schools veuràs un exemple de l'ús de $_SESSION a través de diferents pàgines PHP.
Variable simple
En aquest exemple enregistrem a $_SESSION["usuari"] el nom del nostre usuari. Només el sobreescrivim quan enviem el formulari amb algun nom nou:
<?php // session_start va SEMPRE abans d'escriure res al document HTML session_start(); ?> <html><!-- ara ja podem escriure el què vulguem --> <body> <?php // pesquem el valor del formulari i l'introduim a la variable de sessió // (sempre i quan no estigui buit/"empty") if( isset($_POST["nomusuari"]) && !empty($_POST["nomusuari"])) { $_SESSION["usuari"] = $_POST["nomusuari"]; } // independentment de l'anterior if, donem la benvinguda al nostre usuari si ja tenim el seu nom if( isset($_SESSION["usuari"]) ) echo "<p>Benvingut/da ".$_SESSION["usuari"]."</p>\n"; ?> <form method="post"> <input type="text" name="nomusuari" /><br> <input type="submit" /> </form> <p>Opcions...</p> </body>
Exemple amb array
Posem pel cas que volem demanar una pizza i volem anar acumulant ingredients. Ho podriem fer així:
Exercicis
...