Distinción de Usuarios

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda


Na anterior páxina todo o mundo que tiña acceso á parte restrinxida entraba co mesmo nome de usuario e contraseña, isto evidentemente non é unha boa solución, é mellor que cada persoa teña un nome de usuario e contraseña, xa que desta forma podemos inhabilitar a un usuario sen ver comprometida a seguridade do noso sitio.

Nesta páxina veremos a forma de realizar isto, tendo un ficheiro separado cos nomes de usuario e as contraseñas válidas.

O devandito ficheiro podería ter o seguinte formato: nome_de_usuario|contraseña. Por exemplo:

--- passwords.txt ---

Joe|1235 
Pedro|qwer 
Noe|Gty45e 
kermit|rwe4v 

Neste exemplo pídese a autorización ao comezo da páxina se non se estableceu con anterioridade e compróbase co ficheiro de contraseñas que chamamos passwords.txt, se o nome de usuario e contraseña coincide con algunha entrada do ficheiro permítellenos ver o resto da páxina.

<?phpif (!isset($_SERVER['PHP_AUTH_USER'])) {
     header('WWW-Authenticate: Basic realm="Acceso restrinxido"');
     header('HTTP/1.0 401 Unauthorized');
     echo 'Authorizacion requerida.';
     exit;}
 else {
     $fich = file("passwords.txt");
     $i = 0;
     $validado = false;
     while (!$validado && $i < count($fich)) {
          $campo = explode("|", $fich[$i]);
          if (($_SERVER['PHP_AUTH_USER'] == $campo[0]) && ($_SERVER['PHP_AUTH_PW'] == rtrim($campo[1])))
          $validado = true;
          $i++;
     }
     if (!$validado) {
          header('WWW-Authenticate: Basic realm="Acceso restrinxido"');
          header('HTTP/1.0 401 Unauthorized');
          echo 'Authorizacion Requerida.';
          exit;     }
 else {
?>
          <!DOCTYPE html>
          <html lang="es">
              <head>
                    <meta charset="UTF-8" />
                    <title>Título do Documento</title>
               </head>
               <body>
                    Conseguiu o acceso á zona restrinxida</B> co usuario <?php echo $_SERVER['PHP_AUTH_USER'] ?>.
          </body>
          </html>
          <?php
     }
}?>

--Veiga (discusión) 11:23 27 ene 2014 (CET)