Scripts

Pagina beveiligen zonder database

Met dit script kun je één over meerdere pagina's beveiligen met een login voor meerdere verschillende gebruikers. Je hebt hier geen database voor nodig. In het script kun je meerdere inlognamen met bijhorende passwords ingeven. ze staan in het array genaamd $secrets. Wil je het script gebruiken dan kan je de code bovenin jouw .php pagina plakken. Bij gebruik op meerdere pagina's moet je het script op elke pagina plakken. Het script is eigenlijk niet echt gemaakt voor meerdere pagina's omdat het updaten van de gebruikers in het array dan op al die pagina's moet gebeuren. Dan is het gebruik van een database uiteraard een stuk simpeler. Verder lijkt mij dat het commentaar in het script voldoende uitleg geeft.

pagina-beveiligen-zonder-database
<?php
// Om sessions te kunnen gebruiken
session_start();
// Het array met de loginnamen met bijbehorende passwords
$secrets = array("naam1" => "password1", "naam2" => "password2");
// De naam voor de sessie met de waarde voor de sessie
$sessionname = "Secure";
$sessiontekst = md5(date("d-m-Y"));
// Checken of er iets is gepost vanuit een formulier
if($_SERVER['REQUEST_METHOD'] == "POST")
{
	// Checken of het inloggen of uitloggen is
	$keuze = (isset($_POST['uitloggen'])) ? "uitloggen" : "inloggen";
	if($keuze == "inloggen")
	{
		// Keuze is inloggen
		$naam = (isset($_POST['naam'])) ? trim($_POST['naam']) : "";
		$paswoord = (isset($_POST['paswoord'])) ? trim($_POST['paswoord']) : "";
		// Naam en paswoord checken of het in het array staat
		$bool = false;
		foreach($secrets as $key => $value)
		{
			// De $bool wordt true zodra de naam en het paswoord gevonden zijn
			$bool = ($bool OR ($key == $naam AND $value == $paswoord));
		}
		if($bool)
		{
			// Gebuiker is gevonden dus session aanmaken en naam onthouden
			$_SESSION[$sessionname] = $sessiontekst;
			$_SESSION['naam'] = $naam;
		}
		else
		{
			// Gebruiker is niet gevonden
			exit("Foute inloggegevens");
		}
	}
	else
	{
		// Keuze is uitloggen dus session weggooien
		session_destroy();
		exit("Je bent nu uitgelogd");
	}
}
// Checken of de session (niet) bestaat of (niet) de juiste waarde heeft
if(!isset($_SESSION[$sessionname]) OR $_SESSION[$sessionname] != $sessiontekst)
{
	// Session is niet in orde dus een formulier
	echo '<form action="" method="POST">
	Inlognaam: <input type="text" name="naam"><br/>
	Password: <input type="password" name="paswoord"><br/>
	<input name="inloggen" type="submit" value="Login">
	</form>';
	exit();
}
// Alles is in orde dus hieronder komt de pagina met, eventueel, onderstaande uitlogknop
echo '<form action="" method="POST">
<input name="uitloggen" type="submit" value="Logout">
</form><br/>';
// Eventueel te gebruiken naam
echo 'Welkom ' . $_SESSION['naam'];
?>

Reacties

0
Nog geen reacties.