sessionID . $current;
$sessionID = md5($current);
$sql = new Owl_DB;
// retrieve client ip
if(getenv("HTTP_CLIENT_IP")) {
$ip = getenv("HTTP_CLIENT_IP");
} elseif(getenv("HTTP_X_FORWARDED_FOR")) {
$forwardedip = getenv("HTTP_X_FORWARDED_FOR");
list($ip,$ip2,$ip3,$ip4)= split (",", $forwardedip);
} else {
$ip = getenv("REMOTE_ADDR");
}
// insert session information into db
$result = $sql->query("insert into $default->owl_sessions_table values ('$sessionID', '$userID', '$current', '$ip')");
if(!'result') {
die("$lang_err_sess_write");
}
return $sessionID;
}
/**
* Removes the specified session from the application.
*
* @param sessionID
* the session to remove
*/
function remove($sessionID) {
$sql = new Owl_DB;
$sql->query("delete from $default->owl_sessions_table where sessid = '$sessionID'");
}
/**
* Removes any stale sessions for the specified userID
*
* @param userID
* the userID to remove stale sessions for
*/
function removeStateSessions($userID) {
$time = time() - $default->owl_timeout;
$sql = new Owl_DB;
$sql->query("delete from $default->owl_sessions_table where uid = '" . $userID . "' and lastused <= $time ");
}
/**
* Used to verify a users session
*
* @param $sessionID
* The session id to verify
* @return
* array containing the userID, groupID and session verifiction status
*/
function verify($sessionID) {
getprefs();
global $default, $lang_sesstimeout, $lang_sessinuse, $lang_clicklogin;
$sess = ltrim($sessionID);
// initialise return status
$verified["status"] = 0;
// this should be an existing session, so check the db
$sql = new Owl_DB;
$sql->query("select * from $default->owl_sessions_table where sessid = '$sessionID'");
$numrows = $sql->num_rows($sql);
$time = time();
if ($numrows == "1") {
while($sql->next_record()) {
// get client ip
if(getenv("HTTP_CLIENT_IP")) {
$ip = getenv("HTTP_CLIENT_IP");
} elseif(getenv("HTTP_X_FORWARDED_FOR")) {
$forwardedip = getenv("HTTP_X_FORWARDED_FOR");
list($ip,$ip2,$ip3,$ip4)= split (",", $forwardedip);
} else {
$ip = getenv("REMOTE_ADDR");
}
// check that ip matches
if ($ip == $sql->f("ip")) {
// if timeout not exceeded
if(($time - $sql->f("lastused")) <= $default->owl_timeout) {
$verified["status"] = 1;
$verified["userID"] = $sql->f("uid");
$sql->query("select * from $default->owl_users_table where id = '".$verified["userid"]."'");
while($sql->next_record()) {
$verified["groupID"] = $sql->f("groupid");
}
} else {
// TODO: don't want html here
// session time out status
$verified["status"] = 2;
/*
// Bozz Bug Fix begin
if (file_exists("./lib/header.inc")) {
include("./lib/header.inc");
} else {
include("../lib/header.inc");
}
// Bozz Bug Fix End
print("
");
} else {
print("
");
}
exit();*/
}
} else {
// session in use status
$verified["status"] = 3;
/*
// Bozz Bug Fix begin
if (file_exists("./lib/header.inc")) {
include("./lib/header.inc");
} else {
include("../lib/header.inc");
}
// Bozz Bug Fix End
print("