Distinción de usuarios PHP

 
Inicio > Seguridad > Distinción de usuarios PHP

 
En la anterior página todo el mundo que tenía acceso a la parte restringida entraba con el mismo nombre de usuario y contraseña, esto evidentemente no es una buena solución, es mejor que cada persona tenga un nombre de usuario y contraseña, ya que de esta forma podemos inhabilitar a un usuario sin ver comprometida la seguridad de nuestro sitio.

En esta página veremos la forma de realizar esto, teniendo un fichero separado con los nombres de usuario y las contraseñas válidas. Dicho fichero podría tener el siguiente formato: nombre_de_usuario|contraseña. Por ejemplo:

passwords.txt
Joe|1235
Pedro|qwer
Noe|Gty45e
kermit|rwe4v

En este ejemplo se pide la autorización al comienzo de la página si no se ha establecido con anterioridad y se comprueba con el fichero de contraseñas que hemos llamado passwords.txt, si el nombre de usuario y contraseña coincide con alguna entrada del fichero se nos permite ver el resto de la página.
 
<?php //
    if (!isset($PHP_AUTH_USER)) {
      header('WWW-Authenticate: Basic realm="Acceso restringido"');
      header('HTTP/1.0 401 Unauthorized');
      echo 'Authorization Required.';
      exit;
   }
   
   $fich = file("passwords.txt");
   $i=0; $validado=false;
   while ($fich[$i] && !$validado) {
      $campo = explode("|",$fich[$i]);
      if (($PHP_AUTH_USER==$campo[0]) && ($PHP_AUTH_PW==chop($campo[1]))) $validado=true;
      $i++;
   }

   if (!$validado) {
      header('WWW-Authenticate: Basic realm="Acceso restringido"');
      header('HTTP/1.0 401 Unauthorized');
      echo 'Authorization Required.';
      exit;
   }
?>

<html>
<head>
   <title>Ejemplo de PHP</title>
</head>
<body>
Ha conseguido el acceso a la <B>zona restringida</B> con el usuario <?php echo $PHP_AUTH_USER?>.
</body>
</html>
 

 
  << Restringir acceso Siguiente: Sesiones ¿Qué son? >>
 
    Anunciate Contacto ¿Algún fallo?
 
 
 
 
 
Para visualizar tus páginas web de una manera profesional recomendamos FireFox

 
     
 
© Ing. Alfonso E. Martínez de Castro J. 2007
 
     
Creative Commons License
Esta obra está bajo una licencia de Creative Commons.