Dado que he visto muchos mensajes de usuarios que apenas comienzan con PHP acerca de un sistema de inicio de sesión, he decidido crear una pequeña y sencilla clase que puede ser utilizada en cualquier pagina siempre y cuando maneje una base de datos MySQL
NOTAS:
1. Esta clase fue creada en principio como apoyo a la educación así que no es la panacea ni contiene códigos complicados.
2. Esta clase fue creada para ser adaptada a cualquier base de datos siempre y cuando trabajen sobre MySQL y se tenga una tabla donde se almacene el nombre del usuario y la contraseña
2. Es muy sencilla y NO contiene nada de seguridad (REITERO que solo la desarrolle para usuarios que apenas comienzan con PHP) y quieren tener un ejemplo o algo rápido para adaptar a sus paginas personales.
3. Sientanse libres de realizar cualquier modificación al codigo, siempre y cuando coloquen las mejoras en el hilo del tema con su respectiva explicación para que los demás usuarios puedan aprender mas.
MANOS A LA OBRA
Leer documentación dentro de codigo para mayor comprensión...
claseLogueo.php
Código PHP:
Ver original
class loguear{ private $user, $pass; /* PARAMETROS * ** param $user que es una cadena de texto con el nombre del usuario registrado ** param $pass que es una cadena de texto con la contraseña del usuario registrado */ public function __construct($user, $pass){ $this->user = $user; $this->pass = $pass; } /* PARAMETROS * ** param $servidor es una cadena de texto con la IP o el nombre del servidor ** param $usuarioDB es una cadena de texto con el usuario para conectar a la base de datos ** param $contraseñaDB es una cadena de texto con la contraseña para conectar a la base de datos ** param $nombreBD es una cadena de texto con el nombre de la base de datos ** param $CampoTablaUser es una cadena de texto con el nombre del campo que maneja los usuarios en la tabla de la base de datos ** param $CampoTablaPass es una cadena de texto con el nombre del campo que maneja las contraseñas en la tabla de la base de datos ** param $tabla es una cadena de texto con el nombre de la tabla que maneja los usuarios registrados de tu pagina ** return $resultado que es un array con los resultados de la base de datos * */ public function consultaDB($servidor, $usuarioDB, $contraseñaDB, $nombreBD, $CampoTablaUser, $CampoTablaPass, $tabla){ $consulta = "SELECT $CampoTablaUser, $CampoTablaPass FROM $tabla WHERE $CampoTablaUser = '$this->user'"; echo $consulta; //$totalRegistros = mysql_num_rows($ejecutar); $resultado[] = $registros[$CampoTablaUser]; $resultado[] = $registros[$CampoTablaPass]; } return $resultado; } /* PARAMETROS * ** param $arrayResultadoConsultaDB es un array con los resultados del metodo anterior ** return $retorno que es un boleano (TRUE o FALSE) */ public function verificar($arrayResultadoConsultaDB){ $retorno = FALSE; return $retorno; }else{ $_SESSION['logueado'] = TRUE; $_SESSION['usuario'] = $$arrayResultadoConsultaDB[0]; $_SESSION['contrasena'] = $$arrayResultadoConsultaDB[1]; $retorno = TRUE; return $retorno; } } /* PARAMETROS * ** param $tipo es un boleano (1-0) el cero quiere decir que se quiere mostrar un mensaje, el 1 quiere decir que queremos hacer una redireccion a otra pagina ** param $msgRedir es una cadena de texto con el mensaje o la ruta a la pagina que se quiere redirigir */ public function accion($tipo, $msgRedir){ switch($tipo){ case 0: echo "$msgRedir"; break; case 1: break; } } } ?>
ejemploUso.php
Código PHP:
Ver original
<?php include("claseLogueo.php"); /* OBTENIENDO DATOS DE FORMULARIO */ $usuarioFORM = $_POST['usuario']; // cambiar USUARIO por el nombre del campo del formulario donde se escribe el usuario $contrasenaFORM = $_POST['contrasena']; // cambiar CONTRASENA por el nombre del campo del formulario donde se escribe la contraseña /* INFORMACION DE LA BASE DE DATOS */ $servidor = 'localhost'; // servidor de la base de datos $usuarioBD = 'root'; // usuario para ingresar a la base de datos $contraseñaDB = '123456'; // contraseña para ingresar a la base de datos $nombreDB = 'pruebas'; // nombre de la base de datos $tabla = 'registro'; // tabla donde se almacenan los usuarios $campoTablaUser = 'registro_NombreUsuario'; // nombre de la columna donde se almacena el nombre de usuario $CampoTablaPass = 'registro_NombreContrasena'; // nombre de la columna donde se almacena la contraseña de usuario // COMENZAMOS CON LA CLASE $clase = new loguear($usuarioFORM, $contrasenaFORM); $consultando = $clase->consultaDB($servidor, $usuarioBD, $contraseñaDB, $nombreDB, $campoTablaUser, $CampoTablaPass, $tabla); $estado = $clase->verificar($consultando); // verificamos el resultado del metodo para saber si todo es OK o si no es usuario registrado if($estado === FALSE){ echo "El campo usuario y contraseña no coinciden o NO existes en nuestra base de datos"; }else{ //$mensaje = "Bienvenido, ahora estas logueado"; $redireccionar = 'unaPagina.php'; $clase->accion(0, $redireccionar); } ?>
Espero que esto le de un punto de partida a los usuarios que están empezando con PHP y a los usuarios que estén comenzando con la POO como yo.
Cualquier comentario (constructivo) o mejora al codigo sera bienvenido.