Ben de hele dag al aan het zoeken en proberen. De bedoeling is dat je kan inloggen. Er wordt dan gecontroleerd of e.e.a. eerst klopt. Bij een klant kom je bij klant.php en wanneer admin inlogd bij admin.php.

Het inloggen lukt uiteindelijk. Alleen werkt de controle "minimaal 5 karakters" niet en de password wordt niet gecontroleerd. Ik kan van alles invoeren als wachtwoord maar het wordt goedgekeurd. Wie kan er even na kijken. Alvast bedankt.



<?php
        if (empty($_POST) === false) {
	$username = trim($_POST['username']);
	$password = trim($_POST['password']);

	if (empty($username) === true || empty($password) === true) {
		$errors[] = 'Gebruik een juiste gebruikersnaam/wachtwoord.';
	} elseif ($users->user_exists($username) === false) {
		$errors[] = 'De gebruikersnaam wordt niet herkend.';
	} elseif ($users->email_confirmed($username) === false) {
		$errors[] = 'Uw account is nog niet geactiveerd.';
	} else {
		if (strlen($password) > 5) {
		$errors[] = 'Het wachtwoord moet uit minimaal 5 karakters en zonder spaties zijn.';
		}
		$login = $users->login($username, $password);
		if ($login === false) {
		$errors[] = 'De ingevoerde gebruikersnaam/wachtwoord combinatie is niet juist.';		
		}
                $administratie = $_SESSION["administratie"];
		if($administratie=="Admin")
	 	{
		// Variabelen in session
		$_SESSION['username'] = $username;					
		$_SESSION['administratie'] = $administratie;

		session_write_close();
		header("Location: admin.php");
		exit();
		}							
		else {		
		// Variabelen in session 				
		$_SESSION['username'] = $username;								
		$_SESSION['administratie'] = $administratie;		
				
		session_write_close();	
		header('Location: klant.php');
		exit();
		}					
	}
} 
?>
Beste Thomas. Bedankt voor je advies. Je script werkt helaas niet bij mij (omleidingslus). Je gaat er ook vanuit zoals je al zegt "alsmede de stappen die genomen moeten worden om iemand in te loggen als de check is geslaagd".
Mijn functie login geeft alleen de waarde true/false na controle van de combinatie $username, $password. Wat moet ik dan toevoegen? Dan gaat het om de vergelijking $login === true of false lijkt me.
Je zult ergens moeten onthouden dat een inlogpoging is geslaagd, en daar (de manier waarop je het onthoudt) zul je op moeten controleren of iemand ingelogd is.

Daarom vond ik de naam voor de methode "login" een beetje misleidend en vroeg ik om bevestiging van de betekenis/werking.

Ik zou dus eigenlijk twee stappen verwachten in plaats van die ene login methode:
1. een authenticatie-stap, wat nu in feite de login methode is: invoer username+password, uitvoer: simpelweg "ja" als de gegevens kloppen en "nee" wanneer dit niet het geval is, en
2. een login-stap, waarin je de administratieve afhandeling verricht van een geslaagde authenticatie; dit kan bijvoorbeeld het instellen van sessie-variabelen zijn

Vervolgens controleer je of iemand ingelogd is door (het bestaan van) deze sessie-variabelen te raadplegen.

Reageren