One more found
[mailer.git] / mailid_top.php
index 5c4b8afecbe7608cd75dcd47e12e6069bcc9146a..04aef4c0fddccc49b610aaa88dcf2073874d4504 100644 (file)
  * $Date::                                                            $ *
  * $Tag:: 0.2.1-FINAL                                                 $ *
  * $Author::                                                          $ *
- * Needs to be in all Files and every File needs "svn propset           *
- * svn:keywords Date Revision" (autoprobset!) at least!!!!!!            *
+ * -------------------------------------------------------------------- *
+ * @TODO Merge this script with mailid.php                              *
  * -------------------------------------------------------------------- *
  * Copyright (c) 2003 - 2009 by Roland Haeder                           *
- * Copyright (c) 2009, 2010 by Mailer Developer Team                    *
- * For more information visit: http://www.mxchange.org                  *
+ * Copyright (c) 2009 - 2011 by Mailer Developer Team                   *
+ * For more information visit: http://mxchange.org                      *
  *                                                                      *
  * This program is free software; you can redistribute it and/or modify *
  * it under the terms of the GNU General Public License as published by *
@@ -44,14 +44,15 @@ require('inc/libs/security_functions.php');
 $GLOBALS['startTime'] = microtime(true);
 
 // Tell everyone we are in this module
-$GLOBALS['module'] = 'mailid';
-$GLOBALS['output_mode'] = -1;
+$GLOBALS['__module'] = 'mailid';
+$GLOBALS['output_mode'] = '0';
 
 // Load the required file(s)
 require('inc/config-global.php');
 
-// Set content type
+// Set content type and HTTP status
 setContentType('text/html');
+setHttpStatus('404 NOT FOUND');
 
 // Is the extension mailid active?
 redirectOnUninstalledExtension('mailid');
@@ -60,35 +61,38 @@ redirectOnUninstalledExtension('mailid');
 redirectOnUninstalledExtension('other');
 
 // Init variables
-$url_userid = '0';
-$url_bid = '0';
-$url_mid = '0';
+$userId = '0';
+$bonusId = '0';
+$mailId = '0';
 $code = '0';
-$mode = '';
+$do = '';
 
 // Secure all data
-if (isGetRequestParameterSet('userid'))  $url_userid = bigintval(getRequestParameter('userid'));
-if (isGetRequestParameterSet('mailid'))  $url_mid    = bigintval(getRequestParameter('mailid'));
-if (isGetRequestParameterSet('bonusid')) $url_bid    = bigintval(getRequestParameter('bonusid'));
-if (isGetRequestParameterSet('code'))    $code       = bigintval(getRequestParameter('code'));
-if (isGetRequestParameterSet('mode'))    $mode       = getRequestParameter('mode');
-
-// 01           1        12            2    2            21    1                   22     10
-if ((isValidUserId($url_userid)) && (($url_mid > 0) || ($url_bid > 0)) && (!ifFatalErrorsDetected())) {
-       // No image? Then output header
-       if ($mode != 'img') loadIncludeOnce('inc/header.php');
+if (isGetRequestElementSet('userid'))  $userId  = bigintval(getRequestElement('userid'));
+if (isGetRequestElementSet('mailid'))  $mailId  = bigintval(getRequestElement('mailid'));
+if (isGetRequestElementSet('bonusid')) $bonusId = bigintval(getRequestElement('bonusid'));
+if (isGetRequestElementSet('code'))    $code    = bigintval(getRequestElement('code'));
+if (isGetRequestElementSet('do'))      $do      = getRequestElement('do');
+
+// 01             2       21    12           2    2            21    1                      2210
+if ((isValidUserId($userId)) && (($mailId > 0) || ($bonusId > 0)) && (!ifFatalErrorsDetected())) {
+       // No image?
+       if ($do != 'img') {
+               // ... then output header
+               loadIncludeOnce('inc/header.php');
+       } // END - fi
 
        // Maybe he wants to confirm an email?
-       if ($url_mid > 0) {
-               $result_main = SQL_QUERY_ESC("SELECT `id`, `link_type` FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `stats_id`=%s AND `userid`=%s LIMIT 1",
-                       array($url_mid, $url_userid), __FILE__, __LINE__);
+       if ($mailId > 0) {
+               $result_main = SQL_QUERY_ESC("SELECT `id`,`link_type` FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `stats_id`=%s AND `userid`=%s LIMIT 1",
+                       array($mailId, $userId), __FILE__, __LINE__);
                $type = 'mailid';
-               $urlId = $url_mid;
-       } elseif ($url_bid > 0) {
-               $result_main = SQL_QUERY_ESC("SELECT `id`, `link_type` FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `bonus_id`=%s AND `userid`=%s LIMIT 1",
-                       array($url_bid, $url_userid), __FILE__, __LINE__);
+               $urlId = $mailId;
+       } elseif ($bonusId > 0) {
+               $result_main = SQL_QUERY_ESC("SELECT `id`,`link_type` FROM `{?_MYSQL_PREFIX?}_user_links` WHERE `bonus_id`=%s AND `userid`=%s LIMIT 1",
+                       array($bonusId, $userId), __FILE__, __LINE__);
                $type = 'bonusid';
-               $urlId = $url_bid;
+               $urlId = $bonusId;
        }
 
        if (SQL_NUMROWS($result_main) == 1) {
@@ -101,13 +105,13 @@ if ((isValidUserId($url_userid)) && (($url_mid > 0) || ($url_bid > 0)) && (!ifFa
                // @TODO Rewrite this to a filter
                switch ($ltype) {
                        case 'NORMAL':
-                               $result_mailid = SQL_QUERY_ESC("SELECT `pool_id`, `userid`, `id` FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `id`=%s LIMIT 1",
-                                       array($url_mid), __FILE__, __LINE__);
+                               $result_mailid = SQL_QUERY_ESC("SELECT `pool_id`,`userid`,`id` FROM `{?_MYSQL_PREFIX?}_user_stats` WHERE `id`=%s LIMIT 1",
+                                       array($mailId), __FILE__, __LINE__);
                                break;
 
                        case 'BONUS':
-                               $result_mailid = SQL_QUERY_ESC("SELECT `id`, `id`, `is_notify` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s LIMIT 1",
-                                       array($url_bid), __FILE__, __LINE__);
+                               $result_mailid = SQL_QUERY_ESC("SELECT `id`,`id`,`is_notify` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s LIMIT 1",
+                                       array($bonusId), __FILE__, __LINE__);
                                break;
 
                        default: // Unknown type
@@ -121,13 +125,17 @@ if ((isValidUserId($url_userid)) && (($url_mid > 0) || ($url_bid > 0)) && (!ifFa
                        list($pool, $sender, $notify) = SQL_FETCHROW($result_mailid);
 
                        // Correct notification switch in non-bonus mails
-                       if (($notify != 'Y') && ($notify != 'N')) $notify = 'N';
+                       if (($notify != 'Y') && ($notify != 'N')) {
+                               $notify = 'N';
+                       } // END - if
 
                        // Set sender to 0 when we have a bonus mail
-                       if ($ltype == 'BONUS') $sender = '0';
+                       if ($ltype == 'BONUS') {
+                               $sender = '0';
+                       } // END - if
 
                        // Is the user id valid?
-                       if (fetchUserData($url_userid) === true) {
+                       if (fetchUserData($userId) === true) {
                                // Is the user status CONFIRMED?
                                if (getUserData('status') == 'CONFIRMED') {
                                        // User has confirmed his account so we can procede...
@@ -150,7 +158,7 @@ if ((isValidUserId($url_userid)) && (($url_mid > 0) || ($url_bid > 0)) && (!ifFa
                                                        break;
 
                                                case 'BONUS':
-                                                       $result = SQL_QUERY_ESC("SELECT `time`, `points` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s LIMIT 1",
+                                                       $result = SQL_QUERY_ESC("SELECT `time`,`points` FROM `{?_MYSQL_PREFIX?}_bonus` WHERE `id`=%s LIMIT 1",
                                                                array(bigintval($pool)), __FILE__, __LINE__);
 
                                                        // Entry found?
@@ -172,14 +180,14 @@ if ((isValidUserId($url_userid)) && (($url_mid > 0) || ($url_bid > 0)) && (!ifFa
                                        if ($isValid === true) {
                                                if (($time == '0') && ($payment > 0)) $time = 1;
                                                if (($time > 0) && ($payment > 0)) {
-                                                       $img_code = '0';
+                                                       $realCode = '0';
                                                        if (!empty($code)) {
-                                                               // Generate code
-                                                               $img_code = generateRandomCode(getConfig('code_length'), $code, $url_userid, $urlId);
+                                                               // Generate code (the user sees in the CAPTCHA)
+                                                               $realCode = generateRandomCode(getCodeLength(), $code, $userId, $urlId);
                                                        } // END - if
 
                                                        // @TODO Rewrite this to a filter
-                                                       switch ($mode) {
+                                                       switch ($do) {
                                                                case 'add':
                                                                        // Init stats data
                                                                        $stats_data = '0';
@@ -189,26 +197,26 @@ if ((isValidUserId($url_userid)) && (($url_mid > 0) || ($url_bid > 0)) && (!ifFa
                                                                        switch ($ltype) {
                                                                                case 'NORMAL':
                                                                                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_stats` SET `clicks`=`clicks`+1 WHERE `id`=%s LIMIT 1",
-                                                                                               array($url_mid), __FILE__, __LINE__);
+                                                                                               array($mailId), __FILE__, __LINE__);
 
                                                                                        // Update mediadata as well
                                                                                        if (isExtensionInstalledAndNewer('mediadata', '0.0.4')) {
                                                                                                // Update database
                                                                                                updateMediadataEntry(array('total_clicks', 'normal_clicks'), 'add', 1);
                                                                                        } // END - if
-                                                                                       $stats_data = $url_mid;
+                                                                                       $stats_data = $mailId;
                                                                                        break;
 
                                                                                case 'BONUS':
                                                                                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_bonus` SET `clicks`=`clicks`+1 WHERE `id`=%s LIMIT 1",
-                                                                                               array($url_bid), __FILE__, __LINE__);
+                                                                                               array($bonusId), __FILE__, __LINE__);
 
                                                                                        // Update mediadata as well
                                                                                        if (isExtensionInstalledAndNewer('mediadata', '0.0.4')) {
                                                                                                // Update database
                                                                                                updateMediadataEntry(array('total_clicks', 'bonus_clicks'), 'add', 1);
                                                                                        } // END - if
-                                                                                       $stats_data = $url_bid;
+                                                                                       $stats_data = $bonusId;
                                                                                        break;
 
                                                                                default: // Unknown type
@@ -223,53 +231,61 @@ if ((isValidUserId($url_userid)) && (($url_mid > 0) || ($url_bid > 0)) && (!ifFa
                                                                        // @TODO Rewrite these blocks to filter
                                                                        if (isExtensionInstalledAndNewer('user', '0.1.2')) {
                                                                                // Update counter
-                                                                               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET mails_confirmed=mails_confirmed + 1 WHERE `userid`=%s LIMIT 1",
-                                                                                       array($url_userid), __FILE__, __LINE__);
+                                                                               SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `mails_confirmed`=`mails_confirmed`+1 WHERE `userid`=%s LIMIT 1",
+                                                                                       array($userId), __FILE__, __LINE__);
 
                                                                                // Update random confirmed as well?
-                                                                               if (isExtensionInstalledAndNewer('user', '0.3.4')) {
+                                                                               if ((isExtensionInstalledAndNewer('user', '0.3.4')) && (isRandomReferralIdEnabled())) {
                                                                                        // Update second counter
                                                                                        SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `rand_confirmed`=`rand_confirmed` + 1 WHERE `userid`=%s LIMIT 1",
-                                                                                               array($url_userid), __FILE__, __LINE__);
+                                                                                               array($userId), __FILE__, __LINE__);
                                                                                } // END - if
                                                                        } // END - if
 
                                                                        // Insert stats record
-                                                                       insertUserStatsRecord($url_userid, $type, $stats_data);
+                                                                       insertUserStatsRecord($userId, $type, $stats_data);
 
                                                                        // Right code entered?
-                                                                       if (bigintval(postRequestParameter('gfx_check')) == $img_code) {
-                                                                               // Add points over referal system is the default
+                                                                       if (bigintval(postRequestElement('gfx_check')) == $realCode) {
+                                                                               // Set HTTP status to okay
+                                                                               setHttpStatus('200 OK');
+
+                                                                               // Add points over referral system is the default
                                                                                $template = 'mailid_points_done';
 
                                                                                // Right code entered add points and remove entry
-                                                                               if ((getUserData('ref_payout') > 0) && (!isDirectPaymentAllowed())) {
-                                                                                       // Don't add points over the referal system
+                                                                               if (ifUserPointsLocked($userId)) {
+                                                                                       // Don't add points over the referral system
                                                                                        $template = 'mailid_points_locked';
                                                                                } // END - if
 
                                                                                // Count down ref_payout value
                                                                                SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `ref_payout`=`ref_payout`-1 WHERE `userid`=%s AND `ref_payout` > 0 LIMIT 1",
-                                                                                       array($url_userid), __FILE__, __LINE__);
+                                                                                       array($userId), __FILE__, __LINE__);
 
                                                                                // Add points
-                                                                               // @TODO Try to rewrite the following unset()
-                                                                               unset($GLOBALS['ref_level']);
-                                                                               addPointsThroughReferalSystem('mailid_okay', $url_userid, $payment);
+                                                                               initReferralSystem();
+                                                                               addPointsThroughReferralSystem('mailid_okay', $userId, $payment);
 
                                                                                // Shall I add bonus points for "turbo clickers" ?
                                                                                if (isExtensionInstalledAndNewer('bonus', '0.2.2')) {
                                                                                        // Is an active-rallye running and this is not a notification mail?
                                                                                        if ((isBonusRallyeActive()) && ($notify != 'Y')) {
                                                                                                // Shall I exclude the webmaster's own userid from the active-rallye?
-                                                                                               if ((((getBonusUserId() == $url_userid) && (getConfig('bonus_include_own') == 'Y')) || (getBonusUserId() != $url_userid)) && (getConfig('def_refid') != $url_userid)) {
+                                                                                               if ((((getBonusUserid() == $userId) && (getConfig('bonus_include_own') == 'Y')) || (getBonusUserid() != $userId)) && (getDefRefid() != $userId)) {
                                                                                                        // Add points and remember ranking are done in this function....
-                                                                                                       addTurboBonus($urlId, $url_userid, $type);
+                                                                                                       addTurboBonus($urlId, $userId, $type);
 
                                                                                                        // Set template to mailid_points_done2 which contains a link to the ranking list
                                                                                                        $template = 'mailid_points_done2';
-                                                                                                       if ($locked) $template = 'mailid_points_locked2';
-                                                                                                       $content['userid']  = $url_userid;
+
+                                                                                                       // Different template if user has some mails to confirm
+                                                                                                       if (ifUserPointsLocked($userId)) {
+                                                                                                               $template = 'mailid_points_locked2';
+                                                                                                       } // END - if
+
+                                                                                                       // Assign more data for the template
+                                                                                                       $content['userid']  = $userId;
                                                                                                        $content['type']    = $type;
                                                                                                        $content['data']    = $urlId;
                                                                                                } // END - if
@@ -277,16 +293,29 @@ if ((isValidUserId($url_userid)) && (($url_mid > 0) || ($url_bid > 0)) && (!ifFa
                                                                                } // END - if
 
                                                                                // Load total points
-                                                                               $content['total'] = getTotalPoints($url_userid);
+                                                                               $content['total_points']  = getTotalPoints($userId);
+
+                                                                               // Add payment points
+                                                                               $content['points'] = $payment;
 
                                                                                // Load template
                                                                                loadTemplate($template, false, $content);
                                                                        } elseif (isValidUserId($sender)) {
                                                                                // Wrong image code! So add points to sender's account
-                                                                               addPointsDirectly('mailid_payback', $sender, $payment);
+                                                                               initReferralSystem();
+                                                                               addPointsThroughReferralSystem('mailid_payback', $sender, $payment);
+
+                                                                               // Add payment points
+                                                                               $content['points'] = $payment;
 
                                                                                // Load template
                                                                                loadTemplate('mailid_points_failed', false, $content);
+                                                                       } else {
+                                                                               // Add payment points (again)
+                                                                               $content['points'] = $payment;
+
+                                                                               // Load template
+                                                                               loadTemplate('mailid_points_failed2', false, $content);
                                                                        }
 
                                                                        // Remove link from table
@@ -295,24 +324,24 @@ if ((isValidUserId($url_userid)) && (($url_mid > 0) || ($url_bid > 0)) && (!ifFa
                                                                        break;
 
                                                                case 'img':
-                                                                       generateImageOrCode($img_code);
+                                                                       generateImageOrCode($realCode);
                                                                        break;
 
                                                                case 'confirm':
                                                                        if ($code > 0) {
                                                                                // Export data into constants for the template
                                                                                $content['code']   = $code;
-                                                                               $content['userid'] = $url_userid;
+                                                                               $content['userid'] = $userId;
                                                                                $content['type']   = $type;
                                                                                $content['data']   = $urlId;
                                                                                $content['banner'] = loadTemplate('mailid_banner', true);
-                                                                               if (getConfig('code_length') > 0) {
+                                                                               if (getCodeLength() > 0) {
                                                                                        // Generate Code
-                                                                                       $content['image'] = generateCaptchaCode($code, $type, $urlId, $url_userid);
+                                                                                       $content['image'] = generateCaptchaCode($realCode, $type, $urlId, $userId);
                                                                                        $templ = 'mailid_enter_code';
                                                                                } else {
                                                                                        // Disabled code
-                                                                                       $content['gfx'] = $img_code;
+                                                                                       $content['gfx'] = $realCode;
                                                                                        $templ = 'mailid_confirm_buttom';
                                                                                }
 
@@ -329,7 +358,7 @@ if ((isValidUserId($url_userid)) && (($url_mid > 0) || ($url_bid > 0)) && (!ifFa
                                                                        // Export data into constants for the template
                                                                        $content['time']   = $time;
                                                                        $content['tim2']   = strlen($time);
-                                                                       $content['userid'] = $url_userid;
+                                                                       $content['userid'] = $userId;
                                                                        $content['type']   = $type;
                                                                        $content['data']   = $urlId;
                                                                        $content['rand']   = mt_rand(0, 99999);
@@ -340,42 +369,42 @@ if ((isValidUserId($url_userid)) && (($url_mid > 0) || ($url_bid > 0)) && (!ifFa
                                                                        break;
 
                                                                default: // Unknown mode
-                                                                       debug_report_bug(__FILE__, __LINE__, 'Unknown mode ' . $mode . ' detected.');
+                                                                       debug_report_bug(__FILE__, __LINE__, 'Unknown mode ' . $do . ' detected.');
                                                                        break;
                                                        } // END - switch
                                                } else {
-                                                       loadTemplate('admin_settings_saved', false, '<div class="member_failed">{--MAIL_ALREADY_CONFIRMED--} (6)</div>');
-                                                       $mode = 'failed';
+                                                       loadTemplate('admin_settings_unsaved', false, '{--MAIL_ALREADY_CONFIRMED--} (6)');
+                                                       $do = 'failed';
                                                }
                                        } else {
-                                               loadTemplate('admin_settings_saved', false, '<div class="member_failed">{--MAIL_ALREADY_CONFIRMED--} (5)</div>');
-                                               $mode = 'failed';
+                                               loadTemplate('admin_settings_unsaved', false, '{--MAIL_ALREADY_CONFIRMED--} (5)');
+                                               $do = 'failed';
                                        }
                                } else {
-                                       loadTemplate('admin_settings_saved', false, '<div class="member_failed">{--MAIL_ALREADY_CONFIRMED--} (4)</div>');
-                                       $mode = 'failed';
+                                       loadTemplate('admin_settings_unsaved', false, '{--MAIL_ALREADY_CONFIRMED--} (4)');
+                                       $do = 'failed';
                                }
                        } else {
-                               loadTemplate('admin_settings_saved', false, '<div class="member_failed">{--MAIL_ALREADY_CONFIRMED--} (3)</div>');
-                               $mode = 'failed';
+                               loadTemplate('admin_settings_unsaved', false, '{--MAIL_ALREADY_CONFIRMED--} (3)');
+                               $do = 'failed';
                        }
                } else {
-                       loadTemplate('admin_settings_saved', false, '<div class="member_failed">{--MAIL_ALREADY_CONFIRMED--} (2)</div>');
-                       $mode = 'failed';
+                       loadTemplate('admin_settings_unsaved', false, '{--MAIL_ALREADY_CONFIRMED--} (2)');
+                       $do = 'failed';
                }
 
                // Free result
                SQL_FREERESULT($result_mailid);
        } else {
-               loadTemplate('admin_settings_saved', false, '<div class="member_failed">{--MAIL_ALREADY_CONFIRMED--} (1)</div>');
-               $mode = 'failed';
+               loadTemplate('admin_settings_unsaved', false, '{--MAIL_ALREADY_CONFIRMED--} (1)');
+               $do = 'failed';
        }
 
        // Free result
        SQL_FREERESULT($result_main);
 
        // Insert footer if no image
-       if ($mode != 'img') {
+       if ($do != 'img') {
                // Write footer
                loadIncludeOnce('inc/footer.php');
        } // END - if