From: Roland Häder <roland@mxchange.org>
Date: Sat, 22 Nov 2008 20:14:00 +0000 (+0000)
Subject: Bug fixed in referal system:
X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=8ee39f4094e71546b3cf7e4edb97492be0ea349e;p=mailer.git

Bug fixed in referal system:
- Function ADD_DESCR() and ADD_POINTS_SYSTEM used both $DEPTH which is bad
  software design.
- We really need to rewrite the whole application! :-(
- This causes a bug in the referal system that all points are being booked
  to referal level one and not zero.
---

diff --git a/inc/databases.php b/inc/databases.php
index e13d1a8022..40403a2eed 100644
--- a/inc/databases.php
+++ b/inc/databases.php
@@ -114,7 +114,7 @@ define('USAGE_BASE', "usage");
 define('SERVER_URL', "http://www.mxchange.org");
 
 // This current patch level
-define('CURR_SVN_REVISION', "542");
+define('CURR_SVN_REVISION', "543");
 
 // Take a prime number which is long (if you know a longer one please try it out!)
 define('_PRIME', 591623);
diff --git a/inc/libs/refback_functions.php b/inc/libs/refback_functions.php
index c93d950d66..5d04dde481 100644
--- a/inc/libs/refback_functions.php
+++ b/inc/libs/refback_functions.php
@@ -54,7 +54,7 @@ function ADD_REFBACK_POINTS ($uid, $ref, $points, $ref_points) {
 	// "Walk" through all level
 	while (list($level, $perc) = SQL_FETCHROW($result_refs)) {
 		// Reset ref depths
-		$DEPTH = -1;
+		unset($DEPTH);
 
 		// "Walk" through all refids
 		//* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):uid={$uid},ref={$ref},level={$level},points={$points}<br />\n";
diff --git a/inc/modules/admin/what-add_points.php b/inc/modules/admin/what-add_points.php
index 683da19824..87ed2594ef 100644
--- a/inc/modules/admin/what-add_points.php
+++ b/inc/modules/admin/what-add_points.php
@@ -58,6 +58,12 @@ if ($_GET['u_id'] == "all") {
 				SQL_FREERESULT($result);
 
 				if ((isset($_POST['ok'])) && (!empty($_POST['points']))) {
+					global $DEPTH;
+					// Remove depth to prevent booking errors. This is a bad coding
+					// practice, thats also why we need to write this project from
+					// scratch...
+					unset($DEPTH);
+
 					// Ok, add points and send an email to him...
 					ADD_POINTS_REFSYSTEM($uid, bigintval($_POST['points']), false, "0", false, "direct");
 
diff --git a/inc/mysql-manager.php b/inc/mysql-manager.php
index 093ea4ee8f..684d43d3d8 100644
--- a/inc/mysql-manager.php
+++ b/inc/mysql-manager.php
@@ -190,7 +190,7 @@ function CHECK_MODULE($mod) {
 
 // Add menu description pending on given file name (without path!)
 function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) {
-	global $DEPTH, $_CONFIG;
+	global $NAV_DEPTH, $_CONFIG;
 	// Use only filename of the file ;)
 	$file = basename($file);
 
@@ -249,11 +249,11 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) {
 		$modCheck = $GLOBALS['module'];
 		$AND = "";
 	}
-	if ((!isset($DEPTH)) && (!$return)) {
-		$DEPTH = 0;
+	if ((!isset($NAV_DEPTH)) && (!$return)) {
+		$NAV_DEPTH = 0;
 		$prefix = "<DIV class=\"you_are_here\">".YOU_ARE_HERE."&nbsp;<STRONG><A class=\"you_are_here\" href=\"".URL."/modules.php?module=".$GLOBALS['module'].$LINK_ADD."\">Home</A></STRONG>";
 	} else {
-		if (!$return) $DEPTH++;
+		if (!$return) $NAV_DEPTH++;
 		$prefix = "";
 	}
 
@@ -297,7 +297,7 @@ function ADD_DESCR($ACC_LVL, $file, $return = false, $output = true) {
 
 				// Add line-break tag
 				$OUT .= "<br />\n";
-				$DEPTH = "0";
+				$NAV_DEPTH = "0";
 
 				// Handle failed logins here if not in guest
 				//* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>):type={$type},action={$GLOBALS['action']},what={$GLOBALS['what']},lvl={$ACC_LVL}<br />\n";
@@ -1159,7 +1159,7 @@ function GET_REF_LEVEL_PERCENTS ($level) {
  * add_mode    = Add points only to $uid or also refs? (WARNING! Changing "ref" to "direct"
  *               for default value will cause no referal will get points ever!!!)
  */
-function ADD_POINTS_REFSYSTEM($uid, $points, $send_notify=false, $rid="0", $locked=false, $add_mode="ref") {
+function ADD_POINTS_REFSYSTEM ($uid, $points, $send_notify=false, $rid="0", $locked=false, $add_mode="ref") {
 	//* DEBUG: */ print "----------------------- <font color=\"#00aa00\">".__FUNCTION__." - ENTRY</font> ------------------------<ul><li>\n";
 	global $DEPTH, $_CONFIG, $DATA, $cacheArray;
 
@@ -1176,10 +1176,12 @@ function ADD_POINTS_REFSYSTEM($uid, $points, $send_notify=false, $rid="0", $lock
 	// Count up referal depth
 	if (!isset($DEPTH)) {
 		// Initialialize referal system
+		//* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>): Referal system initialized!<br />\n";
 		$DEPTH = 0;
 	} else {
 		// Increase referal level
 		$DEPTH++;
+		//* DEBUG: */ print __FUNCTION__."(<font color=\"#0000aa\">".__LINE__."</font>): Referal level increased. DEPTH={$DEPTH}<br />\n";
 	}
 
 	// Default is "normal" points