En este artículo haremos un sistema de logeo simple que iremos mejorando en artículos posteriores para lograr un sistema muy seguro.
Utilizaremos sesiones, sessions en inglés, para mantener al usuario logeado mientras navega por nuestra web ya sea en páginas de acceso restringido o no.
Nota: explicaré mínimamente el uso de sesiones pero no entraré en detalles, sí en un futuro artículo.
Para iniciar una sesión en PHP se utiliza la función session_start(), ejemplo
<?php
// Inicialización de la sesión.
session_start();
?>
De esta forma se le asignará a cada usuario un id único que es guardado en el navegador. Para imprimir el id de la sessión se utiliza session_id(), ejemplo
<?php
// Inicialización de la sesión.
session_start();
echo session_id();
?>
Bien, ya tenemos la sesión inicializada, este código debe estar en todas las páginas del site, por lo que podría estar al comienzo en un archivo config.php por ejemplo incluido en todos los demás archivos.
Pasemos ahora al script de logeo.
Ya tendríamos que tener echo el formulario que envía por ejemplo el usuario y la contraseña al script, ejemplo:
<form action=login_script.php method=post>
<p>Usuario: <input type=text name=usuario /></p>
<p>Contraseña: <
input type=password name=password /></p>
</form>
En el archivo login_script.php primeramente deberíamos comprobar que los datos que vienen del formulario sean los correctos:
<?php
// Incluimos el archivo config.php donde esta
inicializa la sesión.
inicializa la sesión.
include_once (config.php);
// Primeros comprobamos el usuario.
if ($_POST[usuario] == matias && $_POST[password] == 123456)
{
// Si es correcto comprobamos la contraseña.
// Si ambos datos son correctos guardamos estos datos en la sessión.
$_SESSION[logeado] = SI;
$_SESSION[usuario] = matias;
// Redijimos a la página correcta.
header (Location: zona_restringida.php);
}
else
{
// Si alguno de los datos ingresados son incorrectos redirigimos a la página de
// error o de nuevo al formulario de ingreso.
header (Location: login.php);
}
?>
Bien, en este código se ve lo siguiente, primeramente incluimos el archivo config.php donde hemos inicializado la sesión. Luego una simple forma de verificar que los datos enviados desde el formulario por POST sean lo que realmente queremos que sean.
Si los datos son correctos redijimos a la página donde se encuentra material solo para usuarios logeados, de lo contrario a la página donde se encuentra el formulario de logeo para que lo intente nuevamente.
Para guardar un dato en la sesión, como vimos utilizamos $_SESSION[nombre_de_la_sesion] = Valor.
Ahora simplemente en el archivo donde hay acceso restringido, zona_restringida.php podemos preguntar
si el valor guardado en la session logeado es igual a SI.
si el valor guardado en la session logeado es igual a SI.
<?php
// Incluimos el archivo config.php donde esta inicializa la sesión.
incluye_once (config.php);
// Comprobamos que el valor de la sesion logeado es igual a SI.
If ($_SESSION[logeado] != SI)
{
// Si el valor en logeado es distinto a SI
// Redigimos a login.php para que vuelva a entrar.
header (Location: login.php);
// Escapamos para que no muestre más nada.
exit();
}
// Si llegamos aquí es por realmente el valor de la sesión logeado es SI
// Imprimimos el valor de la sesión que contiene el nombre del usuario.
echo Hola . $_SESSION[usuario];
?>
Podemos utilizar este fragmento código en todas las páginas donde queramos que para ser visualizadas el usuario deba estar logeado.
Bueno, hasta aquí el primer artículo con una forma simple de login. En el próximo utilizaremos base de datos para que cada usuario tenga un nombre de usuario y contraseña diferentes.
Saludos,
No hay comentarios:
Publicar un comentario