Autenticación HTTP con PHP y MYSQL

Aunque es posible autenticar usuarios y prohibir el acceso a recursos utilizando htacces con Apache, hay ocasiones en las que no es posible o cómodo utilizar este recurso.

PHP posee dos variables constantes predefinidas para manejar la autenticación HTTP que son $_SERVER[PHP_AUTH_USER] y $_SERVER[PHP_AUTH_PW] que guardan el nombre de usuario y contraseña respectivamente.

1 -Crear un script que compruebe los datos de usuario llamado ‘logfunction.php’ por ejemplo:

<?php
//conectar a la base de datos...
$db = mysql_connect($host, $dbuser, $dbpass);
$query = "SELECT * FROM users WHERE hash = md5($_SERVER['PHP_AUTH_USER'].$_SERVER['PHP_AUTH_PW'])";
$result = mysql_query($query);
if (mysql_num_rows($result) != 1){
echo "<h1>No estas autorizado</h1>";
echo "<a href=log.php>Volver a login</a>";
exit();
}
?>

2 – Crear una página de login que mostrará el diálogo de login:

<?php
//aqui se solicita usuario y contraseña
header('WWW-Authenticate: Basic realm="Mi dominio"');
header('HTTP/1.0 401 Unauthorized');
header('status: 401 Unauthorized');
//se verifican los datos introducidos

include ("logfunction.php");

header ("Location: pagina_reservada.php"); ?>

3 – En cada principio de página hacer un include al script de validación que aquí se ha llamado ‘logfunction.php’.

Sin categoría

Deja un comentario