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 
😉