Estructura php de un Formulario de Registro y Login de usuario
9
11
2008
by José Cabo
Estos días estoy sumergido de pleno en un proyecto personal, ultrasecreto, que seguro que tendrá muy buena aceptación si las cosas me siguen yendo como hasta ahora.
El proyecto necesita de un sistema de registro de usuarios. Tiene soporte de login, de escritura de cookies y de redirección en caso de que todo haya salido correctamente (o incorrectamente).
Para que un sistema de login funcione. El sistema debe comprobar en cada página si el usuario es quien dice ser (cookies) y comprobar si existe en nuestra base de datos. De otra forma poniendo datos aleatorios podría entrar en sitios protegidos.
Aquí un sencillo diagrama de flujo para entenderlo mejor:

Esta estructura sería necesaria en cualquier página que necesite de privilegios de un usuario logueado para visualizar una parte de la página.
Ahora bien. Que orden seguir para crear eso. Yo siempre recomiendo planificar todo sobre papel para después plasmarlo en código. En mi proyecto, la página de login sigue esta estructura:
- Diversas partes de Cookies para guardar (o borrar) (login & logout) si se recibe algo por las cabeceras HTTP (métodos GET y POST)
- Parte correspondiente al registro si lo que se recibe es para registrarse. Es decir, el envío de unos datos a la Base de Datos.
- Formularios de registro/login
- 2º Formulario de registro/login
Como ya os podéis imaginar el atributo ‘action’ de los formularios apuntará a esa misma página. Como os imagináis habrá un dato extra que se pasará según que formulario hayas introducido (para que cuando se recargue la página se sepa que se ha hecho, si loguearse, si se ha registrado o si se ha deslogueado).
Así que tendréis una página de loggin con soporte de registro de usuario (envío de los datos a la base de datos), soporte de login (comprobación de los datos de usuario y guardado en cookies), soporte para desconectarse (lo mismo que el punto anterior, solamente que a la inversa).
¿Qué otra cosa añadirías tú?
PD: El diagrama fue “ideado” con palabras por Alex Barros. Yo lo plasmé, dibujé y mejoré. Además de adaptarlo a código. Y pongo esto porque es un llorica y no sabe ser inferior xD.


