Fixes for registration
authorRoland Häder <roland@mxchange.org>
Sat, 20 Sep 2008 20:44:11 +0000 (20:44 +0000)
committerRoland Häder <roland@mxchange.org>
Sat, 20 Sep 2008 20:44:11 +0000 (20:44 +0000)
inc/databases.php
inc/modules/guest/what-register.php

index fc761f6aa64124231ef7a322e2a3c09b117bbc7c..543d67bf9d976aa24e218136e6393fb202edcf0b 100644 (file)
@@ -113,7 +113,7 @@ define('USAGE_BASE', "usage");
 define('SERVER_URL', "http://www.mxchange.org");
 
 // This current patch level
-define('CURR_SVN_REVISION', "371");
+define('CURR_SVN_REVISION', "372");
 
 // Take a prime number which is long (if you know a longer one please try it out!)
 define('_PRIME', 591623);
index 3e7b2b8ec0c638872fa3908188bd5f819f6e04c4..7b2fb307859b08df6c4788658e6e549ec68ee8eb 100644 (file)
@@ -155,14 +155,18 @@ if (isset($_POST['ok']))
                $FAILED = true;
        }
 
-       // Test the refid (because some strange hackers... :-P)
-       $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
-        array(bigintval($GLOBALS['refid'])), __FILE__, __LINE__);
-       if (SQL_NUMROWS($result) == 0) {
-               // Not found so we set your refid!
-               $_POST['refid'] = $_CONFIG['def_refid'];
-               set_session("refid", $_CONFIG['def_refid']);
-       }
+       // Default refid is zero
+       $_POST['refid'] = 0;
+       if ($GLOBALS['refid'] > 0) {
+               // Test if the refid is valid
+               $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
+                       array(bigintval($GLOBALS['refid'])), __FILE__, __LINE__);
+               if (SQL_NUMROWS($result) == 0) {
+                       // Not found so we set your refid!
+                       $_POST['refid'] = $_CONFIG['def_refid'];
+                       set_session("refid", $_CONFIG['def_refid']);
+               } // END - if
+       } // END - if
 
        // Free memory
        SQL_FREERESULT($result);
@@ -200,25 +204,20 @@ if ((isset($_POST['ok'])) && (!$FAILED))
        }
 
        // Second: active rallye
-       if (GET_EXT_VERSION("bonus") >= "0.7.7")
-       {
+       if (GET_EXT_VERSION("bonus") >= "0.7.7") {
                // Okay, shall I disable now?
-               if ($_CONFIG['bonus_new_mem_notify'] == "N")
-               {
+               if ($_CONFIG['bonus_new_mem_notify'] == "N") {
                        $ADD1 .= ", bonus_ral_notify, bonus_ral_en_notify";
                        $ADD2 .= ", UNIX_TIMESTAMP(), UNIX_TIMESTAMP()";
-               }
-       }
+               } // END - if
+       } // END - if
 
        // Write user data to table
-       if (EXT_IS_ACTIVE("country"))
-       {
+       if (EXT_IS_ACTIVE("country")) {
                // Save with new selectable country code
                $countryRow = "country_code";
                $countryData = bigintval($_POST['country_code']);
-       }
-        else
-       {
+       } else {
                // Old way with enterable two-char-code
                $countryRow = "country";
                $countryData = addslashes(substr($_POST['cntry'], 0, 2));
@@ -229,41 +228,42 @@ if ((isset($_POST['ok'])) && (!$FAILED))
        //////////////////////////////
        //
        $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_data (gender, surname, family, street_nr, %s, zip, city, email, birth_day, birth_month, birth_year, password, max_mails, receive_mails, refid, status, user_hash, REMOTE_ADDR, joined, last_update".$ADD1.")
-VALUES ('%s', '%s', '%s', '%s', '%s', %s, '%s', '%s', %s, %s, %s, '%s', %s, %s, %s, 'UNCONFIRMED', '%s', '%s', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()".$ADD2.")",
-array(
-       $countryRow,
-       SQL_ESCAPE(substr($_POST['gender'], 0, 1)),
-       SQL_ESCAPE($_POST['surname']),
-       SQL_ESCAPE($_POST['family_name']),
-       SQL_ESCAPE($_POST['street_nr']),
-       $countryData,
-       bigintval($_POST['zip']),
-       SQL_ESCAPE($_POST['city']),
-       SQL_ESCAPE($_POST['addy']),
-       bigintval($_POST['day']),
-       bigintval($_POST['month']),
-       bigintval($_POST['year']),
-       generateHash($_POST['pass1']),
-       bigintval($_POST['max_mails']),
-       bigintval($_POST['max_mails']),
-       bigintval($_POST['refid']),
-       $hash,
-       getenv('REMOTE_ADDR'),
-), __FILE__, __LINE__);
+VALUES ('%s', '%s', '%s', '%s', '%s', %s, '%s', '%s', %s, %s, %s, '%s', %s, %s, '%s', 'UNCONFIRMED', '%s', '%s', UNIX_TIMESTAMP(), UNIX_TIMESTAMP()".$ADD2.")",
+       array(
+               $countryRow,
+               SQL_ESCAPE(substr($_POST['gender'], 0, 1)),
+               SQL_ESCAPE($_POST['surname']),
+               SQL_ESCAPE($_POST['family_name']),
+               SQL_ESCAPE($_POST['street_nr']),
+               $countryData,
+               bigintval($_POST['zip']),
+               SQL_ESCAPE($_POST['city']),
+               SQL_ESCAPE($_POST['addy']),
+               bigintval($_POST['day']),
+               bigintval($_POST['month']),
+               bigintval($_POST['year']),
+               generateHash($_POST['pass1']),
+               bigintval($_POST['max_mails']),
+               bigintval($_POST['max_mails']),
+               bigintval($_POST['refid']),
+               $hash,
+               getenv('REMOTE_ADDR'),
+       ), __FILE__, __LINE__);
 
        // Get his userid
-       $result = SQL_QUERY_ESC("SELECT userid FROM "._MYSQL_PREFIX."_user_data WHERE user_hash='%s' LIMIT 1",
-        array($hash), __FILE__, __LINE__);
-       list($userid) = SQL_FETCHROW($result);
+       $userid = SQL_INSERTID();
 
-       // Secure userid (we have a little paranoia ;-) )
-       $userid = bigintval($userid);
+       // Did this work?
+       if ($userid == 0) {
+               // Something bad happened!
+               LOAD_TEMPLATE("admin_settings_saved", false, USER_NOT_REGISTERED);
+               return;
+       } // END - if
 
        // Write his welcome-points
        $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_user_points WHERE userid=%s AND ref_depth=0 LIMIT 1",
         array(bigintval($userid)), __FILE__, __LINE__);
-       if (SQL_NUMROWS($result) == 0)
-       {
+       if (SQL_NUMROWS($result) == 0) {
                // Add only when the line was not found (maybe some more secure?)
                $locked = "points";
                if ($_CONFIG['ref_payout'] > 0) $locked = "locked_points"; // Pay him later. First he has to confirm some mails!
@@ -274,8 +274,8 @@ array(
                if ((GET_EXT_VERSION("mediadata") >= "0.0.4") && ($locked == "points")) {
                        // Update database
                        MEDIA_UPDATE_ENTRY(array("total_points"), "add", $_CONFIG['points_register']);
-               }
-       }
+               } // END - if
+       } // END - if
 
        // Write catgories
        if ((is_array($_POST['cat'])) && (count($_POST['cat']))) {
@@ -284,9 +284,9 @@ array(
                                // Insert category entry
                                $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_user_cats (userid, cat_id) VALUES (%s, %s)",
                                 array(bigintval($userid), bigintval($cat)), __FILE__, __LINE__);
-                       }
-               }
-       }
+                       } // END - if
+               } // END - foreach
+       } // END - if
 
        // Rewrite gender
        $gender = TRANSLATE_GENDER($_POST['gender']);
@@ -336,57 +336,48 @@ array(
 
        // Output success registration
        LOAD_TEMPLATE("admin_settings_saved", false, REGISTRATION_DONE);
-}
- else
-{
-       if ($_POST['agree'] == "!")
-       {
+} else {
+       if ($_POST['agree'] == "!") {
                OUTPUT_HTML("<STRONG><SPAN class=\"register_failed\">".HAVE_TO_AGREE."</SPAN></STRONG><br /><br />");
-       }
-       if ($_POST['addy'] == "!")
-       {
+       } // END - if
+
+       if ($_POST['addy'] == "!") {
                OUTPUT_HTML("<STRONG><SPAN class=\"register_failed\">".ENTER_EMAIL."</SPAN></STRONG><br /><br />");
                $_POST['addy'] = "";
-       }
-        elseif ($_POST['addy'] == "?")
-       {
+       } elseif ($_POST['addy'] == "?") {
                OUTPUT_HTML("<STRONG><SPAN class=\"register_failed\">".EMAIL_ALREADY_DB."</SPAN></STRONG><br /><br />");
                $_POST['addy'] = "";
        }
-       if ($_POST['surname'] == "!")
-       {
+
+       if ($_POST['surname'] == "!") {
                OUTPUT_HTML("<STRONG><SPAN class=\"register_failed\">".ENTER_SURNAME."</SPAN></STRONG><br /><br />");
                $_POST['surname'] = "";
-       }
-       if ($_POST['family_name'] == "!")
-       {
+       } // END - if
+
+       if ($_POST['family_name'] == "!") {
                OUTPUT_HTML("<STRONG><SPAN class=\"register_failed\">".ENTER_FAMILY."</SPAN></STRONG><br /><br />");
                $_POST['family_name'] = "";
-       }
-       if (($_POST['pass1'] == "!") && ($_POST['pass2'] == "!"))
-       {
+       } // END - if
+
+       if (($_POST['pass1'] == "!") && ($_POST['pass2'] == "!")) {
                OUTPUT_HTML("<STRONG><SPAN class=\"register_failed\">".ENTER_BOTH_PASSWORDS."</SPAN></STRONG><br /><br />");
-       }
-        elseif ($_POST['pass1'] == "!")
-       {
+       } elseif ($_POST['pass1'] == "!") {
                OUTPUT_HTML("<STRONG><SPAN class=\"register_failed\">".ENTER_PASS1."</SPAN></STRONG><br /><br />");
-       }
-        elseif ($_POST['pass2'] == "!")
-       {
+       } elseif ($_POST['pass2'] == "!") {
                OUTPUT_HTML("<STRONG><SPAN class=\"register_failed\">".ENTER_PASS2."</SPAN></STRONG><br /><br />");
        }
-       if ($SHORT_PASS)
-       {
+
+       if ($SHORT_PASS) {
                OUTPUT_HTML("<STRONG><SPAN class=\"register_failed\">".SHORT_PASS.": ".$_CONFIG['pass_len']."</SPAN></STRONG><br /><br />");
-       }
-       if ($IP_TIMEOUT)
-       {
+       } // END - if
+
+       if ($IP_TIMEOUT) {
                OUTPUT_HTML("<STRONG><SPAN class=\"register_failed\">".REMOTE_ADDR_TIMEOUT."</SPAN></STRONG><br /><br />");
-       }
-       if ((!empty($cats)) && ($cats < $_CONFIG['least_cats']))
-       {
+       } // END - if
+
+       if ((!empty($cats)) && ($cats < $_CONFIG['least_cats'])) {
                OUTPUT_HTML("<STRONG><SPAN class=\"register_failed\">".CATS_LEAST.": ".$_CONFIG['least_cats']."</SPAN></STRONG><br /><br />");
-       }
+       } // END - if
 
        // Generate birthday selection
        switch (GET_LANGUAGE())
@@ -419,7 +410,7 @@ array(
                        // Set zero
                        $GLOBALS['refid'] = 0;
                }
-       }
+       } // END - if
 
        // Shall I display the refid or shall I make it editable?
        if ($_CONFIG['display_refid'] == "Y") {
@@ -437,10 +428,13 @@ array(
        define('LEAST_CATS_VALUE', $_CONFIG['least_cats']);
 
        // Other values
-       define('__SURNAME', $_POST['surname']);   define('__FAMILY',  $_POST['family_name']);
-       define('__STREET',  $_POST['street_nr']); define('__COUNTRY', $_POST['cntry']);
-       define('__ZIP',     $_POST['zip']);       define('__CITY',    $_POST['city']);
-       define('__ADDY',    $_POST['addy']);
+       define('__SURNAME', SQL_ESCAPE($_POST['surname']));
+       define('__FAMILY',  SQL_ESCAPE($_POST['family_name']));
+       define('__STREET',  SQL_ESCAPE($_POST['street_nr']));
+       define('__COUNTRY', SQL_ESCAPE($_POST['cntry']));
+       define('__ZIP',     bigintval($_POST['zip']));
+       define('__CITY',    SQL_ESCAPE($_POST['city']));
+       define('__ADDY',    SQL_ESCAPE($_POST['addy']));
 
        // Shall I add a counrty selection box or the old input box?
        if (EXT_IS_ACTIVE("country"))