![]() |
|
||||||||||||||||
![]() |
||||||||||||||||
Pràctica |
![]() |
Exercicis
|
||||||||||||||
Introducció a les sessions | |||||||||||||||
En aquesta pràctica veurem:
|
|||||||||||||||
Treballant amb sessions | |||||||||||||||
Hem vist que els cookies ens permetien mantenir una informació de variables més enllà d'un únic script. Però hem vist també dues coses més:
Per tant, si l'usuari deshabilita aquesta possibilitat, es tanca la porta a aquest manteniment de valors entre scripts. A part d'això, també hi ha navegadors que no accepten cookies. El PHP proporciona un altre camí alternatiu per fer aquesta mateixa feina però d'una manera diferent: les variables de sessió. Es tracta de variables que estan disponibles, en qualsevol script, en el temps que l'usuari necessiti fer ús d'una aplicació. La sessió comença quan l'usuari es connecta a l'aplicació i s'acaba quan desconnecta, tanca el navegador o ha passat un temps (fixat pel sistema) sense que l'usuari interaccioni amb l'aplicació. Les variables de sessió, a diferència de les galetes, s'emmagatzemen en el servidor. Així, doncs, dins d'una sessió podem tenir un conjunt de variables que es mantenen a través dels diferents scripts d'una aplicació. Podem desar amb aquest sistema, per exemple, l'identificador d'un usuari, l'idioma preferent, un curs o grup, etc., i tenir-los disponibles en qualsevol script mentre no es tanqui la sessió. El PHP proporciona un seguit de funcions relacionades amb les sessions. |
|||||||||||||||
Sessions en acció | |||||||||||||||
![]() |
Veurem ara un exemple de com es mantenen els valors dins d'una sessió. En el primer fitxer obrirem un formulari en què hi entrarem unes dades que s'aniran transmetent cap als altres fitxers mentre duri la sessió. Treballarem amb els següents fitxers de codi:
Cadascuna d'aquestes pàgines mostrarà el nom de l'script a la part superior i un color de fons diferenciat per evitar confusions. |
||||||||||||||
El codi | |||||||||||||||
En primer lloc, podeu veure el codi de la pàgina html que permet entrar les dades d'identificació. Copieu al vostre editor el codi que ve a continuació i deseu-lo amb el nom de entra.html. Cal dir que aquest formulari ha estat creat gràficament amb Dreamweaver. | |||||||||||||||
<!-------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <body> <h2>Passant valors de variable de sessió<br> <form name="form1" method="post" action="rebuda.php"> </body> |
|||||||||||||||
Llistat 3.4.1. Codi de 'entra.html' | |||||||||||||||
Copieu també el codi que teniu a continuació, que es correspon amb el tractament de les dades passades pel formulari, i deseu-lo amb el nom de rebuda.php. | |||||||||||||||
<?php // Cada script que vulguem treballar amb la sessió activa echo "<body bgcolor=\"#FFFF99\">"; // Recollim els valors transmesos pel formulari de l'array _POST // Posem un títol // Mostrem les dades recollides: codi, any, etapa, nivell i grup // Assignem els valors trobats a les variables de sessió, que
es passaran // Establim link a pàgina següent. Li passem el nom de sessió |
|||||||||||||||
Llistat 3.4.2. Codi de 'rebuda.php' | |||||||||||||||
A continuació, teniu els codis dels fitxers passant.php, passant2.php i passant3.php. Copieu-los també i deseu-los en diferents fitxers amb aquests mateixos noms. | |||||||||||||||
<?php // Connectem amb la sessió echo "<body bgcolor=\"#99CCCC\">"; echo "<h2>Passant valors de variable de sessió<br>"; // Si la primera variable de sessió està definida... echo "<br><br><a href=\"passant2.php?".session_name()."=".session_id(); |
|||||||||||||||
Llistat 3.4.3. Codi de 'passant.php' | |||||||||||||||
<?php |
|||||||||||||||
Llistat 3.4.4. Codi de 'passant2.php' | |||||||||||||||
<?php echo "<body bgcolor=\"#CCCCCC\">"; echo "<h2>Passant valors de variable de sessió<br>"; // Si la primera variable de sessió està definida... // Buidem el contingut de les variables de sessió echo "<br><br>Un cop vistos els valors de les variables,
actualitzeu la pàgina i veureu"; |
|||||||||||||||
Llistat 3.4.5. Codi de 'passant3.php' | |||||||||||||||
Un cop tingueu desats tots aquests fitxers, podeu comprovar el funcionament de la sessió:
Figura 3.4.1 |
|||||||||||||||
Figura 3.4.2 |
|||||||||||||||
Figura 3.4.3 |
|||||||||||||||
Figura 3.4.4 |
|||||||||||||||
Figura 3.4.5 |
|||||||||||||||
![]() |
|||||||||||||||
|
|||||||||||||||