Autentificacion de usuarios

panchin_romero
11 de Mayo del 2004
Tengo un problema con este codigo, al autentificar, no me permite entrar me regresa a la ventana de la contraseña, o sease que no me la valida, si alguien puede ayudarme, estaria muy agradecido

<?
$entrada=false;
if (substr($SERVER_SOFTWARE, 0, 9) == "Microsoft" && !isset($PHP_AUTH_USER) &&
!isset($PHP_AUTH_PW) && substr($HTTP_AUTHORIZATION, 0, 6) == "Basic ")
{
list($PHP_AUTH_USER, $PHP_AUTH_PW) = explode(":", base64_decode(substr($HTTP_AUTHORIZATION, 6)));

if (isset( $PHP_AUTH_USER ) && isset ($PHP_AUTH_PW))
{
$sql= "SELECT * FROM usuarios WHERE usuario ='".$_SERVER['HTTP_AUTH_USER']."' AND password ='".$_SERVER['HTTP_AUTH_PW']."'";

$result=mysql_query($sql);

if (mysql_num_rows($result)>0)
{
$entrada = true ;
}
}

if (!$entrada)
{
header('WWW-Authenticate: Basic realm="Comercio Internacional Sistematizado"');
header( 'HTTP/1.0 401 Unauthorized' );
echo 'Authorization Required.';
exit;
}
else
echo "Informacion secreta";
?>

rootphp
11 de Mayo del 2004
y la conexion con la BD?

panchin_romero
11 de Mayo del 2004
Logr esta solucion, si jala, solamente que al equivocarse de password, y volver a querer entrar, ya no sale la ventana de contraseña puesto que el isset busca si esta definida la variable y como ya lo esta con una variable erronea, ya no sale. que puedo hacer?

<?php
$entrar=false;
if (substr($SERVER_SOFTWARE, 0, 9) == "Microsoft" && !isset($PHP_AUTH_USER) &&
!isset($PHP_AUTH_PW) && substr($HTTP_AUTHORIZATION, 0, 6) == "Basic ")
{
list($PHP_AUTH_USER, $PHP_AUTH_PW) = explode(":", base64_decode(substr($HTTP_AUTHORIZATION, 6)));
}
if (isset($_SERVER['PHP_AUTH_USER']))
{
require ("conexion.php");
$sql= "SELECT * FROM usuarios WHERE usuario ='".$_SERVER['PHP_AUTH_USER']."' AND password ='".$_SERVER['PHP_AUTH_PW']."'";
$result=mysql_query($sql);
if (mysql_num_rows($result)!=0)
$entrar = true;
}
if (!$entrar) {
header('WWW-Authenticate: Basic realm="Comercio Internacional Sistematizado"');
header('HTTP/1.0 401 Unauthorized');
unset ($_SERVER['PHP_AUTH_USER']);
$PHP_AUTH_USER='NULL';
$PHP_AUTH_USER='';
echo "Parece que no eres un usuario regristrado, por favor registrate
<a href="registro.html">Aqui</a><br/> o entra de nuevo";
echo "<a href="pruebapas.php">Ingresar</a>";
exit();
} else {
echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}
?>