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;
 }
示例#2
0
 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;
 }
示例#3
0
 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;
 }
示例#4
0
 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;
 }
示例#5
0
 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;
 }