Beruflich Dokumente
Kultur Dokumente
Docente: Ing. Remmy Fuentes T.
Remmy.fuentes@gmail.com
Tipo de documento: Guía PHP – Validación de usuarios
Como hacer una autentificación de usuario con PHP y MySQL
El funcionamiento de este sistema es bastante simple. Básicamente tendremos 3 archivos que definirán
el ingreso de los usuarios:
1.‐ Un archivo HTML que contenga un formulario de ingreso. Típico formulario Usuario: Contraseña y un
botón de ingresar. (index.html)
2.‐ Un archivo PHP que, recibidos los datos del formulario, se conectará a la base de datos y corroborará
que los datos existan y que estos sean correctos (validar.php)
3.‐ Finalmente otro archivo PHP que dependiendo del resultado de la consulta hecha en validar.php nos
mostrara la página deseada (ya sea páginas de usuarios o páginas generales).
Paso1: Crear una página HTML (index.html) que contenga un formulario, tal como lo hicimos en
tutoriales anteriores. El “action” del formulario dirigirá a “validar.php“. Una nueva característica será el
uso del tipo de contraseñas, el código de nuestro formulario quedara de esta manera:
<form name='formulario' method='post' action='validar.php'>
Usuario:
<input type='text' name='usuario'>
<br>
Password:
<input type='password' name='contrasenia'> <br>
<input type='submit' name='Registrar' value='Registrar'>
</form>
Paso2: Preparar una base de datos para nuestro uso, con el PHPMyAdmin, crearemos una base de datos
(IDs) y luego una tabla llamada “usuario” y dentro de ella definiremos los siguientes campos:
Usuario => Varchar (10)
Clave => Varchar (10)
Nombre => Varchar (40)
Pagina => Varchar (15)
EL código SQL empleado será:
CREATE TABLE `usuario` (
`usuario` varchar(10) default NULL,
`clave` varchar(10) default NULL,
`nombre` varchar(40) default NULL,
`pagina` varchar(15) default NULL,
PRIMARY KEY (`usuario`)
);
1
Materia: Redes y Servicios de comunicación II
Docente: Ing. Remmy Fuentes T.
Remmy.fuentes@gmail.com
Tipo de documento: Guía PHP – Validación de usuarios
Con nuestra tabla definida, procederemos a ingresar datos a la tabla, ingresaremos un usuario
Usuario: redes
Clave: univalle
Nombre: JOSE PERES
Pagina: usuario1.php
Consulta SQL:
INSERT INTO `ids`.`usuario` (
`usuario` ,
`clave` ,
`nombre` ,
`pagina`
)
VALUES (
'redes', 'univalle', 'Jose Peres', 'usuario1.php'
);
Paso3: Construiremos la página en PHP que validará los datos(validar.php) recogidos a través del
formulario:
Para esto, crearemos una página PHP en Dreamweaver, la cual guardaremos como “validar.php” e
insertaremos el siguiente código:
<?php
session_start();
if (!isset( $_POST['usuario'] ))
{
header("Location: index.php");
}
else
{
$id = mysql_connect("localhost", "root", "1234");
mysql_select_db("ids", $id);
$consulta = "SELECT * FROM Usuario WHERE usuario = '{$_POST['usuario']}' AND clave = '{$_POST['contrasenia']}'";
$datos = mysql_query($consulta, $id);
$numDatos = @mysql_num_rows($datos);
}
if ($numDatos <= 0)
{
echo "Error: El usuario o el password no existen.<br>";
session_destroy(); //Es muy importante destruir la sesión, para asegurarnos que las variables queden eliminadas
}
else
{
$_SESSION["autorizacion"]="si";
$_SESSION["nombre"]=" ".mysql_result($datos, 0, 2); // registro 0, campo 2, Nombre del usuario;
header("Location:" .mysql_result($datos, 0, 3)); // registro 0, campo 3, que será la página personal del usuario
//header("Location: usuario1.php");
}
?>
La explicación del código es la siguiente:
session_start();: Se inicia una sesión para el usuario que está ingresando a nuestra página.
$_SESSION[””]= Estas son variables de sesión que serán validas mientras la sesión exista.
2
Materia: Redes y Servicios de comunicación II
Docente: Ing. Remmy Fuentes T.
Remmy.fuentes@gmail.com
Tipo de documento: Guía PHP – Validación de usuarios
Antes de seguir:
¿Qué es una sesión?
Cada vez que un usuario en particular visita una página de nuestra propiedad, nuestro servidor le asigna
una sesión única, la cual se encarga de individualizar a cada usuario sobre otro que pueda estar viendo
nuestro sitio, ya sea al mismo momento o durante cualquier otro. La individualización se realiza
mediante la asignación de “identificadores de sesión”, los cuales son generados al azar y basándose en
diferentes parámetros para cada caso, por lo que la probabilidad de que una identificación de sesión de
2 usuarios distintos se repita es altamente improbable si no imposible. Esto es bastante similar al
funcionamiento de las “cookies”, a diferencia que es un método mucho más seguro, ya que en el caso
de las cookies, si un navegador las tiene desactivadas se imposibilita el reconocimiento del usuario,
mientras que el método de las sesiones corre para todos por igual.
PHP, así como otros lenguajes dinámicos para páginas (como JSP, ASP, etc.), nos otorga la posibilidad de
trabajar con un vector de sesión llamado $_SESSION, el cual se adjunta al identificador ya asignado por
el servidor. En este vector nosotros podemos definir un número interminable de variables, a las cuales
podremos acceder desde cualquier página de nuestro sitio, sin la necesidad de pasar las variables por
URL (los casos de POST y GET que veíamos en tutoriales anteriores). Para poder hacer uso del vector de
sesión es necesario usar la sentencia session_start(); al inicio de cada página PHP que lo requiera.
Paso 4: A continuación haremos una página PHP llamada “usuario1.php”, la cual se encargará de cargar
la página solicitada. Lo interesante de este método, es que se puede tener una página general o también
una página para cada usuario.
Creamos nuestra página PHP e insertamos el siguiente código:
<?
session_start();
if($_SESSION["autorizacion"]!="si"){
header("location: index.html");
exit();
}
?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http‐equiv="Content‐Type" content="text/html; charset=utf‐8" />
<title>Untitled Document</title>
<style type="text/css">
<!‐‐
.style1 {font‐size: x‐large}
‐‐>
</style></head>
<body>
<div align="center"><span class="style1">BIENVENIDO</span></div>
<?
echo "<strong><font align='center' color='blue' size='16'><strong></font>";
echo $_SESSION["nombre"]." ";
?>
</body>
</html>
Lo primero que hacemos es iniciar una sesión y preguntar si la variable “autorización" tiene el valor
diferente de “si", en ese caso significa que no hubo una autorización y el programa nos envía
3
Materia: Redes y Servicios de comunicación II
Docente: Ing. Remmy Fuentes T.
Remmy.fuentes@gmail.com
Tipo de documento: Guía PHP – Validación de usuarios
automáticamente a la página index.html. Este variable nos permitirá hacer un manejo de sesiones en
cualquiera de las páginas que sigan preguntando simplemente si esta activado el valor si, y de esa forma
mostrar el contenido autorizado.
4