PHP sessions

De Cacauet Wiki
Dreceres ràpides: navegació, cerca


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

...