function tlxAccountLogout() { global $C, $DB, $L, $t; if (isset($_COOKIE['toplistxaccount'])) { parse_str($_COOKIE['toplistxaccount'], $cookie); $DB->Update('DELETE FROM `tlx_account_logins` WHERE `username`=? AND `session`=?', array($cookie['username'], $cookie['session'])); } setcookie('toplistxaccount', '', time() - 3600, '/', $C['cookie_domain']); $t->assign('logged_out', TRUE); tlxShAccountLogin(); }
function ValidAccountLogin() { global $DB, $C, $L; $error = $L['INVALID_LOGIN']; if (isset($_REQUEST['login_username']) && isset($_REQUEST['login_password'])) { $account = $DB->Row('SELECT * FROM `tlx_accounts` WHERE `username`=? AND `password`=?', array($_REQUEST['login_username'], sha1($_REQUEST['login_password']))); if ($account) { // Only allow active accounts to login if ($account['status'] == STATUS_ACTIVE) { // Setup the session $session = sha1(uniqid(rand(), true) . $_REQUEST['login_password']); setcookie('toplistxaccount', 'username='******'login_username']) . '&session=' . $session, time() + 86400, '/', $C['cookie_domain']); $DB->Update('DELETE FROM `tlx_account_logins` WHERE `username`=?', array($account['username'])); $DB->Update('INSERT INTO `tlx_account_logins` VALUES (?,?,?)', array($account['username'], $session, time())); // Get user defined fields and merge with default partner data $user_fields = $DB->Row('SELECT * FROM `tlx_account_fields` WHERE `username`=?', array($account['username'])); $account = array_merge($account, $user_fields); return $account; } else { $error = $account['suspended'] ? $L['ACCOUNT_SUSPENDED'] : $L['ACCOUNT_PENDING']; } } } else { if (isset($_COOKIE['toplistxaccount'])) { parse_str($_COOKIE['toplistxaccount'], $cookie); $session = $DB->Row('SELECT * FROM `tlx_account_logins` WHERE `username`=? AND `session`=?', array($cookie['username'], $cookie['session'])); if ($session) { $account = $DB->Row('SELECT * FROM `tlx_accounts` WHERE `username`=?', array($session['username'])); if ($account['status'] == STATUS_ACTIVE) { // Get user defined fields and merge with default partner data $user_fields = $DB->Row('SELECT * FROM `tlx_account_fields` WHERE `username`=?', array($account['username'])); $account = array_merge($account, $user_fields); return $account; } else { $error = $account['suspended'] ? $L['ACCOUNT_SUSPENDED'] : $L['ACCOUNT_PENDING']; } } else { $error = $L['EXPIRED_LOGIN']; } } } tlxShAccountLogin(array($error)); return FALSE; }