More network types and request parameters added, POST rerequest fixed
[mailer.git] / beg.php
diff --git a/beg.php b/beg.php
index 27bb97df84504d8646f695e3fd77282a31bc6029..2aabc5c1c28feeb85861511e3445048a5f441194 100644 (file)
--- a/beg.php
+++ b/beg.php
@@ -1,7 +1,7 @@
 <?php
 /************************************************************************
- * MXChange v0.2.1                                    Start: 01/09/2005 *
- * ===============                              Last change: 01/09/2005 *
+ * Mailer v0.2.1-FINAL                                Start: 01/09/2005 *
+ * ===================                          Last change: 01/09/2005 *
  *                                                                      *
  * -------------------------------------------------------------------- *
  * File              : beg.php                                          *
@@ -17,7 +17,7 @@
  * Needs to be in all Files and every File needs "svn propset           *
  * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
  * -------------------------------------------------------------------- *
- * Copyright (c) 2003 - 2008 by Roland Haeder                           *
+ * Copyright (c) 2003 - 2009 by Roland Haeder                           *
  * For more information visit: http://www.mxchange.org                  *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
@@ -44,101 +44,78 @@ $GLOBALS['startTime'] = microtime(true);
 
 // Set module
 $GLOBALS['module'] = 'beg';
-$GLOBALS['refid']  = 0;
 $GLOBALS['output_mode'] = -1;
 $errorCode = null;
 
 // Load the required file(s)
 require('inc/config-global.php');
 
-// Is the 'beg' extension active?
-REDIRCT_ON_UNINSTALLED_EXTENSION('beg');
+// Set content type
+setContentType('text/html');
 
-// Is the script installed?
-if (!isInstalled()) {
-       // You have to install first!
-       redirectToUrl('install.php');
-} // END - if
+// Is the 'beg' extension active?
+redirectOnUninstalledExtension('beg');
 
 // Check for userid
-if (REQUEST_ISSET_GET('uid')) {
+if (isGetRequestParameterSet('userid')) {
        // Init variables
-       $uid = 0;
-       $result = false;
-       $points = 0;
+       $points = '0';
 
        // Don't pay is the default...
        $pay = false;
 
        // Validate if it is not a number
-       if (''.(REQUEST_GET('uid') + 0).'' !== ''.REQUEST_GET('uid').'') {
-               if (EXT_IS_ACTIVE('nickname')) {
+       if (isNicknameUsed(getRequestParameter('userid'))) {
+               // Is the nickname extension there?
+               if (isExtensionActive('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",
-                               array(REQUEST_GET('uid')), __FILE__, __LINE__);
+                       fetchUserData(getRequestParameter('userid'), 'nickname');
                } else {
                        // Nickname entered but nickname is not active
                        $errorCode = getCode('EXTENSION_PROBLEM');
-                       $uid = -1;
                }
        } else {
                // Direct userid
-               $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(REQUEST_GET('uid'))), __FILE__, __LINE__);
+               fetchUserData(getRequestParameter('userid'));
        }
 
        // Check if locked in so don't pay points
        $status = 'failed';
 
        // Check if account was found
-       if (SQL_NUMROWS($result) == 1) {
-               // Found an ID so we simply set it
-               list($uid, $clicks, $ref_payout, $status, $last) = SQL_FETCHROW($result);
-
-               // Account confirmed?
-               if ($status == 'CONFIRMED') {
-                       // Secure userid
-                       $uid = bigintval($uid);
-
-                       // 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 = mt_rand((getConfig('beg_points') * 100000), (getConfig('beg_points_max') * 100000)) / 100000;
-
-                       // Set nickname / userid for the template(s
-                       define('__BEG_UID'   , REQUEST_GET('uid'));
-                       define('__BEG_CLICKS', ($clicks + 1));
-                       define('__BEG_BANNER', LOAD_TEMPLATE('beg_banner', true));
-                       define('__BEG_POINTS', translateComma($points));
-               } else {
-                       // Other status
-                       $uid = 0;
-               }
+       if ((isUserDataValid()) && (getUserData('status') == 'CONFIRMED')) {
+               // 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 = mt_rand((getConfig('beg_points') * 100000), (getConfig('beg_points_max') * 100000)) / 100000;
+
+               // Set nickname / userid for template
+               $content['userid']      = getRequestParameter('userid');
+               $content['clicks']      = (getUserData('beg_clicks') + 1);
+               $content['banner']      = loadTemplate('beg_banner', true);
+               $content['points']      = translateComma($points);
        } // END - if
 
-       // Free memory
-       SQL_FREERESULT($result);
-
        // User id valid and not webmaster's id?
-       if (($uid > 0) && (getConfig('beg_uid') != $uid)) {
+       if ((getUserData('userid') > 0) && (getConfig('beg_userid') != getUserData('userid'))) {
                // Update counter
-               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__);
+               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `beg_clicks`=`beg_clicks`+1 WHERE `userid`=%s LIMIT 1",
+                       array(getUserData('userid')), __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 > (UNIX_TIMESTAMP() - ".getConfig('beg_timeout').") OR (timeout > (UNIX_TIMESTAMP() - ".getConfig('beg_uid_timeout').") AND `userid`=%s)) AND (remote_ip='%s' OR sid='%s') LIMIT 1",
-               array($uid, detectRemoteAddr(), session_id()), __FILE__, __LINE__);
+               $result = SQL_QUERY_ESC("SELECT `id` FROM `{?_MYSQL_PREFIX?}_beg_ips` WHERE (`timeout` > (UNIX_TIMESTAMP() - {?beg_timeout?}) OR (timeout > (UNIX_TIMESTAMP() - {?beg_userid_timeout?}) AND `userid`=%s)) AND (`remote_ip`='%s' OR `sid`='%s') LIMIT 1",
+                       array(getUserData('userid'), detectRemoteAddr(), session_id()), __FILE__, __LINE__);
 
                // Entry not found, points set and not logged in?
-               if (((SQL_NUMROWS($result) == 0) || (IS_ADMIN())) && ($points > 0) && (!IS_MEMBER()) && (getConfig('beg_pay_mode') == 'NONE')) {
+               if (((SQL_NUMROWS($result) == '0') || (isAdmin())) && ($points > 0) && (!isMember()) && (getConfig('beg_pay_mode') == 'NONE')) {
 
                        // Admin is testing?
-                       if (!IS_ADMIN()) {
+                       if (!isAdmin()) {
                                // Remember remote address, userid and timestamp for next click
                                // but only when there is no admin begging.
                                // Admins shall be able to test it!
-                               SQL_QUERY_ESC("INSERT INTO `{!_MYSQL_PREFIX!}_beg_ips` (`userid`, `remote_ip`,`sid`, `timeout`) VALUES ('%s','%s','%s', UNIX_TIMESTAMP())",
-                                       array($uid, detectRemoteAddr(), session_id()), __FILE__, __LINE__);
+                               SQL_QUERY_ESC("INSERT INTO `{?_MYSQL_PREFIX?}_beg_ips` (`userid`, `remote_ip`,`sid`, `timeout`) VALUES ('%s','%s','%s', UNIX_TIMESTAMP())",
+                                       array(getUserData('userid'), detectRemoteAddr(), session_id()), __FILE__, __LINE__);
 
                                // Was is successfull?
                                $pay (SQL_AFFECTEDROWS() == 1);
@@ -150,34 +127,34 @@ if (REQUEST_ISSET_GET('uid')) {
                        // Pay points?
                        if ($pay === true) {
                                // Add points to user or begging rallye account
-                               if (BEG_ADD_POINTS($uid, $points)) {
+                               if (addPointsBeg(getUserData('userid'), $points)) {
                                        // Set 'done' message
-                                       $content['msg'] = LOAD_TEMPLATE('beg_done', true);
+                                       $content['message'] = loadTemplate('beg_done', true);
                                } else {
                                        // Error!
-                                       $content['msg'] = LOAD_TEMPLATE('beg_failed', true);
+                                       $content['message'] = loadTemplate('beg_failed', true);
                                }
                        } else {
                                // Error!
-                               $content['msg'] = LOAD_TEMPLATE('beg_failed', true);
+                               $content['message'] = loadTemplate('beg_failed', true);
                        }
-               } elseif (IS_MEMBER()) {
+               } elseif (isMember()) {
                        // Logged in user found!
-                       $content['msg'] = LOAD_TEMPLATE('beg_login', true);
+                       $content['message'] = loadTemplate('beg_login', true);
                } elseif (getConfig('beg_pay_mode') != 'NONE') { // Other pay-mode active!
                        // Prepare content for template
                        $content = array(
-                               'clicks' => constant('__BEG_CLICKS'),
-                               'points' => constant('__BEG_POINTS'),
-                               'uid'    => constant('__BEG_UID')
+                               'clicks' => $content['clicks'],
+                               'points' => $content['points'],
+                               'userid' => $content['userid']
                        );
 
                        // Load message template depending on pay-mode
-                       $content['msg'] = LOAD_TEMPLATE('beg_pay_mode_'.strtolower(getConfig('beg_pay_mode')), true, $content);
+                       $content['message'] = loadTemplate('beg_pay_mode_'.strtolower(getConfig('beg_pay_mode')), true, $content);
                        $pay = true;
                } else {
                        // Clicked received while reload lock is active
-                       $content['msg'] = LOAD_TEMPLATE('beg_failed', true);
+                       $content['message'] = loadTemplate('beg_failed', true, $content);
                }
 
                // Free memory
@@ -187,7 +164,7 @@ if (REQUEST_ISSET_GET('uid')) {
                loadIncludeOnce('inc/header.php');
 
                // Load final template
-               LOAD_TEMPLATE('beg_link', false, $content);
+               loadTemplate('beg_link', false, $content);
 
                // Tracker code enabled? (We don't track users here!
                if ((getConfig('beg_pay_mode') != 'NONE') && ($pay === true)) {
@@ -197,38 +174,33 @@ if (REQUEST_ISSET_GET('uid')) {
                        );
 
                        // Include config-depending template
-                       LOAD_TEMPLATE('beg_pay_code_'.strtolower(getConfig('beg_pay_mode')), false, $content);
-               } elseif ((!$pay) && (!isset($content['msg']))) {
+                       loadTemplate('beg_pay_code_'.strtolower(getConfig('beg_pay_mode')), false, $content);
+               } elseif (($pay === false) && (!isset($content['message']))) {
                        // Cannot pay! :-(
-                       $content['msg'] = LOAD_TEMPLATE('beg_failed', true);
+                       $content['message'] = loadTemplate('beg_failed', true);
                }
 
                // Include footer
                loadIncludeOnce('inc/footer.php');
-       } elseif (($status != 'CONFIRMED') && ($status != 'failed')) {
+       } elseif ((getUserData('status') != 'CONFIRMED') && (getUserData('status') != 'failed')) {
                // Maybe locked/unconfirmed account?
-               $errorCode = generateErrorCodeFromUserStatus($status);
-       } elseif (($uid == '0') || ($status == 'failed')) {
+               $errorCode = generateErrorCodeFromUserStatus();
+       } elseif ((getUserData('userid') == '0') || (getUserData('status') == 'failed')) {
                // Inalid or locked account, so let's find out
-               $result = SQL_QUERY_ESC("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_data` WHERE nickname='%s' LIMIT 1",
-                       array(REQUEST_GET('uid')), __FILE__, __LINE__);
-               if (SQL_NUMROWS($result) == 1) {
+               if (fetchUserData(getRequestParameter('userid'), 'nickname')) {
                        // Locked account
                        $errorCode = getCode('ACCOUNT_LOCKED');
                } else {
                        // Invalid nickname! (404)
                        $errorCode = getCode('USER_404');
                }
-
-               // Free memory
-               SQL_FREERESULT($result);
-       } elseif ($uid == getConfig('beg_uid')) {
-               // Webmaster's ID cannot beg for points!
+       } elseif (getUserData('userid') == getConfig('beg_userid')) {
+               // Webmaster's id cannot beg for points!
                $errorCode = getCode('BEG_SAME_AS_OWN');
        }
 
        // Reload to index module
-       if ((!empty($errorCode)) && (!empty($errorCode))) redirectToUrl('modules.php?module=index&amp;msg=' . $errorCode . '&amp;ext=beg');
+       if ((!empty($errorCode)) && (!empty($errorCode))) redirectToUrl('modules.php?module=index&amp;code=' . $errorCode . '&amp;ext=beg');
 } else {
        // No userid entered
        redirectToUrl('modules.php?module=index');
@@ -237,5 +209,5 @@ if (REQUEST_ISSET_GET('uid')) {
 // Really all done here... ;-)
 shutdown();
 
-//
+// [EOF]
 ?>