From 8ee39f4094e71546b3cf7e4edb97492be0ea349e Mon Sep 17 00:00:00 2001 From: =?utf8?q?Roland=20H=C3=A4der?= Date: Sat, 22 Nov 2008 20:14:00 +0000 Subject: [PATCH] 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. --- inc/databases.php | 2 +- inc/libs/refback_functions.php | 2 +- inc/modules/admin/what-add_points.php | 6 ++++++ inc/mysql-manager.php | 14 ++++++++------ 4 files changed, 16 insertions(+), 8 deletions(-) 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__."(".__LINE__."):uid={$uid},ref={$ref},level={$level},points={$points}
\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 = "
".YOU_ARE_HERE." Home"; } 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 .= "
\n"; - $DEPTH = "0"; + $NAV_DEPTH = "0"; // Handle failed logins here if not in guest //* DEBUG: */ print __FUNCTION__."(".__LINE__."):type={$type},action={$GLOBALS['action']},what={$GLOBALS['what']},lvl={$ACC_LVL}
\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 "----------------------- ".__FUNCTION__." - ENTRY ------------------------