Según las necesidades nos podemos encontrar en la situación de tener que proteger una página con contraseña y no queremos utilizar complejos sistemas de autentificación validando formularios o utilizando base de datos.
En el ejemplo vamos a ver cómo proteger una página web mediante contraseña de una manera muy sencilla.
Al principio del documento (protegido.php por ejemplo), creamos una variable $password donde guardaremos la contraseña que vamos a utilizar.
//contraseña a utilizar
$password = "secretisima";
Lo siguiente que haremos es mediante la función isset($_POST[‘password’]) comprobar si hemos introducido la contraseña en el formulario.
if (isset($_POST['password'])) {
}
Si no se ha pasado contraseña por post mostramos el formulario de inicio.
else{
echo '<h2>Logueate</h2>
<form name="form" method="post" action="">
<input type="password" name="password"><br>
<input type="submit" value="Login"></form>
';
}
El siguiente paso es valdiar la contraseña cuando se ha recibido por el post.
En el caso de no coincidir volvemos a mostrar el formulario
if ($_POST['password'] != $password) {
echo '<h2>Password erronea</h2>
<form name="form" method="post" action="">
<input type="password" name="password"><br>
<input type="submit" value="Login"></form>
';
}
Si la contraseña es correcta iniciamos la sesión y mostramos el contenido protegido.
inciamos sesion
session_start();
//mostramos contenido protegido
echo "<p>Has accedido a la zona restingida</p>";
Y por ultimo creamos un enlace para cerrar la sesión a través de get.
if (isset($_GET['logout'])) {
if($_GET['logout']==1) session_destroy();
}
El código final del fichero seria el siguiente.
<?php
//contraseña a utilizar
$password = "secretisima";
//comprobamos si se ha pasado la contraseña al formulario
if (isset($_POST['password'])) {
//si la contraseña es erronea mandamos al formulario de nuevo
if ($_POST['password'] != $password) {
echo '<h2>Password erronea</h2>
<form name="form" method="post" action="">
<input type="password" name="password"><br>
<input type="submit" value="Login"></form>
';
}
//accedemos al panel privado
else{
//inciamos sesion
session_start();
//mostramos contenido protegido
echo "<p>Has accedido a la zona restingida</p>";
//enalce para cerrrar sesion
echo '<p><a href="?logout=1">Cerrrar sesion</a></p>';
//si pasamos 'logout' por get cerramos la sesion
if (isset($_GET['logout'])) {
if($_GET['logout']==1) session_destroy();
}
}
}
//al no pasar contraseña enviamos al formulario de inicio
else{
echo '<h2>Logueate</h2>
<form name="form" method="post" action="">
<input type="password" name="password"><br>
<input type="submit" value="Login"></form>
';
}
?>