Buen día señores.
Practico con PHP cómo restringir acceso a una página web. He bajado varios códigos PHP y ninguno me funciona. En un principio yo usaba el WampServer para emular un host. Después me enteré que el código que intento correr no funciona en PHP instalado como CGI, sino que sólo funciona en PHP instalado como módulo Apache (sea lo que sea que esto signifique). Por esto desinstalé el WampServer e intenté instalar el Apache y luego el PHP pero no pude configurar por lo mal detalladas que resultan ser las instrucciones de configuración de las webs que ayudan para esto. Así que encontré una cosa que se llama EasyPHP que trae todo en uno: Apache, PHP, MySQL, etc. Tampoco funciona el código empleando este último programa.
El fallo consiste en que cuando pongo el usuario y contraseña, el navegador me devuelve otra vez la misma ventana para introducir usuario y contraseña, como si los hubiese escrito mal.
USUARIO: alfa
CONTRASEÑA: 123
Gracias al destino, tengo acceso a un servidor web, y uno pensaría que si se corre el archivo PHP empleando un servidor hecho y derecho ya no aparecerán los problemas que surgen cuando se intenta correrlo localmente con un emulador de servidor. He subido el archivo PHP al servidor y tampoco funciona! CARAJO! Cuál es la bronca?
Les pego aquí el código completo.
Código PHP:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Restringir acceso</title>
</head>
<body>
<?php
if (!isset($PHP_AUTH_USER)) {
header('WWW-Authenticate: Basic realm="Se requiere autorización para entrar a este sitio"'); header('HTTP/1.0 401 Unauthorized'); echo 'Authorization Required.';
}
else
{
echo "Ha introducido el nombre de usuario: $PHP_AUTH_USER<br>";
echo "Ha introducido la contraseña: $PHP_AUTH_PW<br>";
}
?>
<?php
if (($PHP_AUTH_USER!="alfa") || ($PHP_AUTH_PW!="123"))
{
header('WWW-Authenticate: Basic realm="Se requiere autorización..."'); header('HTTP/1.0 401 Unauthorized'); echo 'Nombre de usuario y/o contraseña inválidos.';
}
?>
<html>
<head>
<title>Ejemplo de PHP</title>
</head>
<body>
Ha conseguido el acceso a la <B>zona restringida</B>.
</body>
</html>
</body>
</html>