function Execute(&$template, $request, &$dba, &$session, &$user) { if (!isset($request['id']) || !$request['id'] || intval($request['id']) == 0) { /* set the breadcrumbs bit */ $template = BreadCrumbs($template, $template->getVar('L_INVALIDFORUM')); $template->setInfo('cotent', $template->getVar('L_INVALIDFORUMASREAD'), FALSE); } else { $forum = $dba->getRow("SELECT * FROM " . INFO . " WHERE id = " . intval($request['id'])); if (!$forum || !is_array($forum) || empty($forum)) { /* set the breadcrumbs bit */ $template = BreadCrumbs($template, $template->getVar('L_INVALIDFORUM')); $template->setInfo('cotent', $template->getVar('L_INVALIDFORUMASREAD'), FALSE); } else { if ($forum['row_type'] & CATEGORY) { /* Set the Breadcrumbs bit */ $template = BreadCrumbs($template, $template->getVar('L_MARKFORUMSREAD'), $forum['row_left'], $forum['row_right']); /* Get the forums of this Category */ $result = $dba->executeQuery("SELECT * FROM " . INFO . " WHERE row_left > " . $forum['row_left'] . " AND row_right < " . $forum['row_right'] . " AND row_type = " . FORUM); $forums = isset($request['forums']) && $request['forums'] != null && $request['forums'] != '' ? iif(!unserialize($request['forums']), array(), nserialize($request['forums'])) : array(); /* Loop through the forums */ while ($result->next()) { $temp = $result->current(); $forums[$temp['id']] = array(); } $forums = serialize($forums); /* Cache some info to set a cookie on the next refresh */ bb_setcookie_cache('forums', $forums, time() + ini_get('session.gc_maxlifetime')); $template->setInfo('content', sprintf($template->getVar('L_MARKEDFORUMSREADCAT'), $forum['name']), TRUE); $template->setRedirect('viewforum.php?id=' . $forum['id'], 3); } else { /* set the breadcrumbs bit */ $template = BreadCrumbs($template, $template->getVar('L_INVALIDFORUM')); $template->setInfo('content', $template->getVar('L_INVALIDFORUMASREAD'), FALSE); } } } return TRUE; }
function Execute(&$template, $request, &$dba, &$session, &$user) { global $_SESS; /* Create the ancestors bar (if we run into any trouble */ $template = BreadCrumbs($template, $template->getVar('L_LOGIN')); if (is_a($session['user'], 'Guest')) { $id = $session['user']->Validate($request); if ($id === FALSE) { return $template->setInfo('content', $template->getVar('L_INVALIDUSERPASS')); } /* Is this user already logged in ? */ $user_is_logged =& $dba->prepareStatement("SELECT * FROM " . SESSIONS . " WHERE name=? AND seen>=?"); $user_is_logged->setString(1, $request['name']); $user_is_logged->setInt(2, time() - ini_get('session.gc_maxlifetime')); $result =& $user_is_logged->executeQuery(); if ($result->numrows() > 0) { return $template->setInfo('content', $template->getVar('L_USERALREADYLOGGED')); } $session['user'] =& new Member($id); if ($session['user']->info['banned'] == 0) { /** * Log our user in */ $session['user']->Login(); $user =& $session['user']->info; /* Set the rememberme setting to this user */ if (isset($request['rememberme'])) { $session['user']->info['rememberme'] = 'on'; } /* Set the auto-log cookie */ if (isset($user['rememberme']) && $user['rememberme'] == 'on') { /* Create a safe cookie */ $userinfo = $user['name'] . $session['user']->GenerateLoginKey(); /* Set the auto-logging in cookie, be persistent about it */ @setcookie('k4_autolog', $userinfo, time() + 3600 * 24 * 60); bb_setcookie_cache('k4_autolog', $userinfo, time() + 3600 * 24 * 60); } if (isset($user['login_request_uri'])) { $template->setRedirect($user['login_request_uri'], 3); } else { $template->setRedirect('index.php', 3); } $template->setInfo('content', $template->getVar('L_LOGGEDINSUCCESS')); } else { $session['user'] =& new Guest(); $session['user']->info['rememberme'] = 'off'; $template->setInfo('content', $template->getVar('L_THISBANNEDUSER')); } } else { $template->setInfo('content', $template->getVar('L_CANTBELOGGEDIN')); } //$_SESS->setUserStatus(FALSE); /* if(is_a($session['user'], 'Member')) { $update = &$dba->prepareStatement("UPDATE ". SESSIONS ." SET data=?,name=?,user_id=? WHERE id=?"); $update->setString(1, serialize($session)); $update->setString(2, $session['user']->info['name']); $update->setInt(3, $session['user']->info['id']); $update->setString(4, $_SESSID); $update->executeUpdate(); } */ //Globals::setGlobal('session', &$session); //Globals::setGlobal('user', &$session['user']->info); return TRUE; }
function Execute(&$template, $request, &$dba, &$session, &$user) { global $_SESS; /* Create the ancestors bar (if we run into any trouble */ $template = BreadCrumbs($template, $template->getVar('L_LOGOUT')); if (is_a($session['user'], 'Member')) { /* Update the users' last seen time */ $dba->executeUpdate("UPDATE " . USERS . " SET last_seen = seen, seen = 0 WHERE id = " . $user['id']); } else { $template->setInfo('content', $template->getVar('L_NEEDLOGGEDIN')); } /* Persistent method to unset the cookie */ @setcookie("k4_autolog", "", time() - 3600); bb_setcookie_cache('k4_autolog', '', time() - 3600); /* Make the user into a Guest user rather than a Member */ $session['user'] =& new Guest(); $_SESS->setUserStatus(TRUE); $referer = !$_SERVER['HTTP_REFERER'] || $_SERVER['HTTP_REFERER'] == '' ? 'index.php' : $_SERVER['HTTP_REFERER']; /* Redirect the page */ $template->setInfo('content', $template->getVar('L_LOGGEDOUTSUCCESS')); $template->setRedirect($referer, 3); return TRUE; }
function GenerateLoginKey() { global $_DBA; $key = md5(microtime() + rand()); //$this->id = is_array($this->id) ? $this->id[0] : $this->id; Error::reset(); $update =& $_DBA->prepareStatement("UPDATE " . USERS . " SET priv_key=? WHERE id=?"); $update->setString(1, $key); $update->setInt(2, $this->id); $update->executeUpdate(); @setcookie('k4_autolog', $this->info['name'] . $key, time() + 3600 * 24 * 60); bb_setcookie_cache('k4_autolog', $this->info['name'] . $key, time() + 3600 * 24 * 60); if (Error::grab()) { return trigger_error("Could not update the sessions table.", E_USER_ERROR); } return $key; }
function Execute(&$template, $request, &$dba, &$session, &$user) { /* Set the Breadcrumbs bit */ $template = BreadCrumbs($template, $template->getVar('L_MARKFORUMSREAD')); $forums = array(); if (isset($request['forums']) && is_array($request['forums'])) { foreach ($request['forums'] as $forum) { $forums[$forum['id']] = array(); } } /* Serialize the array */ $forums = serialize($forums); /* Cache some info to set a cookie on the next refresh */ bb_setcookie_cache('forums', $forums, time() + ini_get('session.gc_maxlifetime')); $template->setInfo('content', $template->getVar('L_MARKEDFORUMSREAD'), TRUE); $template->setRedirect('index.php', 3); return TRUE; }