Introducció a les sessions: diferència entre les revisions
Es crea la pàgina amb «== Definició de sessió == Les sessions són un mecanisme per desar dades de l’usuari al servidor. L’objectiu de les sessions és mantenir les mateixes dades entre les pàgines navegades. En el moment que es desa una informació a la sessió, totes les pàgines que iniciïn la sessió podran recuperar aquella informació i fer-la servir Per treballar amb sessions es fa servir la variable global $_SESSION. La variable $_SESSION és una array, per tant es pot...». |
Cap resum de modificació |
||
| Línia 6: | Línia 6: | ||
Sempre que en una pàgina web s’incloguin sessions, s’ha d’iniciar la sessió.<pre> | Sempre que en una pàgina web s’incloguin sessions, s’ha d’iniciar la sessió.<pre> | ||
session_start(); | session_start(); | ||
</pre>Un exemple de model de dades d’una sessió és el següent: | </pre>Un exemple de model de dades d’una sessió és el següent: | ||
$_SESSION['usuari'] = [ | $_SESSION['usuari'] = [ | ||
'nom' => 'Joan', | |||
'cognom' => 'García', | |||
'edat' => 28, | |||
'ingredients' => [ | |||
'Tomàquet', | |||
'Llevat', | |||
'Galeta' | |||
] | |||
]; | ]; | ||
$_SESSION['data_hora'] = [ | $_SESSION['data_hora'] = [ | ||
'data' => '12/1/2026', | |||
'hora' => '15:04', | |||
]; | ]; | ||
Podem comprovar que la sessió té dos grans grups de dades: usuari i data_hora. Aquests “grups de dades” són vectors de la sessió, que a la vegada també son arrays amb més vectors | |||
== Crear objectes dins de les sessions == | == Crear objectes dins de les sessions == | ||
Pàgina 3 | Per crear un objecte de la sessió ho fem de la mateixa manera que afegint un vector a una array normal, amb la diferència que especifiquem $_SESSION com array | ||
echo $_SESSION['nom']; // Donarà error, ja que no hem iniciat la sessió | $_SESSION[<nomObjecte>] = <valor>; | ||
$_SESSION['nom'] = $_POST['nom']; // “Nom”, tindrà el valor que s’ha enviat al formulari | |||
$_SESSION['nom'] = “Guillem”; | |||
echo $_SESSION['nom']; // Imprimirà “Guillem” | |||
Recordem que l’objectiu de les sessions és mantenir les mateixes dades entre les pàgines navegades. En el moment que es desa una informació a la sessió, totes les pàgines que iniciïn la sessió podran recuperar aquella informació i fer-la servir. | |||
Pàgina 1 | |||
session_start(); | |||
$_SESSION['nom'] = “Guillem”; | |||
echo $_SESSION['nom']; // Imprimirà “Guillem” | |||
Pàgina 2 | |||
session_start(); | |||
echo $_SESSION['nom']; // Imprimirà “Guillem” | |||
Pàgina 3 | |||
echo $_SESSION['nom']; // Donarà error, ja que no hem iniciat la sessió | |||
== Modificar les dades d'un objecte de la sessió == | == Modificar les dades d'un objecte de la sessió == | ||
| Línia 51: | Línia 49: | ||
== Eliminar un objecte de la sessió == | == Eliminar un objecte de la sessió == | ||
En el moment que volem eliminar un objecte de la sessió, farem servir la funció unset() | |||
unset($_SESSION[“nom”]); | En el moment que volem eliminar un objecte de la sessió, farem servir la funció unset() | ||
unset($_SESSION[“nom”]); | |||
== Tancar la sessió == | == Tancar la sessió == | ||
Per tancar per complet la sessió i eliminar totes les dades dins d’aquesta, realitzarem el següent procediment. | Per tancar per complet la sessió i eliminar totes les dades dins d’aquesta, realitzarem el següent procediment. | ||
Primer esborrarem les dades de la sessió | |||
$_SESSION = array(); | |||
Primer esborrarem les dades de la sessió | |||
session_destroy(); | $_SESSION = array(); | ||
Seguidament, destruirem la pròpia sessió | |||
setcookie(session_name(), '', time()-3600, '/'); | session_destroy(); | ||
Per últim, esborrarem la cookie PHPSESSID del navegador | |||
setcookie(session_name(), <nowiki>''</nowiki>, time()-3600, '/'); | |||
Revisió del 01:48, 12 gen 2026
Definició de sessió
Les sessions són un mecanisme per desar dades de l’usuari al servidor. L’objectiu de les sessions és mantenir les mateixes dades entre les pàgines navegades. En el moment que es desa una informació a la sessió, totes les pàgines que iniciïn la sessió podran recuperar aquella informació i fer-la servir
Per treballar amb sessions es fa servir la variable global $_SESSION. La variable $_SESSION és una array, per tant es pot definir vectors (camps) amb valors (dades). Aquests camps poden ser valors únics o més arrays.
Sempre que en una pàgina web s’incloguin sessions, s’ha d’iniciar la sessió.
session_start();
Un exemple de model de dades d’una sessió és el següent:
$_SESSION['usuari'] = [
'nom' => 'Joan',
'cognom' => 'García',
'edat' => 28,
'ingredients' => [
'Tomàquet',
'Llevat',
'Galeta'
]
];
$_SESSION['data_hora'] = [
'data' => '12/1/2026',
'hora' => '15:04',
];
Podem comprovar que la sessió té dos grans grups de dades: usuari i data_hora. Aquests “grups de dades” són vectors de la sessió, que a la vegada també son arrays amb més vectors
Crear objectes dins de les sessions
Per crear un objecte de la sessió ho fem de la mateixa manera que afegint un vector a una array normal, amb la diferència que especifiquem $_SESSION com array
$_SESSION[<nomObjecte>] = <valor>; $_SESSION['nom'] = $_POST['nom']; // “Nom”, tindrà el valor que s’ha enviat al formulari $_SESSION['nom'] = “Guillem”; echo $_SESSION['nom']; // Imprimirà “Guillem”
Recordem que l’objectiu de les sessions és mantenir les mateixes dades entre les pàgines navegades. En el moment que es desa una informació a la sessió, totes les pàgines que iniciïn la sessió podran recuperar aquella informació i fer-la servir.
Pàgina 1 session_start(); $_SESSION['nom'] = “Guillem”; echo $_SESSION['nom']; // Imprimirà “Guillem” Pàgina 2 session_start(); echo $_SESSION['nom']; // Imprimirà “Guillem” Pàgina 3 echo $_SESSION['nom']; // Donarà error, ja que no hem iniciat la sessió
Modificar les dades d'un objecte de la sessió
A l’hora de modificar les dades d’una sessió és exactament la mateixa gestió que amb una array normal
Eliminar un objecte de la sessió
En el moment que volem eliminar un objecte de la sessió, farem servir la funció unset()
unset($_SESSION[“nom”]);
Tancar la sessió
Per tancar per complet la sessió i eliminar totes les dades dins d’aquesta, realitzarem el següent procediment.
Primer esborrarem les dades de la sessió
$_SESSION = array();
Seguidament, destruirem la pròpia sessió
session_destroy();
Per últim, esborrarem la cookie PHPSESSID del navegador
setcookie(session_name(), '', time()-3600, '/');