Membresía de usuario con PHP

Un tutorial para el principiante! No importa a dónde vaya en Internet, hay un elemento básico que encontrará en casi todas partes: el registro de usuarios. Ya sea que necesite que sus usuarios se registren por seguridad o solo por una característica adicional, no hay razón para no hacerlo con este sencillo tutorial. En este tutorial, repasaremos los aspectos básicos de la administración de usuarios y terminaremos con un Área de miembros simple que puede implementar en su propio sitio web..

Si necesita ayuda adicional o desea un acceso directo, consulte la gama de proveedores de servicios PHP en Envato Studio. Estos desarrolladores experimentados pueden ayudarlo con cualquier cosa, desde una solución rápida de errores hasta el desarrollo de una aplicación completa desde cero. Así que solo busque los proveedores, lea los comentarios y calificaciones y elija el que más le convenga..

Introducción

En este tutorial, realizaremos cada paso para crear un sistema de administración de usuarios, junto con un sistema de mensajería privada entre usuarios. Vamos a hacer esto usando PHP, con una base de datos MySQL para almacenar toda la información del usuario. Este tutorial está dirigido a principiantes absolutos de PHP, por lo que no se requiere ningún conocimiento previo. De hecho, es posible que se aburra un poco si es un usuario experimentado de PHP.!

Este tutorial está pensado como una introducción básica a las sesiones y al uso de bases de datos en PHP. Si bien el resultado final de este tutorial puede no serle inmediatamente útil, las habilidades que obtiene de este tutorial le permitirán continuar creando un sistema de membresía propio; satisfaciendo sus propias necesidades.

Antes de comenzar este tutorial, asegúrese de tener a mano la siguiente información:

  • Nombre de host de la base de datos - este es el servidor en el que se aloja su base de datos, en la mayoría de las situaciones, será simplemente 'localhost'.
  • Nombre de la base de datos, Nombre de usuario de la base de datos, Contraseña de la base de datos - antes de comenzar este tutorial, debe crear una base de datos MySQL si tiene la capacidad, o tener a mano la información para conectarse a una base de datos existente. Esta información es necesaria a lo largo del tutorial..

Si no tiene esta información, su proveedor de alojamiento debería poder brindársela..

Ahora que hemos eliminado las formalidades, comencemos con el tutorial!

Paso 1 - Configuración inicial

Configurando la base de datos

Como se indica en la Introducción, necesita una base de datos para continuar más allá de este punto en el tutorial. Para empezar, vamos a hacer una tabla en esta base de datos para almacenar nuestra información de usuario..

La tabla que necesitamos almacenará nuestra información de usuario; para nuestros propósitos usaremos una tabla simple, pero sería fácil almacenar más información en columnas adicionales si eso es lo que necesita. En nuestro sistema necesitamos las siguientes cuatro columnas:

  • ID de usuario (Clave primaria)
  • Nombre de usuario
  • Contraseña
  • Dirección de correo electrónico

En términos de la base de datos, un Clave primaria es el campo que identifica de forma única la fila. En este caso, ID de usuario Será nuestra clave principal. Como queremos que esto aumente cada vez que un usuario se registre, usaremos la opción especial MySQL - autoincremento.

La consulta SQL para crear nuestra tabla se incluye a continuación, y generalmente se ejecutará en la pestaña 'SQL' de phpMyAdmin.

CREAR TABLA 'usuarios' ('ID de usuario' INT (25) NO NULA AUTO_INCREMENT PRIMARY KEY, 'Nombre de usuario' VARCHAR (65) NO NULA, 'Contraseña' VARCHAR (32) NO NULA, 'EmailAddress' VARCHAR (255) NO NULA);

Creando un archivo base

Para simplificar la creación de nuestro proyecto, vamos a hacer un archivo base que podemos incluir en cada uno de los archivos que creamos. Este archivo contendrá la información de conexión de la base de datos, junto con ciertas variables de configuración que nos ayudarán en el camino.

Comience creando un nuevo archivo: base.php, e introduce en él el siguiente código:

Echemos un vistazo a algunas de esas líneas, ¿vale? Hay algunas funciones aquí que hemos usado y que aún no hemos explicado, así que echémosle un vistazo rápidamente y le daremos un sentido: si ya comprende los conceptos básicos de PHP, puede omitir esta explicación..

session_start ();

Esta función inicia una sesión para el nuevo usuario, y más adelante en este tutorial almacenaremos información en esta sesión para que podamos reconocer a los usuarios que ya han iniciado sesión. Si ya se ha creado una sesión, esta función lo reconocerá y llevará. esa sesión pasa a la página siguiente.

mysql_connect ($ dbhost, $ dbuser, $ dbpass) o die ("Error de MySQL:". mysql_error ()); mysql_select_db ($ dbname) o die ("Error de MySQL:". mysql_error ());

Cada una de estas funciones realiza una tarea separada, pero vinculada. los mysql_connect La función conecta nuestro script al servidor de la base de datos utilizando la información que le dimos anteriormente, y la mysql_select_db La función entonces elige qué base de datos usar con el script. Si alguna de las funciones no se completa, el morir La función automáticamente intervendrá y detendrá el procesamiento del script, dejando a cualquier usuario con el mensaje de que había un error de MySQL.

Paso 2 - Volver a la interfaz

¿Qué necesitamos hacer primero?

El elemento más importante en nuestra página es la primera línea de PHP; esta línea incluirá el archivo que creamos anteriormente (base.php), y esencialmente nos permitirá acceder a cualquier cosa desde ese archivo en nuestro archivo actual. Haremos esto con la siguiente línea de código PHP. Crea un archivo llamado index.php, y coloca este código en la parte superior.

Comience la página HTML

Lo primero que vamos a hacer para nuestra interfaz es crear una página donde los usuarios puedan ingresar sus datos para iniciar sesión, o si ya han iniciado sesión en una página donde pueden elegir lo que desean hacer. En este tutorial supongo que los usuarios tienen un conocimiento básico de cómo funciona HTML / CSS, y por lo tanto no voy a explicar este código en detalle; En este momento, estos elementos no tendrán estilo, pero podremos cambiar esto más adelante cuando creemos nuestra hoja de estilos CSS..

Usando el archivo que acabamos de crear (index.php), ingrese el siguiente código HTML debajo de la línea de PHP que ya hemos creado.

    Sistema de gestión de usuarios (Tom Cameron para NetTuts)    

¿Qué les mostraremos??

Antes de que salgamos el resto de la página, tenemos algunas preguntas para hacernos:

  1. ¿El usuario ya ha iniciado sesión??
  • - Necesitamos mostrarles una página con opciones para que elijan..
  • No - continuamos con la siguiente pregunta.
  • ¿El usuario ya ha enviado sus datos de inicio de sesión??
    • - Necesitamos verificar sus detalles, y si es correcto, los registraremos en el sitio.
    • No - continuamos con la siguiente pregunta.
  • Si los dos anteriores fueron respondidos No, Ahora podemos asumir que debemos mostrar un formulario de inicio de sesión al usuario.
  • Estas preguntas son, de hecho, las mismas preguntas que vamos a implementar en nuestro código PHP. Vamos a hacer esto en forma de si las declaraciones. Sin ingresar nada en ninguno de sus nuevos archivos, echemos un vistazo a la lógica que vamos a usar primero.

    Parece confuso, ¿no? Vamos a dividirlo en secciones más pequeñas y repasarlas una por una..

    if (! empty ($ _ SESSION ['LoggedIn']) &&! empty ($ _ SESSION ['Username'))) // permite que el usuario acceda a la página principal

    Cuando un usuario ingrese a nuestro sitio web, almacenaremos su información en una sesión; en cualquier momento después de esto, podremos acceder a esa información en una matriz global de PHP especial. - $ _SESION. Estamos usando el vacío Función para comprobar si la variable está vacía, con el operador. ! en frente de eso. Por eso estamos diciendo:

    Si la variable $ _SESSION ['LoggedIn'] no está vacía y $ _SESSION ['Username'] no está vacía, ejecute este fragmento de código.

    La siguiente línea funciona de la misma manera, solo que esta vez usando la $ _POST matriz global. Esta matriz contiene todos los datos que se enviaron desde el formulario de inicio de sesión que crearemos más adelante en este tutorial. La línea final solo se ejecutará si no se cumple ninguna de las afirmaciones anteriores; En este caso le mostraremos al usuario un formulario de inicio de sesión..

    Entonces, ahora que entendemos la lógica, obtengamos algo de contenido entre esas secciones. En tus index.php archivo, ingrese a continuación lo que ya tiene.

     

    Área de miembros

    y su dirección de correo electrónico es .

    Éxito"; eco "

    Ahora te estamos redireccionando al área de miembros..

    "; eco ""; else echo"

    Error

    "; eco "

    Lo sentimos, su cuenta no se pudo encontrar. Por favor haga click aquí para intentar de nuevo.

    "; else ?>

    Ingreso de miembros

    ¡Gracias por su visita! Por favor, inicie sesión a continuación, o haga clic aquí para registrarse.



    Con suerte, el primer y último bloque de código no te confundirán demasiado. En lo que realmente necesitamos quedarnos atrapados ahora es por lo que todos han venido a este tutorial: el código PHP. Ahora vamos a través de la segunda sección, una línea a la vez, y explicaré para qué está destinado cada bit de código aquí..

     $ username = mysql_real_escape_string ($ _ POST ['username']); $ contraseña = md5 (mysql_real_escape_string ($ _ POST ['contraseña']));

    Hay dos funciones que necesitan explicación para esto. en primer lugar, mysql_real_escape_string - Una función muy útil para limpiar la entrada de la base de datos. No es una medida a prueba de fallos, pero esto mantendrá alejada a la mayoría de los piratas informáticos maliciosos eliminando partes no deseadas de lo que se haya colocado en nuestro formulario de inicio de sesión. En segundo lugar, md5. Sería imposible entrar en detalles aquí, pero esta función simplemente encripta todo lo que se le pasa, en este caso la contraseña del usuario, para evitar que las miradas indiscretas la lean..

     $ checklogin = mysql_query ("SELECT * FROM users WHERE Username = '". $ username. "' AND Password = '". $ password. "'"); if (mysql_num_rows ($ checklogin) == 1) $ row = mysql_fetch_array ($ checklogin); $ email = $ row ['EmailAddress']; $ _SESSION ['Nombre de usuario'] = $ nombre de usuario; $ _SESSION ['EmailAddress'] = $ email; $ _SESSION ['LoggedIn'] = 1;

    Aquí tenemos el núcleo de nuestro código de inicio de sesión; En primer lugar, realizamos una consulta en nuestra base de datos. En esta consulta estamos buscando todo lo relacionado con un miembro, cuyo nombre de usuario y contraseña coincidan con los valores de nuestros $ nombre de usuario y $ contraseña que el usuario ha proporcionado. En la siguiente línea tenemos una declaración if, en la que verificamos cuántos resultados hemos recibido. Si no hay resultados, esta sección no se procesará. Pero si hay un resultado, sabemos que el usuario existe, por lo que vamos a iniciar sesión.

    Las siguientes dos líneas son para obtener la dirección de correo electrónico del usuario. Ya tenemos esta información de la consulta que ya hemos ejecutado, por lo que podemos acceder fácilmente a esta información. Primero, obtenemos una matriz de los datos que se han recuperado de la base de datos, en este caso estamos usando la función PHP mysql_fetch_array. Entonces he asignado el valor de la Dirección de correo electrónico campo a una variable para que usemos más tarde.

    Ahora ponemos la sesión. Estamos almacenando el nombre de usuario y la dirección de correo electrónico del usuario en la sesión, junto con un valor especial para que sepamos que han iniciado sesión utilizando este formulario. Después de que todo esto se haya dicho y hecho, serán redirigidos al Área de Miembros usando el REFRÉS DE META en el código.

    Entonces, ¿cómo se ve nuestro proyecto actualmente a un usuario??

    ¡Genial! Es hora de seguir adelante, para asegurarse de que las personas puedan ingresar a su sitio.

    Deja que la gente se registre

    Es bueno tener un formulario de inicio de sesión en su sitio, pero ahora debemos permitir que el usuario pueda usarlo, necesitamos hacer un formulario de inicio de sesión. Hacer un archivo llamado register.php y pon el siguiente código en él.

        Sistema de gestión de usuarios (Tom Cameron para NetTuts)    
    Error"; eco "

    Lo sentimos, se ha tomado ese nombre de usuario. Por favor, regrese y vuelva a intentarlo.

    "; else $ registerquery = mysql_query (" INSERT INTO users (nombre de usuario, contraseña, dirección de correo electrónico) VALUES ('". $ username."', '". $ password."', '". $ email."') "); if ($ registerquery) echo"

    Éxito

    "; eco "

    Su cuenta fue creada exitosamente. Por favor haga clic aquí para iniciar sesión.

    "; else echo"

    Error

    "; eco "

    Lo sentimos, tu registro falló. Por favor, regrese y vuelva a intentarlo.

    "; else ?>

    Registro

    Por favor, introduzca sus datos a continuación para registrarse.




    Entonces, no hay mucho PHP nuevo que aún no hayamos aprendido en esa sección. Echemos un vistazo rápido a esa consulta SQL y veremos si podemos averiguar qué está haciendo..

    $ registerquery = mysql_query ("INSERT INTO users (nombre de usuario, contraseña, dirección de correo electrónico) VALUES ('". $ username. "', '". $ password. "', '". $ email. "')");

    Entonces, aquí estamos agregando el usuario a nuestra base de datos. Esta vez, en lugar de recuperar los datos, los estamos insertando; por lo que primero especificamos en qué columnas ingresamos los datos (no lo olvide, nuestro ID de usuario subirá automáticamente). En el VALORES() área, le estamos diciendo qué poner en cada columna; En este caso nuestras variables provienen de la entrada del usuario. Entonces, vamos a intentarlo; una vez que haya creado una cuenta en su nuevo formulario de registro, esto es lo que verá para el Área de Miembros.

    Asegúrese de que puedan cerrar la sesión

    Estamos casi al final de esta sección, pero hay una cosa más que necesitamos antes de que terminemos aquí: una forma para que los usuarios cierren sesión en sus cuentas. Esto es muy fácil de hacer (afortunadamente para nosotros); crear un nuevo archivo llamado logout.php y escribe lo siguiente.

     

    En esto estamos reiniciando primero nuestro global. $ _SESION matriz, y entonces estamos destruyendo la sesión por completo.

    Y ese es el final de esa sección, y el final del código PHP. Pasemos ahora a nuestra sección final..

    Paso 3 - Obtener estilo

    No voy a explicar mucho en esta sección; si no entiende HTML / CSS, le recomendaría con insistencia alguno de los excelentes tutoriales de este sitio web para comenzar. Crear un nuevo archivo llamado style.css y entra lo siguiente en él; Esto estilizará todas las páginas que hemos creado hasta ahora..

    * margen: 0; relleno: 0;  body font-family: Trebuchet MS;  a color: # 000;  a: hover, a: active, a: visitó text-decoration: none;  #main width: 780px; margen: 0 auto; margen superior: 50px; relleno: 10px; frontera: 1px sólido #CCC; color de fondo: #EEE;  form fieldset border: 0;  form fieldset p br claro: izquierda;  etiqueta margin-top: 5px; bloqueo de pantalla; ancho: 100px; relleno: 0; flotador izquierdo;  entrada font-family: Trebuchet MS; frontera: 1px sólido #CCC; margen inferior: 5px; color de fondo: #FFF; relleno: 2px;  input: hover border: 1px solid # 222; color de fondo: #EEE; 

    Ahora echemos un vistazo a algunas capturas de pantalla de cómo debería verse nuestro proyecto final:

    El formulario de inicio de sesion.

    El area de miembros.

    El formulario de inscripción.

    Y finalmente…

    ¡Y eso es! Ahora tiene un área de miembros que puede usar en su sitio. Puedo ver a mucha gente sacudiendo la cabeza y gritando a sus monitores que no les sirve de nada, tienes razón. Pero lo que espero que cualquier principiante de PHP haya aprendido es lo básico de cómo usar una base de datos y cómo usar las sesiones para almacenar información. Las habilidades vitales para crear cualquier aplicación web..

    • Suscríbase a la fuente RSS de NETTUTS para obtener más artículos y artículos de desarrollo web diarios..