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.
una de las cosas que he ido aprendiendo mientras me he adentrado en el POO es la separación de responsabilidades, no es responsabilidad de tu objeto login hacer la conexión con la DB, en el foro hemos hablado un poco de ese tema de clases de conexión que pudieras integrar, incluso metiendote un poco con



