Vous êtes sur la page 1sur 4

Autenticacin en php con MySql y

POO
Creado por jc Mouse Domingo, febrero 26, 2012

Autenticacin 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
autenticacin utilizando php, mysql, html, y sesiones
utilizando POO
Necesitamos

Conocimientos bsicos 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
Duracin: 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 aadir 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:

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_un
a_barra_separadora
private $localhost = "localhost";
private $usuario = "USUARIO";
private $password = "CONTRASEA MYSQL";

private $database = "tuto_slogin";


#____________________________________________________________________________soy_un
a_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_un
a_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_un
a_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_un
a_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_un
a_barra_separadora
#Cuando se crea el objeto se realiza la conexion a la base de datos
public function __construct()
{
$this->conectar();
}
#____________________________________________________________________________soy_un
a_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_un
a_barra_separadora
}
?>

Las
clases
estan
comentadas
4. Ahora en el archivo index.php colocaremos el
formulario de autenticacin 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>Contrasea</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.