Variable DEPTH must be deleted before ADD_POINTS_REFSYSTEM() is being called :(
[mailer.git] / beg.php
diff --git a/beg.php b/beg.php
index 8ce941981883112c4e54aea02a84885a874ac099..f53f158f2ee2f8a3c0f5738cbce052198d7f6d87 100644 (file)
--- a/beg.php
+++ b/beg.php
@@ -35,7 +35,8 @@
 require_once("inc/libs/security_functions.php");
 
 // Init "action" and "what"
-global $what, $action;
+global $what, $action, $startTime;
+$GLOBALS['startTime'] = microtime(true);
 $GLOBALS['what'] = ""; $GLOBALS['action'] = "";
 
 // Set module
@@ -47,15 +48,21 @@ $msg = null;
 // Load the required file(s)
 require ("inc/config.php");
 
+// Is the "beg" extension active?
+if (!EXT_IS_ACTIVE("beg")) {
+       // Redirect to index
+       LOAD_URL("modules.php?module=index&msg=".CODE_EXTENSION_PROBLEM."&ext=beg");
+} // END - if
+
 // Is the script installed?
-if (defined('mxchange_installed') && (mxchange_installed)) {
+if (isBooleanConstantAndTrue('mxchange_installed')) {
        // Check for userid
        if (!empty($_GET['uid'])) {
                // Init user ID
                $uid = 0;
 
                // Validate if it is not a number
-               if (bigintval($_GET['uid']) !== "".$_GET['uid']."") {
+               if ("".($_GET['uid'] + 0)."" !== "".$_GET['uid']."") {
                        if (EXT_IS_ACTIVE("nickname")) {
                                // Maybe we have found a nickname?
                                $result = SQL_QUERY_ESC("SELECT userid, beg_clicks, ref_payout, status, last_online FROM "._MYSQL_PREFIX."_user_data WHERE nickname='%s' LIMIT 1",
@@ -68,16 +75,16 @@ if (defined('mxchange_installed') && (mxchange_installed)) {
                        }
                } else {
                        // Direct userid
-                       $result = SQL_QUERY_ESC("SELECT userid, beg_clicks, ref_payout, status, last_online FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
+                       $result = SQL_QUERY_ESC("SELECT userid, beg_clicks, ref_payout, status, last_online FROM "._MYSQL_PREFIX."_user_data WHERE userid=%s LIMIT 1",
                         array(bigintval($_GET['uid'])), __FILE__, __LINE__);
                }
 
                // Check if locked in so don't pay points
                $login = false; $status = "failed";
-               if (IS_LOGGED_IN()) {
+               if (IS_MEMBER()) {
                        // Logged in user detected!
                        $login = true;
-               }
+               } // END - if
 
                // Check if account was found
                if ((SQL_NUMROWS($result) == 1) && ($result != false)) {
@@ -88,36 +95,36 @@ if (defined('mxchange_installed') && (mxchange_installed)) {
                                $uid = bigintval($uid);
 
                                // Calculate beg points
-                               srand((double)microtime() * 10000000000 / time());
+                               mt_srand((double)microtime() * 10000000000 / time());
 
                                // Multiply configured values with 100000 and divide with 100000 so we can also handle small values
                                // If we need more number behind the decimal dot then we just need to increase all these three
                                // numbers matching to the numbers behind the decimal dot. Simple! ;-)
-                               $POINTS = rand(($CONFIG['beg_points'] * 100000), ($CONFIG['beg_points_max'] * 100000)) / 100000;
+                               $points = mt_rand(($_CONFIG['beg_points'] * 100000), ($_CONFIG['beg_points_max'] * 100000)) / 100000;
 
                                // Set nickname / userid for the template(s
                                define('__BEG_UID'   , $_GET['uid']);
                                define('__BEG_CLICKS', ($clicks + 1));
                                define('__BEG_BANNER', LOAD_TEMPLATE("beg_banner", true));
-                               define('__BEG_POINTS', TRANSLATE_COMMA($POINTS));
+                               define('__BEG_POINTS', TRANSLATE_COMMA($points));
                        } else {
                                // Other status
-                               $uid = "0";
+                               $uid = 0;
                        }
                }
 
                // Free memory
                SQL_FREERESULT($result);
 
-               if (($uid > 0) && ($CONFIG['beg_uid'] != $uid)) {
+               if (($uid > 0) && ($_CONFIG['beg_uid'] != $uid)) {
                        // Update counter
-                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET beg_clicks=beg_clicks+1 WHERE userid=%d AND status='CONFIRMED' LIMIT 1",
+                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET beg_clicks=beg_clicks+1 WHERE userid=%s AND status='CONFIRMED' LIMIT 1",
                         array($uid), __FILE__, __LINE__);
 
                        // Check for last entry for userid w/o IP number
-                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_beg_ips WHERE (timeout > ".(time() - $CONFIG['beg_timeout'])." OR (timeout > ".(time() - $CONFIG['beg_uid_timeout'])." AND userid=%d)) AND remote_ip='%s' LIMIT 1",
-                        array($uid, getenv('REMOTE_ADDR')), __FILE__, __LINE__);
-                       if ((SQL_NUMROWS($result) == 0) && ($POINTS > 0) && (!$login)) {
+                       $result = SQL_QUERY_ESC("SELECT id FROM "._MYSQL_PREFIX."_beg_ips WHERE (timeout > (UNIX_TIMESTAMP() - ".$_CONFIG['beg_timeout'].") OR (timeout > (UNIX_TIMESTAMP() - ".$_CONFIG['beg_uid_timeout'].") AND userid=%s)) AND remote_ip='%s' LIMIT 1",
+                        array($uid, GET_REMOTE_ADDR()), __FILE__, __LINE__);
+                       if ((SQL_NUMROWS($result) == 0) && ($points > 0) && (!$login)) {
                                // Free memory
                                SQL_FREERESULT($result);
 
@@ -125,35 +132,29 @@ if (defined('mxchange_installed') && (mxchange_installed)) {
                                        // Remember remote address, userid and timestamp for next click
                                        // but only when there is no admin begging.
                                        // Admins shall be able to test it!
-                                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_beg_ips (userid, remote_ip, timeout) VALUES('%s', '%s', UNIX_TIMESTAMP())",
-                                        array($uid, getenv('REMOTE_ADDR')), __FILE__, __LINE__);
+                                       $result = SQL_QUERY_ESC("INSERT INTO "._MYSQL_PREFIX."_beg_ips (userid, remote_ip, timeout) VALUES ('%s','%s', UNIX_TIMESTAMP())",
+                                        array($uid, GET_REMOTE_ADDR()), __FILE__, __LINE__);
                                }
 
                                // Set mode depending on how many mails the member has to confirm
                                $locked = false;
-                               if (($ref_payout > 0) && ($CONFIG['allow_direct_pay'] == 'N')) $locked = true;
+                               if (($ref_payout > 0) && ($_CONFIG['allow_direct_pay'] == "N")) $locked = true;
 
                                // Is begging rallye active?
-                               if ($CONFIG['beg_rallye'] == 'Y') {
+                               if ($_CONFIG['beg_rallye'] == "Y") {
                                        // Add points to rallye account
-                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET beg_points=beg_points+%s WHERE userid=%d LIMIT 1",
-                                        array($POINTS, $uid), __FILE__, __LINE__);
+                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET beg_points=beg_points+%s WHERE userid=%s LIMIT 1",
+                                        array($points, $uid), __FILE__, __LINE__);
                                } else {
                                        // Add points to account
-                                       ADD_POINTS_REFSYSTEM($uid, $POINTS, false, "0", $locked, strtolower($CONFIG['beg_mode']));
+                                       unset($DEPTH);
+                                       ADD_POINTS_REFSYSTEM($uid, $points, false, "0", $locked, strtolower($_CONFIG['beg_mode']));
                                }
 
                                // Subtract begged points from member account if the admin has selected one
-                               if ($CONFIG['beg_uid'] > 0) {
+                               if ($_CONFIG['beg_uid'] > 0) {
                                        // Subtract from this account
-                                       $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET used_points=used_points+%s WHERE userid=%d LIMIT 1",
-                                        array($POINTS, bigintval($CONFIG['beg_uid'])), __FILE__, __LINE__);
-
-                                       // Update mediadata as well
-                                       if (GET_EXT_VERSION("mediadata") >= "0.0.4") {
-                                               // Update database
-                                               MEDIA_UPDATE_ENTRY(array("total_points"), "sub", $POINTS);
-                                       }
+                                       SUB_POINTS($_CONFIG['beg_uid'], $points);
                                }
 
                                // Set message
@@ -200,21 +201,20 @@ if (defined('mxchange_installed') && (mxchange_installed)) {
 
                        // Free memory
                        SQL_FREERESULT($result);
-               } elseif ($uid == $CONFIG['beg_uid']) {
+               } elseif ($uid == $_CONFIG['beg_uid']) {
                        // Webmaster's ID cannot beg for points!
                        $msg = CODE_BEG_SAME_AS_OWN;
                }
 
                // Reload to index module
-               die("-".$msg."-");
-               if ((!empty($msg)) && (!empty($msg))) LOAD_URL(URL."/modules.php?module=index&msg=".$msg);
+               if ((!empty($msg)) && (!empty($msg))) LOAD_URL("modules.php?module=index&msg=".$msg."&ext=beg");
        } else {
                // No userid entered
-               LOAD_URL(URL."/modules.php?module=index");
+               LOAD_URL("modules.php?module=index");
        }
 } else {
        // You have to configure first!
-       LOAD_URL(URL."/install.php");
+       LOAD_URL("install.php");
 }
 
 // Really all done here... ;-)