Quan vaig començar a fer el servidor, em vaig adonar que si l’usuari escrivia alguna cosa malament, el programa es podia tancar de cop. Això no només és molest, sinó que també pot fer perdre dades i donar una mala experiència. Per això vaig decidir centrar-me en la depuració i en la validació d’entrades.
L’objectiu principal és evitar errors inesperats i assegurar que el servidor continua funcionant passi el que passi. A més, validar les dades també ajuda a mantenir la base de dades neta i coherent. Per exemple, si algú posa un correu sense “@”, o deixa el nickname en blanc, el programa ho detecta i avisa l’usuari en lloc de fallar.
En resum, la depuració en aquest projecte és important perquè millora la seguretat, evita que el servidor caigui i fa que l’usuari tingui una experiència més clara i controlada.
Per aconseguir que el servidor sigui estable, he utilitzat diferents tècniques de control d’errors i validació.
Els blocs try-except són la base del sistema. Serveixen per capturar errors que poden passar mentre es processen les dades del formulari. Si alguna cosa falla, el servidor no es tanca, sinó que mostra un missatge d’error i continua funcionant.
Un exemple és quan llegeixo les dades enviades pel formulari:
try:
content_length = int(self.headers.get('Content-Length', 0))
post_data = self.rfile.read(content_length).decode('utf-8')
except Exception as e:
print("Error llegint dades:", e)

Això evita que un error de lectura faci caure tot el servidor.
També he afegit validacions perquè les dades que arriben siguin correctes. Per exemple, comprovo que el nickname no estigui buit:
if not nickname:
raise ValueError("El camp 'nickname' és obligatori.")

Això evita que s’enviïn registres incomplets a la base de dades.
Quan guardo les dades, utilitzo consultes parametritzades. Això és important perquè impedeix que algú pugui intentar injectar codi SQL dins dels camps del formulari.
cursor.execute("""
INSERT INTO assistents
(nom, cognoms, nom_usuari, correu_electronic, telefon, dni_nie, dies_assistencia, intolerancies)
VALUES (?, ?, ?, ?, ?, ?, ?, ?)
""", (...))

Durant les proves, he anat mirant la terminal per veure si hi havia errors, quines dades arribaven i si la base de dades s’actualitzava bé. Això m’ha ajudat a detectar problemes ràpidament i a entendre millor què passava en cada pas.
He afegit captures del formulari, del servidor funcionant i de la base de dades amb els registres guardats. Aquestes imatges mostren que el sistema funciona i que la depuració està aplicada correctament.
