Fixes for chk_login when no ext-theme is installed
authorRoland Häder <roland@mxchange.org>
Wed, 29 Jul 2009 16:40:38 +0000 (16:40 +0000)
committerRoland Häder <roland@mxchange.org>
Wed, 29 Jul 2009 16:40:38 +0000 (16:40 +0000)
inc/modules/chk_login.php
inc/modules/member/what-themes.php

index bba4b8c..a2330df 100644 (file)
 if (!defined('__SECURITY')) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), '/inc') + 4) . '/security.php';
        require($INC);
-}
+} // END - if
 
 // Initial message part
 $message = "<strong>{--VALIDATING_LOGIN--}</strong>";
 
 if (isUserIdSet() && (isSessionVariableSet('u_hash'))) {
-       // Login failures are supported since 0.4.7
-       // Do we have 0.4.7 of sql_patches or later?
-       $add = '';
-       if (GET_EXT_VERSION('sql_patches') >= '0.6.1') {
-               // Load them here
-               $add = ", login_failures, UNIX_TIMESTAMP(last_failure) AS last_failure";
-       } // END - if
+       // Is 'theme' installed and activated?
+       if (EXT_IS_ACTIVE('theme')) {
+               // Login failures are supported since 0.4.7
+               // Do we have 0.4.7 of sql_patches or later?
+               $add = '';
+               if (GET_EXT_VERSION('sql_patches') >= '0.6.1') {
+                       // Load them here
+                       $add = ", `login_failures`, UNIX_TIMESTAMP(`last_failure`) AS last_failure";
+               } // END - if
 
-       // Get theme from profile
-       $result = SQL_QUERY_ESC("SELECT curr_theme".$add." FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1",
-       array(getUserId()), __FILE__, __LINE__);
+               // Get theme from profile
+               $result = SQL_QUERY_ESC("SELECT `curr_theme`".$add." FROM `{!_MYSQL_PREFIX!}_user_data` WHERE userid=%s LIMIT 1",
+                       array(getUserId()), __FILE__, __LINE__);
 
-       // Load data
-       $data = SQL_FETCHARRAY($result);
+               // Load data
+               $data = SQL_FETCHARRAY($result);
 
-       // Free result
-       SQL_FREERESULT($result);
+               // Free result
+               SQL_FREERESULT($result);
 
-       // Change to new theme
-       setSession('mxchange_theme', $data['curr_theme']);
+               // Change to new theme
+               setSession('mxchange_theme', $data['curr_theme']);
 
-       // Remmeber login failures if available
-       if (GET_EXT_VERSION('sql_patches') >= '0.6.1') {
-               // Reset login failures
-               SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data`
-SET login_failures=0, last_failure='0000-00-00 00:00:00'
-WHERE userid=%s
+               // Remmeber login failures if available
+               if (GET_EXT_VERSION('sql_patches') >= '0.6.1') {
+                       // Reset login failures
+                       SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data`
+SET `login_failures`=0, `last_failure`='0000-00-00 00:00:00'
+WHERE `userid`=%s
 LIMIT 1",
-               array(getUserId()), __FILE__, __LINE__);
+                               array(getUserId()), __FILE__, __LINE__);
 
-               // Store it in session
-               setSession('mxchange_member_failures', $data['login_failures']);
-               setSession('mxchange_member_last_fail', $data['last_failure']);
+                       // Store it in session
+                       setSession('mxchange_member_failures', $data['login_failures']);
+                       setSession('mxchange_member_last_fail', $data['last_failure']);
+               } // END - if
        } // END - if
 
        // Bonus is not given by default ;-)
@@ -86,18 +89,18 @@ LIMIT 1",
        if ((GET_EXT_VERSION('sql_patches') >= '0.2.8') && (GET_EXT_VERSION('bonus') >= '0.2.1') && (getConfig('bonus_login_yn') == 'Y')) {
                // Update last login if far enougth away
                SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data`
-SET last_login=UNIX_TIMESTAMP()
-WHERE userid=%s AND last_login < (UNIX_TIMESTAMP() - %s)
+SET `last_login`=UNIX_TIMESTAMP()
+WHERE `userid`=%s AND `last_login` < (UNIX_TIMESTAMP() - %s)
 LIMIT 1",
                array(
-               getUserId(),
-               getConfig('login_timeout')
+                       getUserId(),
+                       getConfig('login_timeout')
                ), __FILE__, __LINE__
                );
                if (SQL_AFFECTEDROWS() == 1) $bonus = true;
        } // END - if
 
-       if (($bonus) && (REQUEST_GET('mode') == 'bonus') && (EXT_IS_ACTIVE('bonus'))) {
+       if (($bonus === true) && (REQUEST_GET('mode') == 'bonus') && (EXT_IS_ACTIVE('bonus'))) {
                // Output message with added points
                $message .= "<div class=\"tiny\">
   ".sprintf(getMessage('BONUS_LOGIN_BONUS_ADDED'), translateComma(getConfig('login_bonus')))."
index 51ffcb5..45194c5 100644 (file)
@@ -53,7 +53,7 @@ ADD_DESCR('member', __FILE__);
 if (REQUEST_ISSET_POST(('member_theme'))) {
        // Save theme to member's profile
        SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET curr_theme='%s' WHERE userid=%s LIMIT 1",
-       array(REQUEST_POST('member_theme'), getUserId()), __FILE__, __LINE__);
+               array(REQUEST_POST('member_theme'), getUserId()), __FILE__, __LINE__);
 
        // Set new theme for guests
        $newTheme = SQL_ESCAPE(REQUEST_POST('member_theme'));
@@ -95,6 +95,9 @@ while ($entry = readdir($handle)) {
        } // END - if
 } // END - while
 
+// Remove last theme data
+unset($GLOBALS['theme_data']);
+
 // Close directory
 closedir($handle);
 
@@ -122,7 +125,7 @@ foreach ($THEMES['theme_unix'] as $key => $unix) {
   <td class=\"switch_sw".$SW." bottom2\" align=\"center\">v".$THEMES['theme_ver'][$key]."</td>
 </tr>\n";
        $SW = 3 - $SW;
-}
+} // END - foreach
 
 if (empty($OUT)) {
        // No themes found???
@@ -131,7 +134,7 @@ if (empty($OUT)) {
     ".LOAD_TEMPLATE('admin_settings_saved', true, getMessage('MEMBER_NO_THEMES_FOUND'))."
   </td>
 </tr>\n";
-}
+} // END - if
 define('__THEME_LIST', $OUT);
 
 // Load template