Introducció a les sessions: diferència entre les revisions

De Wiki personal d'en Guillem Serrat
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...».
 
 
(Hi ha una revisió intermèdia que no es mostren del mateix usuari)
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>
</pre>Un exemple de model de dades d’una sessió és el següent:
$_SESSION['usuari'] = [
$_SESSION['usuari'] = [
    'nom'      => 'Joan',
    'nom'      => 'Joan',
    'cognom'    => 'García',
    'cognom'    => 'García',
    'edat'      => 28,
    'edat'      => 28,
    'ingredients' => [
    'ingredients' => [
        'Tomàquet',
        'Tomàquet',
        'Llevat',
        'Llevat',
        'Galeta'
        'Galeta'
    ]
    ]
];
];
 
$_SESSION['data_hora'] = [
$_SESSION['data_hora'] = [
    'data'      => '12/1/2026',
    'data'      => '12/1/2026',
    'hora'    => '15:04',
    '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
</pre>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 ==
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<pre>
$_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”
</pre>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.<pre>
Pàgina 1
session_start();
$_SESSION['nom'] = “Guillem”;
echo $_SESSION['nom']; // Imprimirà “Guillem”


Pàgina 2
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_start();
$_SESSION[<nomObjecte>] = <valor>;
echo $_SESSION['nom']; // Imprimirà “Guillem”
$_SESSION['nom'] = $_POST['nom']; // “Nom”, tindrà el valor que s’ha enviat al formulari
 
Pàgina 3
$_SESSION['nom'] = “Guillem”;
echo $_SESSION['nom']; // Donarà error, ja que no hem iniciat la sessió
echo $_SESSION['nom']; // Imprimirà “Guillem”
</pre>
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()<pre>
 
unset($_SESSION[“nom”]);
En el moment que volem eliminar un objecte de la sessió, farem servir la funció unset()
</pre>
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ó<pre>
Primer esborrarem les dades de la sessió
$_SESSION = array();
$_SESSION = array();
</pre>Seguidament, destruirem la pròpia sessió<pre>
Seguidament, destruirem la pròpia sessió
session_destroy();
session_destroy();
</pre>Per últim, esborrarem la cookie PHPSESSID del navegador<pre>
Per últim, esborrarem la cookie PHPSESSID del navegador
setcookie(session_name(), '', time()-3600, '/');
setcookie(session_name(), <nowiki>''</nowiki>, time()-3600, '/');
</pre>

Revisió de 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, '/');