Cookies
PHP Code Examples
[Download]   [Execute]
<?php include '../util.inc'; 

define(PASSWD, 'open sesame');
// Yes, you're welcome to know this valuable (cough, cough) password.

// Links.
function gen_link($content, $func = '') {
	$me = $_SERVER['SCRIPT_NAME'];

	if($func) $func = "?oper=$func";

	return "<a href=\"$me$func\">$content</a>";
}

// Forms.
function start_form($func)
{
	$me = $_SERVER['SCRIPT_NAME'];

	return <<<FSTART
	<form action="$me" method="POST">
	<input type="hidden" name="oper" value="$func">
FSTART;
}

$oper = $_REQUEST['oper'];
$logged_in = $_COOKIE['logged_in'];

// Wanted to log out.
if($oper == 'out') {
	$logged_in = false;
	setcookie('logged_in');  // With no value, clears the cookie.
}

// Wanted to log in
$error = 0;
$newlog = 0;
if($oper == 'in') {
	if($_REQUEST['passwd'] == PASSWD) {
		// Logged in for a week.
		setcookie('logged_in', '1', time() + 7 * 24 * 60 * 60);
		$newlog = 1;
	} else
		$error = 1;
}

// If already logged in.
if($newlog) {
	start('Welcome to the Cookie Jar!');
	echo "Welcome, valued cookie holder!";
	echo '<br>[ ',  gen_link('reload'), ' ]';
	echo ' [ ',  gen_link('log out', 'out'), ' ]';
} else if($logged_in) {
	start('Welcome Back to the Cookie Jar!');
	echo "Welcome back, possessor of a cookie!";
	echo '<br>[ ',  gen_link('reload'), ' ]';
	echo ' [ ',  gen_link('log out', 'out'), ' ]';
} else {
	if($error)
		start('Cookie Jar Login Failed');
	else
		start('Cookie Jar Login');
	echo start_form('in');
	echo 'Password: <input type="password" size=15 name="passwd"><br>';
	echo '<input type="submit" name="go" value="LOGIN">';
	echo '</form>';
}
?>
</body>
</html>