X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=inc%2Flibs%2Fuser_functions.php;h=21b7e00f7a20b51d66056739ec70ee8b14a1d212;hp=37bd1941e3f44958a0e29d0f88b537be124c709a;hb=5d9f65a4efafdeda1f03cf03fc95421bc600b9dc;hpb=4001187f22197f55e5a1f211fc8defcc180f7c32 diff --git a/inc/libs/user_functions.php b/inc/libs/user_functions.php index 37bd1941e3..21b7e00f7a 100644 --- a/inc/libs/user_functions.php +++ b/inc/libs/user_functions.php @@ -10,7 +10,12 @@ * -------------------------------------------------------------------- * * Kurzbeschreibung : Spezielle Funktionen fuer die user-Erweiterung * * -------------------------------------------------------------------- * - * * + * $Revision:: $ * + * $Date:: $ * + * $Tag:: 0.2.1-FINAL $ * + * $Author:: $ * + * Needs to be in all Files and every File needs "svn propset * + * svn:keywords Date Revision" (autoprobset!) at least!!!!!! * * -------------------------------------------------------------------- * * Copyright (c) 2003 - 2008 by Roland Haeder * * For more information visit: http://www.mxchange.org * @@ -39,14 +44,14 @@ if (!defined('__SECURITY')) { // Add links for selecting some users function alpha ($sortby, $colspan, $return=false) { - if (!REQUEST_ISSET_GET(('offset'))) REQUEST_SET_GET('offset', 0); - $ADD = "&page=".REQUEST_GET(('page'))."&offset=".REQUEST_GET(('offset')); - if (REQUEST_ISSET_GET(('mode'))) $ADD .= "&mode=".REQUEST_GET(('mode')); + if (!REQUEST_ISSET_GET('offset')) REQUEST_SET_GET('offset', 0); + $add = "&page=".REQUEST_GET('page')."&offset=".REQUEST_GET('offset'); + if (REQUEST_ISSET_GET(('mode'))) $add .= "&mode=".REQUEST_GET(('mode')); /* Creates the list of letters and makes them a link. */ $alphabet = array(getMessage('_ALL2'),"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z",getMessage('_OTHERS')); $num = count($alphabet) - 1; - $OUT = ""; + $OUT = ''; while (list($counter, $ltr) = each($alphabet)) { if (REQUEST_GET('letter') == $ltr) { // Current letter is letter from URL @@ -55,7 +60,7 @@ function alpha ($sortby, $colspan, $return=false) { // Output link to letter $OUT .= "".$ltr.""; + $OUT .= "&letter=".$ltr."&sortby=".$sortby.$add."\">".$ltr.""; } if ((($counter / getConfig('user_alpha')) == round($counter / getConfig('user_alpha'))) && ($counter > 0)) { @@ -80,16 +85,16 @@ function alpha ($sortby, $colspan, $return=false) { // Add links for sorting function SortLinks ($letter, $sortby, $colspan, $return=false) { - $OUT = ""; - if (!REQUEST_ISSET_GET(('offset'))) REQUEST_SET_GET('offset', 0); - if (!REQUEST_ISSET_GET(('page'))) REQUEST_SET_GET('page' , 0); + $OUT = ''; + if (!REQUEST_ISSET_GET('offset')) REQUEST_SET_GET('offset', 0); + if (!REQUEST_ISSET_GET('page')) REQUEST_SET_GET('page' , 0); // Add page and offset - $ADD = "&page=".REQUEST_GET(('page'))."&offset=".REQUEST_GET(('offset')); + $add = "&page=".REQUEST_GET('page')."&offset=".REQUEST_GET('offset'); // Add status or mode - if (REQUEST_ISSET_GET(('status'))) $ADD .= "&mode=".REQUEST_GET(('status')); - elseif (REQUEST_ISSET_GET(('mode'))) $ADD .= "&mode=".REQUEST_GET(('mode')); + if (REQUEST_ISSET_GET(('status'))) $add .= "&mode=".REQUEST_GET(('status')); + elseif (REQUEST_ISSET_GET(('mode'))) $add .= "&mode=".REQUEST_GET(('mode')); // Makes order by links.. if ($letter == "front") $letter = getMessage('_ALL2'); @@ -103,7 +108,7 @@ function SortLinks ($letter, $sortby, $colspan, $return=false) { ); // Add nickname if extension is installed - if (EXT_IS_ACTIVE("nickname")) { + if (EXT_IS_ACTIVE('nickname')) { $list['nickname'] = getMessage('NICKNAME'); } // END - if @@ -111,7 +116,7 @@ function SortLinks ($letter, $sortby, $colspan, $return=false) { if ($sortby == $sort) { $OUT .= "".$title." | "; } else { - $OUT .= "".$title." | "; + $OUT .= "".$title." | "; } } // END - foreach @@ -146,13 +151,13 @@ function ADD_PAGENAV ($PAGES, $offset, $show_form, $colspan,$return=false) { define('__FORM_FOOTER', " "); } - $OUT = ""; + $OUT = ''; for ($page = 1; $page <= $PAGES; $page++) { - if (($page == REQUEST_GET('page')) || ((!REQUEST_ISSET_GET(('page'))) && ($page == "1"))) { + if (($page == REQUEST_GET('page')) || ((!REQUEST_ISSET_GET('page')) && ($page == "1"))) { $OUT .= "-"; } else { if (!REQUEST_ISSET_GET(('letter'))) REQUEST_SET_GET('letter', getMessage('_ALL2')); - if (!REQUEST_ISSET_GET(('sortby'))) REQUEST_SET_GET('sortby', "userid"); + if (!REQUEST_ISSET_GET(('sortby'))) REQUEST_SET_GET('sortby', 'userid'); // Base link $OUT .= "= "0.3.4") { + if (GET_EXT_VERSION('user') >= "0.3.4") { // Get all user ids - $totalUsers = GET_TOTAL_DATA("CONFIRMED", "user_data", "userid", "status", true, " AND `rand_confirmed` >= ".getConfig('user_min_confirmed').""); + $totalUsers = GET_TOTAL_DATA("CONFIRMED", "user_data", 'userid', "status", true, " AND `rand_confirmed` >= ".getConfig('user_min_confirmed').""); // Do we have at least one? if ($totalUsers > 0) { @@ -256,88 +261,95 @@ function SELECT_RANDOM_REFID () { // Do the user login function USER_DO_LOGIN ($uid, $passwd) { + // Init variables + $dmy = ''; + // Add last_login if available - $lastOnline = ""; - if (GET_EXT_VERSION("sql_patches") >= "0.2.8") { + $lastOnline = ''; + if (GET_EXT_VERSION('sql_patches') >= '0.2.8') { $lastOnline = ", last_login"; } // END - if + // Init array + $content = array( + 'password' => "", + 'userid' => "", + 'last_online' => 0, + 'last_login' => 0, + 'hash' => "" + ); + // Check login data - $password = ""; $uid2 = ""; $dmy = ""; $online = 0; $login = 0; - if ((EXT_IS_ACTIVE("nickname")) && (NICKNAME_PROBE_ON_USERID($uid))) { + if ((EXT_IS_ACTIVE('nickname')) && (NICKNAME_PROBE_ON_USERID($uid))) { // Nickname entered $result = SQL_QUERY_ESC("SELECT userid, password, last_online".$lastOnline." FROM `{!_MYSQL_PREFIX!}_user_data` WHERE nickname='%s' AND `status`='CONFIRMED' LIMIT 1", array($uid), __FUNCTION__, __LINE__); - list($uid2, $password, $online, $login) = SQL_FETCHROW($result); - if (!empty($uid2)) $uid = bigintval($uid2); } else { // Direct userid entered $result = SQL_QUERY_ESC("SELECT userid, password, last_online".$lastOnline." FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s AND `status`='CONFIRMED' LIMIT 1", - array($uid, $hash), __FUNCTION__, __LINE__); - list($uid2, $password, $online, $login) = SQL_FETCHROW($result); + array($uid, $content['hash']), __FUNCTION__, __LINE__); } + // Load entry + $content = SQL_FETCHARRAY($result); + if (!empty($content['userid'])) $uid = bigintval($content['userid']); + // Is there an entry? - if ((SQL_NUMROWS($result) == 1) && ((($probe_nickname) && (!empty($uid2))) || ($uid2 == $uid))) { + if ((SQL_NUMROWS($result) == 1) && ((($probe_nickname) && (!empty($content['userid']))) || ($content['userid'] == $uid))) { // Free result SQL_FREERESULT($result); - // By default the hash is empty - $hash = ""; - // Check for old MD5 passwords - if ((strlen($password) == 32) && (md5($passwd) == $password)) { + if ((strlen($content['password']) == 32) && (md5($passwd) == $content['password'])) { // Just set the hash to the password from DB... :) - $hash = $password; + $content['hash'] = $content['password']; } else { // Hash password with improved way for comparsion - $hash = generateHash($passwd, substr($password, 0, -40)); + $content['hash'] = generateHash($passwd, substr($content['password'], 0, -40)); } - if ($hash == $password) { + // Does the password match the hash? + if ($content['hash'] == $content['password']) { // New hashed password found so let's generate a new one - $hash = generateHash($passwd); + $content['hash'] = generateHash($passwd); // ... and update database + // @TODO Make this filter working: $ADDON = runFilterChain('post_login_update', $content); SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET password='%s' WHERE userid=%s AND `status`='CONFIRMED' LIMIT 1", - array($hash, $uid), __FUNCTION__, __LINE__); + array($content['hash'], $uid), __FUNCTION__, __LINE__); // No login bonus by default - // @TODO Make this filter working: $ADDON = runFilterChain('post_login_update', array('login' => $login, 'online' => $online)); - $BONUS = false; + $GLOBALS['bonus_payed'] = false; // Probe for last online timemark - $probe = time() - $online; - if (!empty($login)) $probe = time() - $login; - if ((GET_EXT_VERSION("bonus") >= "0.2.2") && ($probe >= getConfig('login_timeout'))) { + $probe = time() - $content['last_online']; + if (!empty($content['last_login'])) $probe = time() - $content['last_login']; + if ((GET_EXT_VERSION('bonus') >= '0.2.2') && ($probe >= getConfig('login_timeout'))) { // Add login bonus to user's account - $ADD = sprintf(", login_bonus=login_bonus+%s", + $add = sprintf(", login_bonus=login_bonus+%s", (float)getConfig('login_bonus') ); - $BONUS = true; + $GLOBALS['bonus_payed'] = true; // Subtract login bonus from userid's account or jackpot - if ((GET_EXT_VERSION("bonus") >= "0.3.5") && (getConfig('bonus_mode') != "ADD")) BONUS_POINTS_HANDLER('login_bonus'); + if ((GET_EXT_VERSION('bonus') >= '0.3.5') && (getConfig('bonus_mode') != "ADD")) BONUS_POINTS_HANDLER('login_bonus'); } // END - if - // Init variables - $login = false; - // Calculate new hash with the secret key and master salt together - $hash = generatePassString($hash); + $content['hash'] = generatePassString($content['hash']); // Update global array - // @TODO Make this filter working: $URL = runFilterChain('do_login', array('uid' => $uid, 'hash' => $hash, 'addon' => $ADDON)); - $GLOBALS['userid'] = $uid; + // @TODO Make this filter working: $URL = runFilterChain('do_login', array('content' => $content, 'addon' => $ADDON)); + setUserId($uid); // Try to set session data (which shall normally always work!) - if ((set_session('userid', $uid )) && (set_session('u_hash', $hash))) { + if ((set_session('userid', $uid )) && (set_session('u_hash', $content['hash']))) { // Update database records - SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET total_logins=total_logins+1".$ADD." WHERE userid=%s LIMIT 1", + SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET total_logins=total_logins+1".$add." WHERE userid=%s LIMIT 1", array($uid), __FUNCTION__, __LINE__); if (SQL_AFFECTEDROWS() == 1) { // Procedure to checking for login data - if (($BONUS) && (EXT_IS_ACTIVE("bonus"))) { + if (($GLOBALS['bonus_payed']) && (EXT_IS_ACTIVE('bonus'))) { // Bonus added (just displaying!) $URL = "modules.php?module=chk_login&mode=bonus"; } else { @@ -346,21 +358,21 @@ function USER_DO_LOGIN ($uid, $passwd) { } } else { // Cannot update counter! - $URL = "modules.php?module=index&what=login&login=".constant('CODE_CNTR_FAILED'); + $URL = "modules.php?module=index&what=login&login=".getCode('CNTR_FAILED'); } } else { // Cookies not setable! - $URL = "modules.php?module=index&what=login&login=".constant('CODE_NO_COOKIES'); + $URL = "modules.php?module=index&what=login&login=".getCode('NO_COOKIES'); } - } elseif (GET_EXT_VERSION("sql_patches") >= "0.6.1") { + } elseif (GET_EXT_VERSION('sql_patches') >= '0.6.1') { // Update failture counter SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET login_failures=login_failures+1,last_failure=NOW() WHERE userid=%s LIMIT 1", array($uid), __FUNCTION__, __LINE__); // Wrong password! - $URL = "modules.php?module=index&what=login&login=".constant('CODE_WRONG_PASS'); + $URL = "modules.php?module=index&what=login&login=".getCode('WRONG_PASS'); } - } elseif ((($probe_nickname) && (!empty($uid2))) || ($uid2 == $uid)) { + } elseif ((($probe_nickname) && (!empty($content['userid']))) || ($content['userid'] == $uid)) { // Other account status? // @TODO Can this query be merged with above query? $result = SQL_QUERY_ESC("SELECT status FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1", @@ -372,17 +384,17 @@ function USER_DO_LOGIN ($uid, $passwd) { list($status) = SQL_FETCHROW($result); // Create an error code from given status - $ERROR = GEN_ERROR_CODE_FROM_ACCOUNT_STATUS($status); + $errorCode = GEN_ERROR_CODE_FROM_ACCOUNT_STATUS($status); } else { // ID not found! - $ERROR = constant('CODE_WRONG_ID'); + $errorCode = getCode('WRONG_ID'); } // Construct URL - $URL = "modules.php?module=index&what=login&login=".$ERROR; + $URL = "modules.php?module=index&what=login&login=".$errorCode; } else { // ID not found! - $URL = "modules.php?module=index&what=login&login=".constant('CODE_WRONG_ID'); + $URL = "modules.php?module=index&what=login&login=".getCode('WRONG_ID'); } // Return URL @@ -395,11 +407,11 @@ function USER_DO_NEW_PASSWORD ($email, $uid) { if (!empty($email)) $email = str_replace("{DOT}", '.', $email); // Init result and error - $ERROR = ""; + $errorCode = ''; $result = false; // Probe userid/nickname - if ((EXT_IS_ACTIVE("nickname")) && (NICKNAME_PROBE_ON_USERID($uid))) { + if ((EXT_IS_ACTIVE('nickname')) && (NICKNAME_PROBE_ON_USERID($uid))) { // Nickname entered $result = SQL_QUERY_ESC("SELECT userid, status FROM `{!_MYSQL_PREFIX!}_user_data` WHERE nickname='%s' OR email='%s' LIMIT 1", array($uid, $email), __FUNCTION__, __LINE__); @@ -414,7 +426,7 @@ function USER_DO_NEW_PASSWORD ($email, $uid) { } else { // Userid not set! DEBUG_LOG(__FUNCTION__, __LINE__, "Userid is not set! BUG!"); - $ERROR = constant('CODE_WRONG_ID'); + $errorCode = getCode('WRONG_ID'); } // Any entry found? @@ -435,21 +447,21 @@ function USER_DO_NEW_PASSWORD ($email, $uid) { SEND_EMAIL($uid, getMessage('GUEST_NEW_PASSWORD'), $msg); // Output note to user - LOAD_TEMPLATE("admin_settings_saved", false, getMessage('GUEST_NEW_PASSWORD_SEND')); + LOAD_TEMPLATE('admin_settings_saved', false, getMessage('GUEST_NEW_PASSWORD_SEND')); } else { // Account is locked or unconfirmed - $ERROR = GEN_ERROR_CODE_FROM_ACCOUNT_STATUS($status); + $errorCode = GEN_ERROR_CODE_FROM_ACCOUNT_STATUS($status); // Load URL - LOAD_URL("modules.php?module=index&what=login&login=".$ERROR); + LOAD_URL("modules.php?module=index&what=login&login=".$errorCode); } } else { // ID or email is wrong - LOAD_TEMPLATE("admin_settings_saved", false, "{--GUEST_WRONG_ID_EMAIL--}"); + LOAD_TEMPLATE('admin_settings_saved', false, "{--GUEST_WRONG_ID_EMAIL--}"); } // Return the error code - return $ERROR; + return $errorCode; } // [EOF]