Cistell
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 partir d'aquí, l'element principal d'aquesta aplicació és el cistell, el qual està present a la sessió i requerit per la majoria de codis. Per això, hem de comprovar que estigui creat, i en cas que no ho estigui, que es creï.
// Inicialitzar cistell if (!isset($_SESSION['cistell'])) {
$_SESSION['cistell'] = array();}
A més d'incloure la connexió a la BD i requerir el fitxer funcions.php, on es troba la funció calcularPreus
require_once "funcions.php"; require_once "./connexioBD/connexioR.php";
Per últim, sempre inicialitzarem una variable que indicarà el total de compra. La inicialitzem aquí perquè s’utilitza dins d’un bucle i no hi ha cap altre lloc per declarar-la. Com que és un bucle, si la declaréssim dins, el valor del total es reiniciaria a 0 a cada iteració, i volem que el total s’acumuli al llarg de totes les iteracions
$total = 0; // Inicialitzem la variable del preu total
Mostra de missatges d'error o èxit
Quan s'afageix, es retira o s'elimina un producte del cistell des del propi cistell, el procés el realitza el codi processa.php, que depenent del resultat de l'operació, ens pot enviar un missatge d'èxit o d'error mitjançant la sessió
// Si processa.php realitza correctament l'operació, catàleg.php veuria el següent: $_SESSION['missatge_ok'] = "S'ha retirat 1 unitat(s) de Teclat mecànic del cistell."; // Si processa.php no realitza correctament l'operació, catàleg.php veuria el següent: $_SESSION['missatge_error'] = "X" // Depenent de l'error es mostrarà un missatge o un altre
Per tant, dins del cistell hem de comprovar si hem rebut aquest missatge (ja sigui el d'error o èxit), i en cas afirmatiu, mostrar-lo
<!-- Missatge de confirmació d'accions -->
<center> <?php if (isset($_SESSION['missatge_ok'])): // Quan s'enviï un missatge de confirmació?> <p style="color: green; font-weight: bold;"> <?php echo htmlspecialchars($_SESSION['missatge_ok']); // Mostrem el missatge unset($_SESSION['missatge_ok']); // Eliminem el missatge, així al recarregar la pàgina no tornarà a sortir, únicament mostrant-se un sol cop ?> </p> <?php endif; ?> </center><!-- Missatge d'error --> <center> <?php if (isset($_SESSION['missatge_error'])): // Quan s'enviï un missatge d'error?> <p style="color: red; font-weight: bold;"> <?php echo htmlspecialchars($_SESSION['missatge_error']); // Mostrem el missatge unset($_SESSION['missatge_error']); // Eliminem el missatge, així al recarregar la pàgina no tornarà a sortir, únicament mostrant-se un sol cop ?> </p> <?php endif; ?> </center>
Un exemple d'un missatge seria el següent:

Mostra de productes
Per cada producte, es crearà una fila on