Sigueme en Facebook Sigueme en Twitter Sigueme en Instagram Sigueme en Youtube
JC Mouse Bolivia
Index / Desarrollo Web / PHP / Autenticación en php con MySql y POO

Autenticación en php con MySql y POO

Autor jc mouse Domingo, Febrero 26, 2012

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

  • Conocimientos básicos de PHP, MySQL
  • Un servidor web (appserv, xamp, etc)
  • Un Editor de Texto, el notepad++ te sirve, si tienes otro mucho mejor, yo utilizare phpDesigner

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:

proyecto php

Estructura proyecto en phpDesigner

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:

formulario

Eso es todo, prueba desde el navegador para ver que no existan fallas.

Tags

Si te ha gustado podrías compartirlo o dejar un comentario. ¡Muchas gracias!
Autor: JC Mouse

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! :)

También Te Podría Interesar

Cifrado francmasón PigPen

Cifrado francmasón PigPen

El cifrado francmasón es un cifrado por sustitución simple que cambia las letras por símbolos. Sin embargo, el uso de sí...

Reportes y Subreportes con iReport

Reportes y Subreportes con iReport

Cuando creamos reportes en iReport que son un poco complicadas o reportes personalizados, osea, tratando de evitar el cl...

Ejercicios Resueltos C Sharp

Ejercicios Resueltos C Sharp

1. Dado N números enteros ingresados por teclado, determine el promedio de estos 01 static void Main(string[] args) 02 {...

MultiHilos: Comunicación Cliente/Servidor

MultiHilos: Comunicación Cliente/Servidor

En anteriores post construimos aplicaciones Cliente/Servidor los cuales intercambiaban mensajes de una forma secuencial...

Tutorial HeidiSQL: Sesion, Base de datos y Tablas

Tutorial HeidiSQL: Sesion, Base de datos y Tablas

HeidiSQL es un software libre y de código abierto que permite conectarse a servidores MySQL, MariaDB, Percona Server, Mi...

TextView Autocompletado

TextView Autocompletado

Un TextView autocompletado nos facilita el ingreso de información en aplicaciones móviles ya que te muestra posibles opc...

5 comentarios en “Autenticación en php con MySql y POO”

  1. and dice:

    muy buen aporte gracias

  2. deisy dice:

    muy chevere su codigo y para novatas como yo gracias…

  3. Sandro dice:

    Un ejemplo interesante. Buen aporte gracias.

  4. Federico dice:

    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….

  5. Melchor Castro Avalos dice:

    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.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Comparte lo que sabes

Categorias

Últimas entradas

Desde java 7 esta disponible la interface ExecutorService que se extiende de Executor y nos proporciona los métodos nece...

En este post crearemos una app para utilizar el vibrador de nuestro dispositivo android usando para ello el IDE Android...

En un post anterior vimos como utilizar GSON para serializar un objeto java en JSON, en esta oportunidad se vera el proc...

Gson es una biblioteca de código abierto para Java desarrollado por Google Inc que permite la serialización y deserializ...

Android Bolivia

Bandera en Alto