Pàgina privada: diferència entre les revisions

De Wiki personal d'en Guillem Serrat
Es crea la pàgina amb «== Inicialització de la sessió i connexió a la BD == Sempre que es treballa amb sessions, el primer que hem de fer és iniciar-la abans d'escriure el codi HTML session_start(); A més, hem de requerir el fitxer amb les funcions i una connexió a la BD. En aquest cas, únicament mostrarem dades dins la pàgina, per tant farem servir la connexió de lecutra.».
 
Cap resum de modificació
Línia 1: Línia 1:
== Pàgina privada ==
Quan un usuari s'autentica amb les seves credencials, pot accedir a una pàgina privada. Dins d'aquesta pàgina es troba:
* Les dades personals de l'usuari
* Les últimes 10 accions de l'usuari
* Les estadístiques d'autenticació
** Última autenticació
** Total d'autenticacions, autenticacions mitjançant login normal, auto-login o login-2fa, autenticacions errònies, etc
* Un botó per modificar les dades de l'usuari
* Un botó per tancar la sessió
== Inicialització de la sessió i connexió a la BD ==
== Inicialització de la sessió i connexió a la BD ==
Sempre que es treballa amb sessions, el primer que hem de fer és iniciar-la abans d'escriure el codi HTML
Sempre que es treballa amb sessions, el primer que hem de fer és iniciar-la abans d'escriure el codi HTML
  session_start();
  session_start();
A més, hem de requerir el fitxer amb les funcions i una connexió a la BD. En aquest cas, únicament mostrarem dades dins la pàgina, per tant farem servir la [[Connexions a la BD (A5.3)#Connexió de lectura|connexió de lecutra]].
A més, hem de requerir el fitxer amb les funcions i una connexió a la BD. En aquest cas, únicament mostrarem dades dins la pàgina, per tant farem servir la [[Connexions a la BD (A5.3)#Connexió de lectura|connexió de lecutra]].<pre>
require 'funcions.php';
require './connexioBD/connexioR.php';
</pre>
 
== Recuperació de les dades de l'usuari ==
Per poder mostrar les dades de l'usuari primer les haurem de recuperar de les taules de la BD
 
Per això recuperarem l’ID de l’usuari que ha iniciat sessió a partir de la sessió i esborrarem qualsevol codi de verificació residual que hagi quedat de l’autenticació amb 2FA o la verificació del correu electrònic.<pre>
// ID de l'usuari
$usuari_id = $_SESSION['usuari']['id'];
 
unset($_SESSION['codi_verificacio']); // Eliminar codi de sessió
</pre>Un cop recuperat la ID de l'usuari, realitzarem una consulta per recuperar les dades personals, les últimes accions i les estadístiques d'autenticació.
 
=== Recuperació de les dades personals ===
Per recuperar les dades personals de l'usuari únicament consultarem els camps de la taula usuaris, cercant el registre amb la mateixa ID que s'ha recuperat de la sessió<pre>
    // Consultar dades de l'usuari
    $stmt = $pdo->prepare("
        SELECT nom_usuari, nom_complet, email, email_verificat, telefon, ciutat, edat
        FROM usuaris
        WHERE id = ?
    ");
    $stmt->execute([$usuari_id]);
    $usuari = $stmt->fetch();
</pre>
 
=== Recuperació de les últimes accions ===
Per recuperar les últimes accions de l'usuari, cercarem de forma descendent per data (més recent a més antic) tots els registres amb l'ID de l'usuari de la sessió. Aquests resultats els limitarem a 10<pre>
// Consultar últimes 10 accions i últim login
    $stmt = $pdo->prepare("SELECT accio, ip_client, data_hora FROM activitat WHERE usuari_id = ? ORDER BY data_hora DESC LIMIT 10");
    $stmt->execute([$usuari_id]);
    $historial = $stmt->fetchAll();
</pre>
 
=== Recuperació de les estadístiques d'autenticació ===
Primer, recuperarem la última autenticació, Anteriorment hem realitzat una consulta en les últimes 10 accions. Sabem que la última acció realitzada per l'usuari
 
== Mostra de les dades ==
 
=== Dades personals ===
 
=== Últimes accions ===
 
=== Estadístiques d'autenticació ===
 
== Accés d'un administrador ==
 
== Botó per modificar les dades personals ==
 
== Botó per tancar la sessió ==

Revisió del 17:58, 10 gen 2026

Pàgina privada

Quan un usuari s'autentica amb les seves credencials, pot accedir a una pàgina privada. Dins d'aquesta pàgina es troba:

  • Les dades personals de l'usuari
  • Les últimes 10 accions de l'usuari
  • Les estadístiques d'autenticació
    • Última autenticació
    • Total d'autenticacions, autenticacions mitjançant login normal, auto-login o login-2fa, autenticacions errònies, etc
  • Un botó per modificar les dades de l'usuari
  • Un botó per tancar la sessió

Inicialització de la sessió i connexió a la BD

Sempre que es treballa amb sessions, el primer que hem de fer és iniciar-la abans d'escriure el codi HTML

session_start();

A més, hem de requerir el fitxer amb les funcions i una connexió a la BD. En aquest cas, únicament mostrarem dades dins la pàgina, per tant farem servir la connexió de lecutra.

require 'funcions.php';
require './connexioBD/connexioR.php';

Recuperació de les dades de l'usuari

Per poder mostrar les dades de l'usuari primer les haurem de recuperar de les taules de la BD

Per això recuperarem l’ID de l’usuari que ha iniciat sessió a partir de la sessió i esborrarem qualsevol codi de verificació residual que hagi quedat de l’autenticació amb 2FA o la verificació del correu electrònic.

// ID de l'usuari
$usuari_id = $_SESSION['usuari']['id'];

unset($_SESSION['codi_verificacio']); // Eliminar codi de sessió

Un cop recuperat la ID de l'usuari, realitzarem una consulta per recuperar les dades personals, les últimes accions i les estadístiques d'autenticació.

Recuperació de les dades personals

Per recuperar les dades personals de l'usuari únicament consultarem els camps de la taula usuaris, cercant el registre amb la mateixa ID que s'ha recuperat de la sessió

    // Consultar dades de l'usuari
    $stmt = $pdo->prepare("
        SELECT nom_usuari, nom_complet, email, email_verificat, telefon, ciutat, edat
        FROM usuaris
        WHERE id = ?
    ");
    $stmt->execute([$usuari_id]);
    $usuari = $stmt->fetch();

Recuperació de les últimes accions

Per recuperar les últimes accions de l'usuari, cercarem de forma descendent per data (més recent a més antic) tots els registres amb l'ID de l'usuari de la sessió. Aquests resultats els limitarem a 10

// Consultar últimes 10 accions i últim login
    $stmt = $pdo->prepare("SELECT accio, ip_client, data_hora FROM activitat WHERE usuari_id = ? ORDER BY data_hora DESC LIMIT 10");
    $stmt->execute([$usuari_id]);
    $historial = $stmt->fetchAll();

Recuperació de les estadístiques d'autenticació

Primer, recuperarem la última autenticació, Anteriorment hem realitzat una consulta en les últimes 10 accions. Sabem que la última acció realitzada per l'usuari

Mostra de les dades

Dades personals

Últimes accions

Estadístiques d'autenticació

Accés d'un administrador

Botó per modificar les dades personals

Botó per tancar la sessió