Reset rewritten, SQL fixed, zeros are now numeric
[mailer.git] / inc / modules / guest / what-login.php
index 75527e51ba03e55ffaab621877794cc9209319a5..ecf3887652dca4f3893b9ecaef704fce1e4468be 100644 (file)
@@ -33,8 +33,7 @@
  ************************************************************************/
 
 // Some security stuff...
-if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
-{
+if (ereg(basename(__FILE__), $_SERVER['PHP_SELF'])) {
        $INC = substr(dirname(__FILE__), 0, strpos(dirname(__FILE__), "/inc") + 4) . "/security.php";
        require($INC);
 }
@@ -42,43 +41,34 @@ if (ereg(basename(__FILE__), $_SERVER['PHP_SELF']))
 // Add description as navigation point
 ADD_DESCR("guest", basename(__FILE__));
 
-OPEN_TABLE("100%", "guest_content_align", "");
 global $DATA, $FATAL;
 
 // Initialize data
 $probe_nickname = false; $UID = false; $hash = "";
 unset($login); unset($online);
 
-if ((!empty($GLOBALS['userid'])) && (!empty($_COOKIE['u_hash'])))
+if ((!empty($GLOBALS['userid'])) && (isSessionVariableSet('u_hash')))
 {
        // Already logged in?
        $UID = $GLOBALS['userid'];
-}
- elseif ((!empty($_POST['id'])) && (!empty($_POST['password'])) && (isset($_POST['ok'])))
-{
+} elseif ((!empty($_POST['id'])) && (!empty($_POST['password'])) && (isset($_POST['ok']))) {
        // Set userid and crypt password when login data was submitted
        $probe_nickname = ((EXT_IS_ACTIVE("nickname")) && (("".round($_POST['id'])."") != $_POST['id']));
        if ($probe_nickname)
        {
                // Nickname entered
                $UID = SQL_ESCAPE($_POST['id']);
-       }
-        else
-       {
+       } else {
                // Direct userid entered
                $UID  = bigintval($_POST['id']);
        }
-}
- elseif (!empty($_POST['new_pass']))
-{
+} elseif (!empty($_POST['new_pass'])) {
        // New password requested
-       $UID = "0";
+       $UID = 0;
        if (!empty($_POST['id'])) $UID = $_POST['id'];
-}
- else
-{
+} else {
        // Not logged in
-       $UID = "0"; $hash = "";
+       $UID = 0; $hash = "";
 }
 
 $URL = ""; $ADD = "";
@@ -86,64 +76,51 @@ $URL = ""; $ADD = "";
 if (empty($_POST['new_pass'])) $_POST['new_pass'] = "";
 if (empty($_GET['login']))     $_GET['login']     = "";
 
-if (IS_LOGGED_IN())
-{
+if (IS_MEMBER()) {
        // Login immidiately...
        $URL = URL."/modules.php?module=login";
-}
- elseif (isset($_POST['ok']))
-{
+} elseif (isset($_POST['ok'])) {
        // Add last_login if available
        $LAST = "";
-       if (GET_EXT_VERSION("sql_patches") >= "0.2.8")
-       {
+       if (GET_EXT_VERSION("sql_patches") >= "0.2.8") {
                $LAST = ", last_login";
        }
 
        // Check login data
        $password = "";
-       if ($probe_nickname)
-       {
+       if ($probe_nickname) {
                // Nickname entered
                $result = SQL_QUERY_ESC("SELECT userid, password, last_online".$LAST." FROM "._MYSQL_PREFIX."_user_data WHERE nickname='%s' AND status='CONFIRMED' LIMIT 1",
                 array($UID), __FILE__, __LINE__);
                list($UID2, $password, $online, $login) = SQL_FETCHROW($result);
                if (!empty($UID2)) $UID = $UID2;
-       }
-        else
-       {
+       } else {
                // Direct userid entered
-               $result = SQL_QUERY_ESC("SELECT userid, password, last_online".$LAST." FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+               $result = SQL_QUERY_ESC("SELECT userid, password, last_online".$LAST." FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s AND status='CONFIRMED' LIMIT 1",
                 array(bigintval($UID), $hash), __FILE__, __LINE__);
                list($dmy, $password, $online, $login) = SQL_FETCHROW($result);
        }
-       if (SQL_NUMROWS($result) == 1)
-       {
+       if (SQL_NUMROWS($result) == 1) {
                // Valid data found so let's load the last login data
-               if (isset($_POST['ok']))
-               {
+               if (isset($_POST['ok'])) {
                        // By default the hash is empty
                        $hash = "";
 
                        // Check for old MD5 passwords
-                       if ((strlen($password) == 32) && (md5($_POST['password']) == $password))
-                       {
+                       if ((strlen($password) == 32) && (md5($_POST['password']) == $password)) {
                                // Just set the hash to the password from DB... :)
                                $hash = $password;
-                       }
-                        else
-                       {
+                       } else {
                                // Encrypt hash for comparsion
                                $hash = generateHash($_POST['password'], substr($password, 0, -40));
                        }
 
-                       if ($hash == $password)
-                       {
+                       if ($hash == $password) {
                                // New hashed password found so let's generate a new one
                                $hash = generateHash($_POST['password']);
 
                                // ... and update database
-                               $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET password='%s' WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+                               $result_update = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET password='%s' WHERE userid=%s AND status='CONFIRMED' LIMIT 1",
                                 array($hash, $UID), __FILE__, __LINE__);
 
                                // No login bonus by default
@@ -152,8 +129,7 @@ if (IS_LOGGED_IN())
                                // Probe for last online timemark
                                $probe = time() -  $online;
                                if (!empty($login)) $probe = time() - $login;
-                               if ((GET_EXT_VERSION("bonus") >= "0.2.2") && ($probe >= $_CONFIG['login_timeout']))
-                               {
+                               if ((GET_EXT_VERSION("bonus") >= "0.2.2") && ($probe >= $_CONFIG['login_timeout'])) {
                                        // Add login bonus to user's account
                                        $ADD = ", login_bonus=login_bonus+'".$_CONFIG['login_bonus']."'";
                                        $BONUS = true;
@@ -166,8 +142,7 @@ if (IS_LOGGED_IN())
                                // Secure lifetime from input form
                                $l = bigintval($_POST['lifetime']);
                                $life = "-1";
-                               if ($l > 0)
-                               {
+                               if ($l > 0) {
                                        // Calculate lifetime of cookies
                                        $life = time() + $l;
 
@@ -175,68 +150,49 @@ if (IS_LOGGED_IN())
                                        $hash = generatePassString($hash);
 
                                        // Update cookies
-                                       $login = (@setcookie("userid"  , $UID , $life, COOKIE_PATH)
-                                              && @setcookie("u_hash"  , $hash, $life, COOKIE_PATH)
-                                              && @setcookie("lifetime", $l   , $life, COOKIE_PATH));
+                                       $login = (set_session("userid"  , $UID , $life, COOKIE_PATH)
+                                              && set_session("u_hash"  , $hash, $life, COOKIE_PATH)
+                                              && set_session("lifetime", $l   , $life, COOKIE_PATH));
 
                                        // Update global array
-                                       $GLOBALS['userid'] = $UID;
-                                       $_COOKIE['u_hash'] = $hash;
-                                       $_COOKIE['lifetime'] = $l;
-                               }
-                                else
-                               {
+                                       $GLOBALS['userid'] = bigintval($UID);
+                               } else {
                                        // Check for login data
-                                       $login = IS_LOGGED_IN();
+                                       $login = IS_MEMBER();
                                }
 
-                               if ($login)
-                               {
+                               if ($login) {
                                        // Update database records
-                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET total_logins=total_logins+1".$ADD." WHERE userid=%d LIMIT 1",
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET total_logins=total_logins+1".$ADD." WHERE userid=%s LIMIT 1",
                                         array(bigintval($UID)), __FILE__, __LINE__);
-                                       if (SQL_AFFECTEDROWS($link) == 1)
-                                       {
+                                       if (SQL_AFFECTEDROWS() == 1) {
                                                // Procedure to checking for login data
-                                               if (($BONUS) && (EXT_IS_ACTIVE("bonus")))
-                                               {
+                                               if (($BONUS) && (EXT_IS_ACTIVE("bonus"))) {
                                                        // Bonus added (just displaying!)
                                                        $URL = URL."/modules.php?module=chk_login&mode=bonus";
-                                               }
-                                                else
-                                               {
+                                               } else {
                                                        // Bonus not added
                                                        $URL = URL."/modules.php?module=chk_login&mode=login";
                                                }
-                                       }
-                                        else
-                                       {
+                                       } else {
                                                // Cannot update counter!
                                                $URL = URL."/modules.php?module=".$GLOBALS['module']."&what=login&login=".CODE_CNTR_FAILED;
                                        }
-                               }
-                                else
-                               {
+                               } else {
                                        // Cookies not setable!
                                        $URL = URL."/modules.php?module=".$GLOBALS['module']."&what=login&login=".CODE_NO_COOKIES;
                                }
-                       }
-                        else
-                       {
+                       } else {
                                // Wrong password!
                                $ERROR = CODE_WRONG_PASS;
                        }
-               }
-                else
-               {
+               } else {
                        // Fatal error!
                        $ERROR = CODE_LOGIN_FAILED;
                }
-       }
-        else
-       {
+       } else {
                // Other account status?
-               $result = SQL_QUERY_ESC("SELECT status FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+               $result = SQL_QUERY_ESC("SELECT status FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
                 array(bigintval($UID)), __FILE__, __LINE__);
                if (SQL_NUMROWS($result) == 1)
                {
@@ -273,7 +229,7 @@ if (IS_LOGGED_IN())
        if (!empty($_POST['email'])) $_POST['email'] = str_replace("{DOT}", '.', $_POST['email']);
 
        // Set ID number when left empty
-       if (empty($_POST['id'])) $_POST['id'] = "0";
+       if (empty($_POST['id'])) $_POST['id'] = 0;
 
        // Probe userid/nickname
        $probe_nickname = ((EXT_IS_ACTIVE("nickname")) && (("".round($_POST['id'])."") != $_POST['id']));
@@ -286,7 +242,7 @@ if (IS_LOGGED_IN())
         else
        {
                // Direct userid entered
-               $result = SQL_QUERY_ESC("SELECT userid, status FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d OR email='%s' LIMIT 1",
+               $result = SQL_QUERY_ESC("SELECT userid, status FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s OR email='%s' LIMIT 1",
                 array(bigintval($UID), $_POST['email']), __FILE__, __LINE__);
        }
        if (SQL_NUMROWS($result) == 1)
@@ -298,7 +254,7 @@ if (IS_LOGGED_IN())
                {
                        // Ooppps, this was missing! ;-) We should update the database...
                        $NEW_PASS = GEN_PASS();
-                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET password='%s' WHERE userid=%d LIMIT 1",
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET password='%s' WHERE userid=%s LIMIT 1",
                         array(generateHash($NEW_PASS), bigintval($UID)), __FILE__, __LINE__);
 
                        // Prepare data and message for email
@@ -370,12 +326,12 @@ if (IS_LOGGED_IN())
   </TD>
   <TD width=\"10\">&nbsp;</TD>
 </TR>\n";
-               define ('LOGIN_FAILURE_MSG', $MSG);
+               define('LOGIN_FAILURE_MSG', $MSG);
        }
         else
        {
                // No problems, no output
-               define ('LOGIN_FAILURE_MSG', "");
+               define('LOGIN_FAILURE_MSG', "");
        }
        // Display login form with resend-password form
        if (EXT_IS_ACTIVE("nickname"))
@@ -389,21 +345,17 @@ if (IS_LOGGED_IN())
 }
 
 // Was an URL constructed?
-if (!empty($URL))
-{
+if (!empty($URL)) {
        // URL was constructed
        if (!empty($FATAL[0]))
        {
                // Fatal errors!
                require_once(PATH."inc/fatal_errors.php");
-       }
-        else
-       {
+       } else {
                // Load URL
                LOAD_URL($URL);
        }
 }
 
-CLOSE_TABLE();
 //
 ?>