Hola todos!
Mi  problema es que tengo que restrigir el acceso a una página a determinados ususarios. Lo que hago es pedir un nombre de usuario y una contraseña, de manera que me sale el típico cuadro de diálogo para introducirlos (que cambiara segun el navegador). Mi php es el siguiente:
 
<html>
<body>
 
<?
 if (!isset($_SERVER["PHP_AUTH_USER"]))
  {
   header("WWW-Authenticate: Basic realm=\"Zona privada\"");
   header("HTTP/1.0 401 Unauthorized");
   echo "<h2>No estas autorizado a ver esta información.\n</h2>";
   exit;
  }
 else
 {
 
  echo "<h2>Esta es información confidencial.</h2>";
  $lineas=file("usuarios.txt");
  $var=FALSE;
  foreach($lineas as $lin)
   {
   $dividir=explode(":",$lin);
   $nom=$dividir[0];
   $pass=$dividir[1];
   $carnet=$dividir[2];
   if(($_SERVER['PHP_AUTH_USER']==$nom)&&(crypt($_SERVER['PHP_AUTH_PW'],"AA")==$pass))
      {  echo "<h2>Bienvenido,<i> {$_SERVER['PHP_AUTH_USER']}</i>.</h2>";
         echo "<h3>El usuario esta reconocido dentro del archivo de configuración</h3>";
         echo "<h3><a href='principal.php'>Acceder a la zona privada</a></h3>" ;
         $var=TRUE;
 
      break;
      } 
   }
   if($var==FALSE)
    {echo "<h3>No existe ese usuario</h3>";
    echo "<h3><a href='registro.html'>Deseo registrame</a></h3>";}
 
}
 
 
 
?>
 
</body>
</HTML>
 
En el archivo usuarios.txt están alamacenadas las contraseñas y nombres de usuarios de los ya registrados y solo a ellos se les permite el acceso. 
El caso es que si un usuario al meter su identificacion en el cuadro de dialogo se equivoca, se le redirige a una página de advertencia que le dice que no tiene autorizacion para entrar al sitio que quería y tiene la opcion de volver a la pagina principal donde tendria que poder volver a introducir su nombre de usuario y clave. Sin embargo, la unica manera de que vuelva a aparecer el cuadro de dialogo es cerrando el navegador y abriendolo de nuevo.
Hay algun modo de solucionar esto?
Espero haberme explicado con claridad. 
 
Muchas gracias a todos.
Saludos 
   
 

