Buscador


En todo Internet
En Uterra.Com

Contenidos


 

En un artículo anterior vimos como crear un sistema de identificación que limitaba el acceso a una sola página, en este artículo vamos a ver como extender ese sistema de identificación a tantas páginas como necesitemos.

Este sistema, como el anterior, tendrá como limitación, que solo habrá un nombre de usuario y una clave, pero nos permitirá conocer la lógica del procedimiento a seguir. Si no has visto el artículo anterior, pulsa aquí para verlo, de lo contrario, si no tienes conocimientos de PHP, no lograras entender la lógica del funcionamiento.

Para crear un sistema de identificación necesitamos, al menos, un valor de comparación. Cuando usamos nombre de usuario y clave usamos dos, para que sea más “difícil” acceder por azar, pero en cuento tal, con uno es suficiente.

Pues bien, basándonos en esto,  lo que tenemos que hacer es, una vez nos hemos identificado correctamente, crear una nueva variable, y en función de esta, permitir el acceso o no a las demás páginas.

El problema que se plantea es como enviar esa variable a las nuevas páginas sin desvelar su valor. La respuesta está en las sesiones. Si no conoces el funcionamiento de las variables de sesión, lee este artículo.

Dicho esto, ahora vamos a tener un formulario de identificación para la entrada de datos igual al que ya usamos, como entonces, no creo que necesite ninguna explicación “form_acceso.php”.

También tendremos la página que reconoce si los datos de acceso son los correctos y crea la variable de sesión que permitirá el acceso en las demás páginas “identifica_usuario.php”.

Las otras páginas que queremos proteger son “pagina_protegida1.php” y “pagina_protegida1.php”.

De esta forma, cuando un usuario se identifica correctamente, se crea una variable de sesión. Esta variable se recoge en las demás páginas que queremos proteger, y mediante una estructura condicional del mismo tipo que la que usamos para identificar si el usuario y clave son correctos.

Siguiendo esta lógica, podemos tener tantas páginas protegidas como necesitemos.

Aunque puede verse en el código, os recuerdo que el nombre de usuario es perico y la clave es 1234.

Por último, si queremos dejar de estar identificado, creamos una nueva página “salir.php” que, en este caso, solo elimina esa variable de sesión, y le damos acceso mediante en típico enlace “Salir”. 

El código de las diferentes páginas puede verse a cotinuación. 

--------- form_acceso.php

<html>

<head>
<title>Acceso restringido.</title>
</head>

<body>

<form method="POST" action="pagina_protegida.php">

    <p>Usuario: <input type="text" name="usuario" size="20"></p>
    <p>Clave: <input type="password" name="clave" size="15"></p>
    
    <p><input type="submit" value="Entrar" name="B1"></p>
    
</form>

</body>

</html>

--------- identifica_usuario.php

<?php session_start(); ?>
<html>

<head>
<title>Acceso restringido.</title>
</head>

<body>

<?php 
// Recibimos los datos del formulario

$usuario $_POST['usuario'];
$clave $_POST['clave'];

// Asignamos los valores para permitir el acceso

$usuario_valido "perico";
$clave_valida "1234";

// Comparamos los datos recibidos con los permitidos

if ($usuario == $usuario_valido && $clave == $clave_valida


// Creamos la variable de sesion que nos permitira el acceso a las demas paginas

$_SESSION["login_ok"] = "identificado";

// Enviamos al usuario a una de las paginas protegidas

echo "<script type=\"text/javascript\">    
window.location=\"pagina_protegida1.php\";  
</script> "
;


else 

echo 
"Los datos de acceso no son correctos"

?>

</body>

</html>

--------- pagina_protegida1.php

<?php session_start();

$login_ok $_SESSION["login_ok"];

if (
$login_ok == "identificado") {
// ----------------------------------------------------------------
// Aqui coloco los contenidos protegidos dentro de un echo
echo "
<html>

<head>
<title>Pagina protegida 1</title>
</head>

<body>

<h3>Página protegida 1</h3>

<p>Esta es una página protegida.</p>
<p>En ella guardo mis claves de e-mail.</p>

<p><a href=\"pagina_protegida2.php\">Ir a pagina 2</a></p>

<p><a href=\"salir.php\">Salir</a></p>

</body>

</html>
"
;
// ----------------------------------------------------------------
}
else
{
echo 
"Los datos de acceso no son correctos";
}
?>

--------- pagina_protegida2.php

<?php session_start();

$login_ok $_SESSION["login_ok"];

if (
$login_ok == "identificado") {
// ----------------------------------------------------------------
// Aqui coloco los contenidos protegidos dentro de un echo
echo "
<html>

<head>
<title>Pagina protegida 2</title>
</head>

<body>

<h3>Página protegida 2</h3>

<p>Esta es otra página protegida.</p>
<p>En ella guardo mis claves de acceso a las redes sociales.</p>

<p><a href=\"pagina_protegida1.php\">Ir a pagina 1</a></p>

<p><a href=\"salir.php\">Salir</a></p>

</body>

</html>
"
;
// ----------------------------------------------------------------
}
else
{
echo 
"Los datos de acceso no son correctos";
}
?>

--------- salir.php

<?php session_start();
unset(
$_SESSION['login_ok']); 

// Enviamos al usuario al formulario de identificacion

echo "<script type=\"text/javascript\">    
window.location=\"form_acceso.php\";  
</script> "
;

?>

Código PHP