Autenticación en una pagina web es el proceso de confirmar que un usuario es quien dice ser, asi de simple.
En el siguiente tutorial construiremos un sistema sencillo de autenticación utilizando php, mysql, html, y sesiones utilizando POO
Necesitamos
Nivel: Novatos
Duración: 15 Minutos
Comencemos.
1. Lo primero que necesitamos es una base de datos, crea uno en mysql, para este ejemplo la base de datos se llama «tuto_slogin», a esta db debes añadir una tabla y tambien algunos datos, la estructura es la siguiente:
CREATE TABLE slogin_usuario ( `user` varchar(60) NOT NULL, pass varchar(12) NOT NULL ) ENGINE=MyISAM DEFAULT CHARSET=utf8; INSERT INTO slogin_usuario VALUES ('jaimito', '123456');
2. Necesitamos establecer una estructura de carpetas para nuestro proyecto, usamos la siguiente:
3. En la carpeta PHP crearemos dos clases:
mysql.class.php
<?php # CLASE PARA GESTIONAR LA BASE DE DATOS class mysql { #____________________________________________________________________________soy_una_barra_separadora 🙂 private $localhost = "localhost"; private $usuario = "USUARIO"; private $password = "CONTRASEÑA MYSQL"; private $database = "tuto_slogin"; #____________________________________________________________________________soy_una_barra_separadora 🙂 /* METODO PARA CONECTAR CON LA BASE DE DATOS*/ public function conectar() { if(!isset($this->conexion)){ $this->conexion = (mysql_connect($this->localhost, $this->usuario,$this->password)) or die(mysql_error() ); mysql_select_db($this->database , $this->conexion) or die(mysql_error()); } } #____________________________________________________________________________soy_una_barra_separadora 🙂 // METODO PARA REALIZAR UNA CONSULTA // INPUT: $q -> consulta // OUTPUT: $result public function consulta($q) { $resultado = mysql_query($q,$this->conexion); if(!$resultado){ echo 'MySQL Error: ' . mysql_error(); exit; } return $resultado; } #____________________________________________________________________________soy_una_barra_separadora 🙂 // METODO PARA CONTAR EL NUMERO DE FILAS DEVUELTAS // INPUT: $r // OUTPUT: numero de filas function numero_de_filas($result){ if(!is_resource($result)) return false; return mysql_num_rows($result); } #____________________________________________________________________________soy_una_barra_separadora 🙂 } ?>
usuario.class.php
<?php # CLASE USUARIO PARA GESTIONAR A LOS USUARIOS DEL SISTEMA require_once 'mysql.class.php'; class usuario extends mysql { #____________________________________________________________________________soy_una_barra_separadora 🙂 #Cuando se crea el objeto se realiza la conexion a la base de datos public function __construct() { $this->conectar(); } #____________________________________________________________________________soy_una_barra_separadora 🙂 public function validar_ingreso($usuario=NULL,$password=NULL) { if( $usuario!=null and $password!=null) { # se limpian variables $usuario = htmlspecialchars(trim($usuario), ENT_QUOTES); $password = htmlspecialchars(trim($password), ENT_QUOTES); # se realiza la consulta a la base de datos $r = $this->consulta("SELECT * FROM slogin_usuario WHERE user='$usuario' AND pass='$password' "); # retorna resultado en boolean return ( $this->numero_de_filas($r)>0) ? true : false ; } else return false; } #____________________________________________________________________________soy_una_barra_separadora 🙂 } ?>
Las clases estan comentadas
4. Ahora en el archivo «index.php» colocaremos el formulario de autenticación y tambien un poco de codigo php:
<?php session_start(); if( $_POST ) { #Comprueba que las variables existan if ( isset( $_POST['usuario'] ) and isset( $_POST['password'] ) ){ # archivo php necesario require_once 'php/usuario.class.php'; # instancia a clase usuario $usuario = new usuario(); if( $usuario->validar_ingreso($_POST['usuario'] , $_POST['password']) ){ //crea instancia de sesion segura $_SESSION["usuario"]=$_POST['usuario'];//variable de sesion; # si usuario existe -> redireccionar a nueva pagina echo 'Exito: Usuario '.$_SESSION["usuario"].' logueado';exit; }else echo 'Error: Acceso Denegado'; } } ?> <form id="form" name="form" method="post" action=""> <span>Nombre de Usuario</span> <br /> <input id="usuario" name="usuario" type="text" value="" /> <br /> <span>Contraseña</span> <br /> <input id="password" name="password" type="password" value="" /> <br /> <input name="enviar" id="enviar" type="submit" value="Entrar" /> </form>
Visualmente en el navegador debes tener esto:
Eso es todo, prueba desde el navegador para ver que no existan fallas.
Yo soy yo :) JC Mouse, Soy orgullosamente boliviano soy fundador y CEO de la web jc-Mouse.net uno de las pocas web en emprendimiento y tecnología en Bolivia.
Toda la información que encuentres en este sitio es y sera completamente gratis siempre, puedes copiar, descargar y re-publicar si así lo deseas en otros blogs o sitios web, solo te pido a cambio que dejes una referencia a esta web. Esto nos ayuda a crecer y seguir aportando. Bye
Enjoy! :)
El modelo Tweetbotornot es un algoritmo de aprendizaje automático que se entrenó en miles de cuentas reales de bot y no...
El SystemTray/Bandeja del Sistema o como también se le llama «Área de Notificación» es la sección de la barra de tareas...
GraphADT es una proyecto alojado en github escrito en java que te permite trabajar con grafos, a la fecha de escribir es...
AssertJ Swing es una biblioteca para Java que proporciona una interfaz fluida para la realización automatizada de prueba...
Messenger Rooms es la nueva opción de videoconferencias de Facebook que permite realizar videollamadas con hasta 50 pers...
Problema: Implemente el código necesario en Kotlin para resolver una ecuación de segundo grado de números reales: Soluci...
Los comentarios estan cerrados
Si trabajas con redes sociales (RRSS) a continuación te muestro tres herramintas gratuitas que te ayudaran a la hora de...
Por lo general se usan transacciones a nivel base de datos y posteriormente se llaman estos a través de procedimientos a...
En este post, aprenderemos como conectar Visual Basic 6 con SQL Server, abrir una tabla, leer su contenido y mostrar est...
Lo que veremos en este post es la configuración del driver para PHP de SQL Server que ha creado Microsoft el cual permit...
muy buen aporte gracias
muy chevere su codigo y para novatas como yo gracias…
Un ejemplo interesante. Buen aporte gracias.
Hola,
muy buen ejemplo.
Tengo una duda/consulta:
En el ejemplo, la clase usuario es una subclase de la clase mysql.
Se puede hacer que en lugar de ser una sublcase, sea una clase colaborativa.
Es decir, no usar el extends, y dentro de la clase ‘usuarios’ crear una instancia de ‘mysql’ y trabajar con ella.
En caso de que si se pueda, cual crees que es mejor?
Muchas gracias….
Hola:
He probado el código, pero no sé si funciona porque me debería de salir una de las dos opciones:
echo ‘Exito: Usuario ‘.$_SESSION[«usuario»].’ logueado’;exit;
}else
echo ‘Error: Acceso Denegado’;
y me sale la misma página pero sin el formulario.