sessionStart() && SESSION_LEVEL > 0) { // session exists $this->sessionCheck(); $this->sessionRefresh(); } } function sessionStart() { if (!isset($_SESSION['_key']) && SESSION_LEVEL > 0) { // new sess $time = time(); $key = md5($_SERVER['REMOTE_ADDR'].$time.SESSION_SECRET); $_SESSION['_time'] = $time; $_SESSION['_key'] = $key; $_SESSION['_addr'] = $_SERVER['REMOTE_ADDR']; setcookie('chainlink[key]',$key); return true; } return false; } function sessionCheck() { if (SESSION_LEVEL > 0) { if (!isset($_COOKIE['chainlink']['key']) || $_COOKIE['chainlink']['key'] != $_SESSION['_key']) { $this->sessionReset(); return; } if (($_SESSION['_time'] + SESSION_EXPIRE) < time()) { $this->sessionReset(); return; } if (SESSION_LEVEL == 2 && $_SERVER['REMOTE_ADDR'] != $_SESSION['_addr']) { $this->sessionReset(); return; } } } function sessionRefresh() { if (SESSION_LEVEL > 0) { $_SESSION['_time'] = time(); } } function sessionReset() { global $errors; session_unset(); $this->sessionStart(); $errors->add('Your session has been reset.'); } } ?>