Página web protegida con  contraseña en PHP

Página web protegida con contraseña en PHP

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>
	';
}
?>

Deja un comentario