¿Qué implica crear un formulario de registro e inicio de sesión que funcione?

HTML se utiliza para crear el formulario para que el usuario ingrese su información. CSS se puede usar con el HTML para que el formulario se vea bien.


Se utiliza un lenguaje de programación del lado del servidor con un servidor configurado adecuadamente, por lo que consideraremos Apache y PHP como un ejemplo porque son una combinación extremadamente común, especialmente como parte de un servidor LAMP (Linux, Apache, MySQL y PHP).

En su mayor parte, Apache y PHP son fáciles de trabajar en un servidor web porque hay paquetes disponibles en varias formas para Windows (WAMP), Mac (MAMP) y Linux (metapaquetes como “lamp-server” en Ubuntu )

El siguiente paso es escribir el script PHP que hará que el formulario haga algo; Tienes algunas opciones aquí.

# 1: Puede enviar el formulario por correo electrónico a lo que el usuario le envía.
# 2: Puede grabar o acceder a algo en una base de datos (para registrarse e iniciar sesión).

Explicaré el # 1 primero.

La forma más rápida y fácil de enviar un correo electrónico de formulario que conozco es usar “buffer de salida” para capturar la salida de print_r ($ _ POST). Por lo tanto, tenemos una captura legible por humanos de lo que el usuario envió al script mediante la forma HTTP POST de enviar cosas al servidor. Si se tratara de una solicitud GET con un mensaje, usaría print_r ($ _ GET). Finalmente, envíe el correo electrónico utilizando la función mail () según la documentación para eso. En este punto, es posible que desee mostrar algo al usuario con el script PHP o redirigirlo a una página significativa de lo contrario.

Para el n. ° 2, deberá conocer SQL para crear y modificar una base de datos. IMPORTANTE, asegúrese de usar addlashes () para cambiar la entrada del usuario para que no pueda ser dañino, ya que al modificar la instrucción SQL que generará para agregar los datos, pueden eliminar su base de datos de esta manera, por lo que siempre agrega las pestañas () a la entrada de la base de datos antes crea su consulta SQL para la operación de la base de datos. Ahora, simplemente cree su consulta SQL utilizando la entrada del formulario del usuario a través de $ _GET o $ _POST (dependiendo del método de su formulario). Finalmente, cree su conexión de base de datos MySQL y realice su consulta MySQL con su instrucción SELECT o INSERT; todo funcionó siempre que MySQL no le dé un mensaje de error como resultado.


Ahora que ha registrado al usuario y puede validar su combinación de nombre de usuario / contraseña, necesita una forma para que su servidor recuerde que ha iniciado sesión. Entonces, querrás usar una sesión.

Sesiones – Manual


¡Evite programar agujeros de seguridad! ¡La lección más importante que puede aprender antes de desarrollar cualquier cosa que esté en Internet es que nunca debe confiar en la entrada del usuario! Si se utilizará la entrada del usuario para acceder o crear algo, asegúrese de que la entrada y / o autenticación del usuario sea válida antes de permitir esa operación.

Déjame desglosarlo para ti, paso a paso:

Necesitará una interfaz de usuario. Esto se puede crear usando un formulario HTML. El CSS acompañante se puede usar para diseñar los elementos del formulario. El elemento de formulario debe tener cuadros de entrada y / o menús desplegables para los datos que necesita recopilar de los usuarios cuando se registra. Intente mantener este mínimo ya que demasiados cuadros de entrada pueden molestar al usuario y hacer que se vayan. Quieres que se registren, ¿no?

Los campos de entrada obligatorios son ID de correo electrónico y contraseña. Ypu debe proporcionar otro campo para “confirmar” la contraseña. Además, también debe agregar una verificación “Captcha” para evitar que los robots realicen suscripciones masivas automáticamente. Google tiene una buena solución de Captcha que puedes usar. Además de eso, hay otras bibliotecas del lado del servidor para implementar captcha. También he escrito mis propias sesiones de uso, pero finalmente creo que la versión de Google es la mejor e incluso incluye una prueba de sonido.

También debe validar el formulario cuando el usuario intente enviarlo presionando un botón llamado algo así como Registrarse. Aquí es donde JavaScript entra en acción y comprueba las entradas para ver si se completan las obligatorias, el formato de correo electrónico parece ser correcto y las contraseñas ingresadas en dos campos son correctas. Si todo está bien, permite que se publique el formulario.

Otra cosa que olvidé agregar es un widget que puede verificar la seguridad de la contraseña. Nuevamente, en lugar de escribir esto con JavaScript usted mismo, lo cual es posible, podría intentar encontrar un script existente.

Ahora los datos salen del lado del cliente y llegan a su servidor. El formulario tendría un script de destino en su servidor donde los datos se “publican”. Este script debe ser uno que procese los datos publicados y los guarde en una base de datos. Realmente depende de qué plataforma de tecnología uses, pero el proceso es más o menos el mismo. Asumiré que está utilizando LAMP, que es la abreviatura de Linux (SO de servidor), Apache (servidor web), MySql (base de datos) y PHP (lenguaje de secuencias de comandos del lado del servidor). La razón de esto es solo que lo uso. Pero puede usar cualquier otra plataforma. Es solo que el mío es mejor … no es broma … 🙂

Entonces, lo que hace el script PHP tan pronto como obtiene los datos es validarlo. Sí, uno debería validarlo nuevamente porque a veces JavaScript se puede posponer y se pueden publicar datos no validados. Por ejemplo, alguien envía datos vacíos para correo electrónico y contraseña y esto se inserta en la base de datos. Si su secuencia de comandos de inicio de sesión no está escrita correctamente, un correo electrónico y una contraseña en blanco pueden dar acceso a cualquier persona al sitio web.

Una vez que esté satisfecho con los datos (si no envía un mensaje de error), insértelo en la base de datos. En caso de contraseñas, hay algunas buenas prácticas. Por lo general, no es una buena idea almacenar una contraseña en texto sin formato. Es posible que desee convertirlo en un hash y también usar algo llamado sal (string) para hacerlo muchas veces por seguridad. Está más allá del alcance de esta respuesta explicar todo sobre la seguridad web, pero puede leerlo todo desde varias fuentes para ayudarlo en la implementación.

El siguiente paso es redirigir al usuario a una nueva página que dice que el registro se realizó correctamente. Una característica adicional es implementar una verificación por correo electrónico. Después de guardar los datos del usuario en la base de datos, indique a través de un campo en la base de datos que el usuario está suspendido. Ahora deje que su script envíe un correo electrónico al usuario con un código que puede generar aleatoriamente mientras guarda ese código contra ese usuario en una tabla de base de datos separada.

Debe codificar otra secuencia de comandos donde el usuario aterrizará siguiendo un enlace de su correo electrónico que coincidirá con el código de entrada (generalmente adjunto al enlace como una cadena de consulta, es decir, después de? De la url) contra el código guardado contra el usuario en la base de datos Si coinciden, cambie el estado del usuario a actual, abierto, etc., lo que básicamente significa que pueden iniciar sesión en el sitio web.

Formulario de inicio de sesión hecho, codifique el formulario de inicio de sesión con solo dos campos. La validación de JavaScript debe requerir entradas para ambos campos. Una vez que el usuario publique el nombre de usuario y la contraseña, úselos para hacer coincidir las entradas en la base de datos. Si un campo coincide, envía al usuario a la página de inicio de sesión, de lo contrario, envía un mensaje de error que se puede mostrar en la página del formulario de inicio de sesión utilizando AJAX.

Al iniciar sesión, deberá usar variables de sesión para recordar las credenciales del usuario mientras navega de una página a otra.

He profundizado un poco y espero que esto tenga sentido para usted como programador. Sin embargo, si no tiene experiencia en programación, deberá consultar las respuestas mías y de otro tipo y aprender primero las tecnologías:
HTML, CSS, JS, PHP / PYTHON / JSP / ROR / ASP, MYSQL .. etc.

Código del lado del cliente frontend (HTML, CSS, JS, etc.) para mostrar el formulario, código del lado del servidor backend para procesar, validar y enviar los datos a la base de datos. ¡Y lo más importante, una base de datos para almacenar estos datos (aunque es posible almacenar los datos como archivos sin procesar de forma insegura)!