Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Autentificación en PHP y MYSQL con POO
#1
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
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:
Código PHP:
CREATE TABLE slogin_usuario (
  `
uservarchar(60NOT NULL,
  
pass varchar(12NOT 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:

Estructura proyecto en phpDesigner
3. En la carpeta PHP crearemos dos clases:
mysql.class.php
Código 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
Código 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:
Código 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.
#2
Te edito para colocar las cajas de código.

Por favor la próxima vez coloca cada cosa con sus respectivos códigos.

Además, no abuses de las mayúsculas en los títulos.
WWW


Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Como usar Datatable PHP & JSon & Mysql WMasterT 4 171 08-08-2018, 07:37 PM
Último mensaje: avdarie
  Subir multiples archivos o imágenes al servidor y guardarlas con PHP y MySQL cmascreativo 5 382 02-03-2018, 08:08 AM
Último mensaje: easy english
Bug Problema conectando con MySql remoto yuma2009 2 255 01-02-2018, 11:52 AM
Último mensaje: easy english
  error mysql en php admin efbsfcd 2 189 14-12-2017, 12:49 AM
Último mensaje: jeje
  Problema conexion remota mysql efbsfcd 2 324 07-07-2017, 07:19 AM
Último mensaje: efbsfcd
  [Tutorial] Pasar MySQL a MySQLi[POO] amner 6 593 03-05-2017, 02:05 AM
Último mensaje: ReyNexo23
  Como subir Archivos, Imagenes PHP MysQL gassip 0 1,605 24-10-2016, 06:59 AM
Último mensaje: gassip
  [Tutorial] Pasar base de datos MySQL por SSH Jvh_22 1 493 11-10-2016, 04:12 PM
Último mensaje: efbsfcd
  falla conexion a mysql [email protected] 4 700 01-09-2016, 06:52 AM
Último mensaje: easy english
  Subir multiples archivos o imágenes al servidor y guardarlas con PHP y MySQL cmascreativo 1 1,221 18-02-2016, 09:55 PM
Último mensaje: index



Usuarios navegando en este tema: 1 invitado(s)