[b]include.inlog.php:[/b]
<?php
<?php
	if(empty($_SESSION)) //als er nog geen sessie gestart is
	{
		session_start(); //dan starten wij hem wel
	}
	
	/**
	* Check of variabele bestaat
	*
	* @param string $x de variabele waarvan bekeken moet worden of hij bestaat
	* @param string $y de waarde die gereturned moet worden wanneer $x niet bestaat
	* @param string $z achtervoegsel wat achter $x wordt geplakt als deze bestaat
	* @return string $x.$z of $y
	*/
	
	function ifset(&$x, $y = null,$z=null)
	{
	    return isset($x) ? $x.$z : $y;
	}

	/**
	* Toon het inglogformulier
	*
	* @param array $aErrors een array met errors die getoond worden in het formulier
	* @return string het inlogformulier
	*/
	
	function toonInlogFormulier($aErrors = array())
	{
		return 	'<span class="formError">'.ifset($aErrors['global'],null,'<br /><br />').'</span><form action="'.$_SERVER['SCRIPT_NAME'].'" method="post">
					<label for="username">Gebruikersnaam:</label>	<input type="text" 		name="username" id="username"	value="'.ifset($_POST['username']).'" /> <span class="formError">'.ifset($aErrors['username']).'</span><br />
					<label for="password">Wachtwoord:</label>		<input type="password" 	name="password" id="password"	value="'.ifset($_POST['password']).'" /> <span class="formError">'.ifset($aErrors['password']).'</span><br />
					<br />
					<input type="submit" value="Inloggen" />
				</form>';
	}
	
	/**
	* Valideer het inglogformulier
	*
	* @param string $sUsername de correcte username
	* @param string $sPassword een md5 hash van het correcte wachtwoord
	* @return string het inlogformulier bij een foutieve login
	*/
	
	function validateInlogformulier($sUsername, $sPassword)
	{
		$aErrors = array();
		
		if($_SERVER['REQUEST_METHOD'] == 'POST') //wanneer er een post request is uitgevoerd
		{
			if(empty($_POST['username']))		{ $aErrors['username'] 		= 'Geef een gebruikersnaam op'; } //checken we of er een username
			if(empty($_POST['password']))		{ $aErrors['password']		= 'Geef een wachtwoord op'; } //en password is opgegeven
			
			if(empty($aErrors)) //zo ja
			{
				if($_POST['username'] == $sUsername && md5($_POST['password']) == $sPassword) //Is het de goede username en het goede password
				{
					$_SESSION['loggedin'] = md5($_SERVER['REMOTE_ADDR']); //dan zetten we een sessie met een hash van het ip
					header('Location: '.$_SERVER['SCRIPT_NAME']); //en redirecten we de user weer naar deze pagina
					exit(); //er hoeft nu dus niets meer uitgevoerd te worden
				}
				else //is het een verkeerde combinatie
				{
					$aErrors['global'] = 'Foutieve inloggegevens'; //dan zetten we dat in de error array
				}
			}
			
			return toonInlogFormulier($aErrors); //We tonen het inlogformulier opnieuw, ditmaal met (een) error(s)
		}
	}
	
	/**
	* Check of een gebruiker is ingelogd
	*
	* @return boolean
	*/
	
	function isIngelogd()
	{
		if(isset($_SESSION['loggedin']) && $_SESSION['loggedin'] == md5($_SERVER['REMOTE_ADDR'])) //als de sessie bestaat en de waarde in de sessie is een md5 hash van het ip
		{
			return true; //dan geven we true terug
		}
		else //anders is een gebruiker niet ingelogd
		{
			return false; //en returnen we false
		}
	}
	
	/**
	* Toon of valideer het inlogformulier
	*
	* @param string $sUsername de correcte username
	* @param string $sPassword een md5 hash van het correcte wachtwoord
	* @return string
	*/
	
	function login($sUsername, $sPassword)
	{
		if($_SERVER['REQUEST_METHOD'] == 'POST') //als er een post request is uitgevoerd
		{
			return validateInlogformulier($sUsername, $sPassword); //dan gaan we het formulier valideren
		}
		else //als er geen post request is uitgevoerd
		{
			return toonInlogFormulier(); //dan is tonen genoeg
		}
	}

	/**
	* Log een gebruiker uit
	*/
	
	function loguit()
	{
		unset($_SESSION['loggedin']); //we verwijderen de sessie
		header('Location: '.$_SERVER['SCRIPT_NAME']); //en sturen de gebruiker door naar de huidige pagina
	}
?>

[b]Voorbeeld van gebruik:[/b]
<?php
	session_start(); //start een sessie, niet noodzakelijk wordt namelijk ook in include.inlog.php gedaan, maar ter illustratie dat dit geen error oplevert
	
	include 'include.inlog.php'; //include onze inlogfuncties
	
	if(!isIngelogd()) //als iemand niet is ingelogd
	{
		echo login('username', '5f4dcc3b5aa765d61d8327deb882cf99'); //dan tonen we het inglogdformulier. (inlognaam: username, wachtwoord: password)
	}
	elseif(isset($_GET['loguit'])) //als iemand uit wil loggen
	{
		loguit(); //dan mag dat
	}
	else
	{
		echo 'ingelogd. <a href="?loguit">loguit</a>'; //en anders mag je zelf weten wat je doet
	}
?>
