omdat de code wat lang is van het hele script kan je het op volgende link in een zip downloaden http://www.jb-web.org/downloads/scripts/php/ledenscript.zip.

Hieronder vind u wel de code van login.inc.php terug die de SESSIES en COOKIES beheerd bij het inloggen.

voor de uitleg erbij
code van voorbeeld.php:
[code]
<?php
if (! isset($_COOKIE['testcookie'])) {
	setrawcookie("testcookie", "test", time()+3600*24*365*30);
}
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Hoofdpagina Website</title>

<link href="../css/style.css" rel="stylesheet" type="text/css" />

<?php
/* er worden 4 SESSION waardes teruggegeven als de gebruiker is ingelogd:
	- $_SESSION['sid']  moet je toevoegen aan elke url waarnaar je doorverwijsd en je de SESSIE wil bewaren als er geen cookies aanvaard worden door de gebruiker zijn browser.
	- $_SESSION['right_id']  komt overeen met de waardes die je in je array moet vermelden.
	- $_SESSION['right_name'] de naam van gebruiker zijn recht en ook hieronder beschreven in de array documentatie.
	- $_SESSION['right_description'] een korte omschrijving van de rechten van de gebruiker.
*/

// hieronder geef je de cijfers op in een array van de benodigde rechten om de pagina te openen.
$rights = array(1, 2); // 0 = new, 1 = admin, 2 = mod, 3 = crew, 4 = trusted, 5 = member 
?>

</head>

<body>

<div>
Hier kan je inhoud zetten die voor iedereen zichtbaar mag zijn.
</div>

<?php
require_once("../includes/login.inc.php");
?>

<div>
Hier kan je inhoud zetten die zichtbaar mag zijn voor al de leden ongeacht hun rechten.
<input class="button" onclick="window.location='../registreer.php'" type="button" value="Registreer" />
</div>

<div>
<?php
if (in_array($_SESSION['right_id'], $rights)) {
	echo "Hier kan je inhoud zetten die zichtbaar mag zijn voor de gebruiker die voldoet aan de rechten in \$rights.<br />";
} else {
	echo "Hier kan je een mededeling zetten indien de gebruiker niet voldoet aan de rechten in \$rights.<br />";
}

echo "Je hebt <b>" . $_SESSION['right_name'] . "</b> rechten.<br />";
echo "<textarea rows=\"7\" cols=\"63\" readonly=\"readonly\">" . $_SESSION['right_description'] . "</textarea>";
?>
</div>

<a href="<?php	echo $_SERVER['PHP_SELF'] . "?" . $_SESSION['sid']; ?>">Herladen</a>

</body>
</html>
[/code]

code van login.inc.php
[code]
<?php
error_reporting(E_ALL);
session_start();

$path_to_script = "scripts/Eigen Scripts/ledenscript/includes"; // geef hier het path naar het script tov de server root

/*********************************
 * HIERONDER NIETS MEER WIJZIGEN *
 *********************************/
/* nagaan of de gebruiker zijn browser cookies aanvaard
   testen of eerder aangemaakte cookie 'testcookie' aanwezig is.
*/
if (isset($_COOKIE['testcookie'])) { // cookie aanwezig, url zonder SESSID instellen
	$_SESSION['url'] = $_SERVER['PHP_SELF'];
	$_SESSION['sid'] = "";
} else { // cookie NIET aanwezig, url MET doorgeven SESSID instellen
	$_SESSION['sid'] = htmlspecialchars(sid);
	$_SESSION['url'] = $_SERVER['PHP_SELF'] . "?" . htmlspecialchars(sid);
	setrawcookie("testcookie", "test", time()+3600*24*365*30);
}

// benodigde bestanden invoegen
require_once($_SERVER['DOCUMENT_ROOT'] . "/" . $path_to_script . "/config.inc.php");
require_once($_SERVER['DOCUMENT_ROOT'] . "/" . $path_to_script . "/mysql_config.inc.php"); // Mysql gegevens inladen
require_once($_SERVER['DOCUMENT_ROOT'] . "/" . $path_to_script . "/mysql_functies.inc.php"); // Mysql functies inladen

// bezoeker status instellen als niet ingelogged.
$user_verified = FALSE;

if (isset($_COOKIE[$cookie_name])) {
	$cookiedata = explode("/", $_COOKIE[$cookie_name]);
	list($coo_username, $coo_password, $coo_user_ip, $coo_verified, $cookie_remember) = $cookiedata;
	if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['verifypassword'])) {
		if ($coo_password == sha1(md5($_POST['verifypassword']))) {
			$coo_verified = time();
			if ($cookie_remember == TRUE) {
				setrawcookie($cookie_name, $coo_username . "/" . $coo_password . "/" . $coo_user_ip . "/" . $coo_verified . "/TRUE", time()+3600*24*365*30, $cookie_path, $cookie_domain);
			} elseif ($cookie_remember == FALSE) {
				setrawcookie($cookie_name, $coo_username . "/" . $coo_password . "/" . $coo_user_ip . "/" . $coo_verified . "/FALSE", 0, $cookie_path, $cookie_domain);
			}
		} else {
			echo "!! PASWORD VERIFICATION FAILED !!<br /> Gelieve opnieuw in te loggen";
			setrawcookie($cookie_name, "dummy", time()-3600*24*365, $cookie_path, $cookie_domain);
			header("Refresh: 2; URL= " . $_SESSION['url']);
			exit;
		}
	}
	dbconnect($host, $dbuser, $dbpass, $dbname);
	$query = "SELECT user_ip FROM leden_stats, leden_profile WHERE leden_profile.username='" . $coo_username . "' AND leden_profile.password='" . $coo_password . "'";
	$result = mysql_query($query);
	if (mysql_num_rows($result)) {
		$db_user_ip = implode(mysql_fetch_row($result));
		if ($db_user_ip == $coo_user_ip) {
			$query = "SELECT recht_id, recht_naam, recht_omschrijving FROM leden_rights, leden_stats WHERE leden_rights.recht_id=leden_stats.rechten AND leden_stats.username='" . $coo_username . "'";
			$result = mysql_query($query);
			$rights_info = mysql_fetch_row($result);
			list($_SESSION['right_id'], $_SESSION['right_name'], $_SESSION['right_description']) = $rights_info;
			if ($time_verify) {
				if ($coo_verified >= time()- $verify_after) {
					$username = $coo_username;
					$user_ip = $_SERVER['REMOTE_ADDR'];
					$user_verified = TRUE;
				} else {
					echo "Het is meer dan " . date("H:i:s", mktime(0,0,$verify_after)) ." geleden dat je geverifiëerd werd.<br />";
					echo "Gelieve je wachtwoord opnieuw in te geven";
					?>
					<form action="<?php echo $_SESSION['url']; ?>" method="post">
						<b>Password:</b>
						<input class="input" name="verifypassword" type="password" style="width: 100px" />
						<input class="button" name="login" type="submit" value="Verifi&euml;er" />
</form>
					<?php
					exit;
				}
			} else {
				$username = $coo_username;
				$user_ip = $_SERVER['REMOTE_ADDR'];
				$user_verified = TRUE;
			}
			mysql_query("UPDATE leden_stats SET online=1, laatst_actief='" . date('U') . "', user_ip='" . $user_ip . "', laatste_bezoek = '" . date('YmdHis') . "' WHERE username = '" . $username . "'");	
		} else {
			echo "!! IP NIET OK !!<br /> Er werd een cookie teruggevonden maar de data erin is corrupt! Gelieve opnieuw in te loggen";
			setrawcookie($cookie_name, "dummy", time()-3600*24*365, $cookie_path, $cookie_domain);
			// cookies verwijderen, database updaten indien nodig.
		}
	} else {
		echo "!! PASWOORD NIET OK !!<br /> Er werd een cookie teruggevonden maar de data erin is corrupt! Gelieve opnieuw in te loggen";
		setrawcookie($cookie_name, "dummy", time()-3600*24*365, $cookie_path, $cookie_domain);
		// cookies verwijderen, database updaten indien nodig.
	}
	mysql_free_result($result);
	mysql_close($m_connect);
} elseif (isset($_SESSION['username'], $_SESSION['password'], $_SESSION['user_ip'], $_SESSION['verified'])) {
	if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['verifypassword'])) {
		if ($_SESSION['password'] == sha1(md5($_POST['verifypassword']))) {
			$_SESSION['verified'] = time();
		} else {
			echo "!! PASWORD VERIFICATION FAILED !!<br /> Gelieve opnieuw in te loggen";
			session_destroy();
			header("Refresh: 2; URL= " . $_SESSION['url']);
			exit;
		}
	}
	if ($_SESSION['user_ip'] == $_SERVER['REMOTE_ADDR']) {
		if ($time_verify) {
			if ($_SESSION['verified'] >= time()- $verify_after) {
				$user_verified = TRUE;
			} else {
				echo "Het is meer dan " . date("H:i:s", mktime(0,0,$verify_after)) ." geleden dat je geverifiëerd werd.<br />";
				echo "Gelieve je wachtwoord opnieuw in te geven";
				?>
				<form action="<?php echo $_SESSION['url']; ?>" method="post">
					<b>Password:</b>
					<input class="input" name="verifypassword" type="password" style="width: 100px" />
					<input class="button" name="login" type="submit" value="Verifi&euml;er" />
</form>
				<?php
				exit;
			}
		} else {
			$user_verified = TRUE;
		}
	}
	
} elseif ($_SERVER['REQUEST_METHOD'] === "POST" && isset($_POST['login'], $_POST['username'], $_POST['password']) && strtolower($_POST['login']) === "inloggen") {
	$username = trim($_POST['username']);
	$password = trim($_POST['password']);
	if(preg_match('~["*$<>{}()\[\]§!\'´`áéíóúàèìòùçµäëïö\\\ü]~', $username)) {
		echo "De gebruikersnaam bevat ongeldige tekens! Probeer opnieuw.";
	} elseif(empty($username)) {
		echo "Gelieve een Gebruikersnaam in te vullen.";
	} elseif (empty($password)) {
		echo "Gelieve een wachtwoord in te vullen.";
	} else {
		dbconnect($host, $dbuser, $dbpass, $dbname);
		$query = "SELECT password FROM leden_profile WHERE username='" . $username . "'";
		$result = mysql_query($query);
		if (mysql_num_rows($result) === 1) {
			$db_user_password = implode(mysql_fetch_row($result));
			if ($db_user_password == sha1(md5($password))) {
				$query = "SELECT recht_id, recht_naam, recht_omschrijving FROM leden_rights, leden_stats WHERE leden_rights.recht_id=leden_stats.rechten AND leden_stats.username='" . $username . "'";
				$result = mysql_query($query);
				$rights_info = mysql_fetch_row($result);
				list($_SESSION['right_id'], $_SESSION['right_name'], $_SESSION['right_description']) = $rights_info;
				$password = sha1(md5($password));
				$user_ip = $_SERVER['REMOTE_ADDR'];
				$verified = time();
				if (isset($_COOKIE['testcookie'])) {
					if (isset($_POST['remember']) && $_POST['remember'] == "remember") {
						setrawcookie($cookie_name, $username . "/" . $password . "/" . $user_ip . "/" . $verified . "/TRUE", time()+3600*24*365*30, $cookie_path, $cookie_domain);
					} else {
						setrawcookie($cookie_name, $username . "/" . $password . "/" . $user_ip . "/" . $verified . "/FALSE", 0, $cookie_path, $cookie_domain);
					}
				} else {
					$_SESSION['username'] = $username;
					$_SESSION['password'] = $password;
					$_SESSION['user_ip'] = $user_ip;
					$_SESSION['verified'] = $verified;
				}
				$user_verified = TRUE;
				mysql_query("UPDATE leden_stats SET online=1, laatst_actief='" . date('U') . "', user_ip='" . $user_ip . "', aantal_bezoeken=(aantal_bezoeken+1) WHERE username = '" . $username . "'");
			} else {
				echo "Foutief Paswoord.";
			}
		} else {
			echo "Je gebruikersnaam kan niet gevonden worden gelieve je te registreren.";
		}
		mysql_close($m_connect);
	}
}
if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['logout']) && strtolower($_POST['logout']) == "uitloggen") {
	if (isset($_COOKIE[$cookie_name])) { 
		setrawcookie($cookie_name, "dummy", time()-3600*24*365, $cookie_path, $cookie_domain);
		session_destroy();
	} else {
		session_destroy();
	}
	dbconnect($host, $dbuser, $dbpass, $dbname);
	mysql_query("UPDATE leden_stats SET online=0, laatst_actief='" . date('U') . "', user_ip='" . $user_ip . "' WHERE username = '" . $username . "'");
	mysql_close($m_connect);	
	echo "U wordt Uitgelogged";
	header("Refresh: 2; URL= " . $_SERVER['PHP_SELF']);
	exit;
}
if (! $user_verified) {
	?>
	<form action="<?php echo $_SESSION['url']; ?>" method="post">
		<b>Username:</b>
		<input class="input" name="username" type="text" style="width: 100px" />
		<b>Password:</b>
		<input class="input" name="password" type="password" style="width: 100px" />
		<?php
		if (isset($_COOKIE['testcookie'])) {
			?>
			<input type="checkbox" name="remember" value="remember" style="width: 15px" />Onthouden
			<?php
		}
		?>
		<input class="button" name="login" type="submit" value="Inloggen" />
		<input class="button" onclick="window.location='../registreer.php'" type="button" value="Registreer" />
</form>
	<?php
	exit;
} else {
	?>
	<form action="<?php echo $_SESSION['url']; ?>" method="post">
		<input class="button" name="logout" type="submit" value="Uitloggen" />
</form>
	<?php
}
?>
[/code]