Muy bueno se agradece el aporte.
Un detalle es que es vulnerable a XSS persistente, las variables las limpias de codigo html con strip_tags() y esta funcion se salta poniendo las etiquetas duplicadas entre medio, por ejemplo:
pongo de nombre de usuario janito24"><h<h1>1>Codigo inyectado</h</h1>1>
y guardaras mi usuario con XSS, cuando muestres cualquier dato guardado de este modo te recomiendo usar
PHP:
htmlspecialchars($variable,ENT_QUOTES)
para evitar posibles daños mayores o alguna funcion donde reemplaces lo mas comun <,>,',", etc.
Saludos, genial el tutorial
😉