# generate a new random 16-character string
function session_generate_key() {
$character_set = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
- $id = " ";
+ $id = " ";
# PHP 4.2.0 and up seed the random number generator for you.
# Lets hope that it seeds with something harder to guess than the clock.
- for($i = 0; $i < 16; ++$i) {
- $id{$i} = $character_set{mt_rand(0, 61)};
- }
+ for($i = 0; $i < 16; ++$i) {
+ $id{$i} = $character_set{mt_rand(0, 61)};
+ }
- return $id;
+ return $id;
}
# track this user with a session cookie (ie a cookie that goes away when the
db_insert('wfpl_sessions', 'session_key,length', $session_key, $length);
$GLOBALS['session_id'] = db_auto_id();
$GLOBALS['session_key'] = $session_key;
- $_REQUEST['session_key'] = $session_key; #just in case someone calls session_exists() after session_new()
+ $_COOKIE['session_key'] = $session_key; #just in case someone calls session_exists() after session_new()
session_touch($length);
return $GLOBALS['session_key'];
}
}
$expires = time() + $length;
- header('Set-Cookie: session_key=' . $GLOBALS['session_key']);
+ header('Set-Cookie: session_key=' . $GLOBALS['session_key'] . '; Path=/');
db_update('wfpl_sessions', 'expires', $expires, 'where id=%i', $GLOBALS['session_id']);
}
# return true if a session exists
function session_exists() {
- if(!isset($_REQUEST['session_key'])) {
+ if(!isset($_COOKIE['session_key'])) {
return false;
}
return true;
}
- $session_key = ereg_replace('[^a-zA-Z0-9]', '', $_REQUEST['session_key']);
+ $session_key = ereg_replace('[^a-zA-Z0-9]', '', $_COOKIE['session_key']);
if(!strlen($session_key) == 16) {
return false;
-# return username if a session exists and is authenticated
+# return true if a session exists and is authenticated
function logged_in_as_admin() {
if(!session_exists()) {
return false;
}
-# find existing session, or make one
+# find existing session, or make one (name "session_init" was taken)
function init_session() {
if(!session_exists()) {
session_new();