* @link http://www.pioder.pl/ * @license see LICENSE.txt **/ if ( !defined('IN_uF') ) { die('Hacking attempt'); } //set global sessions options ini_set('session.cookie_lifetime',SESSION_LIFETIME); ini_set('session.name',SESS_NAME); //1,5 day if ((isset($_COOKIE[SESS_NAME])) && (empty($_SESSION['uid']))) { session_id($_COOKIE[SESS_NAME]); } session_start(); //starting session //check, for empty session values and set if (empty($_SESSION['uid'])) { $_SESSION['uid']='0'; } if (empty($_SESSION['login_on'])) { $_SESSION['login_on']='0'; } if (empty($_SESSION['sessionid'])) { $_SESSION['sessionid']='0'; } if (empty($_COOKIE['queries'])) { $_COOKIE['queries']=0; setcookie('queries','0',$_SERVER['REQUEST_TIME']+31104000); } if($_COOKIE['queries']>0) { setcookie('queries','0',$_SERVER['REQUEST_TIME']+31104000); $_COOKIE['uid']='0'; } function SessRegister() { $uid = $_SESSION['uid']; if ($uid>0) { SessDelete($uid); $time = $_SERVER['REQUEST_TIME']; $sql = "INSERT INTO ".SESSIONS_TABLE." VALUES ('', '".$_COOKIE[SESS_NAME]."','$uid','$time')"; $query = DataBase::sql_query($sql,GENERAL,'Could not add new session.',true); if (DataBase::num_rows($query)>0) { $result = DataBase::fetch(); return $result; } else { return false; } } } function SessDeleteOld() { $time = $_SERVER['REQUEST_TIME']; $sql = "DELETE FROM ".SESSIONS_TABLE." WHERE time+129600<$time;"; DataBase::sql_query($sql, GENERAL,'Could not delete session',true); } function SessDelInvalid() { if ($_SESSION['uid']>0) { $sql = "SELECT `session_id`, `u_id` FROM ".SESSIONS_TABLE." WHERE `u_id`='".$_SESSION['uid']."'"; $query = DataBase::sql_query($sql,GENERAL,'Could not obtain session information',true); $result = DataBase::fetch($query); $result = $result['session_id']; if ($_COOKIE[SESS_NAME]!=$result) { $_SESSION['sessionid'] = '0'; $_SESSION['uid'] = '0'; } } } function SessDelete($uid) { $time = $_SERVER['REQUEST_TIME']; $sql = "DELETE FROM ".SESSIONS_TABLE." WHERE u_id='$uid'"; $query = DataBase::sql_query($sql, GENERAL,'Could not delete session',true); if (DataBase::num_rows($query)>0) { $result = DataBase::fetch($query); $_SESSION['sessionid']='0'; return $result['count']; } } function SessView() { global $lng; global $user; global $forum_config; $name = ''; $time = $_SERVER['REQUEST_TIME']; $sql = "SELECT ".SESSIONS_TABLE.".*, ".USERS_TABLE.".*, ".SESSIONS_TABLE.".u_id AS u_id FROM ".SESSIONS_TABLE." LEFT JOIN ".USERS_TABLE." ON ".SESSIONS_TABLE.".u_id = ".USERS_TABLE.".u_id WHERE time+1250>$time;"; $query = DataBase::sql_query($sql, GENERAL,'Could not obtain sessions information.'); if (DataBase::num_rows($query)>0) { while($result = DataBase::fetch($query)) { $uid = $result['u_id']; switch($result['rank']) { case '0': { $user_color_name = $result['nick']; break; } case '1': { $user_color_name = ''.$result['nick'].''; break; } case '2': { $user_color_name = ''.$result['nick'].''; break; } } $name .= ''.$user_color_name.', '; } } else { $name = ''.$lng['empty'].''; } return array($name, DataBase::num_rows($query)); } ?>