X-Git-Url: https://git.mxchange.org/?p=mailer.git;a=blobdiff_plain;f=beg.php;h=1ef706f9af6c3f5ccc12986b3a1e1b60efbf9499;hp=397fdf302c1495e9f27edfac4f639463ee938cca;hb=49acdb7a7adbcf25a8e8683b5581bfcec72b23bd;hpb=c85ddc06cc16f2cd38ddd7d4c142a3f578bbab69 diff --git a/beg.php b/beg.php index 397fdf302c..1ef706f9af 100644 --- a/beg.php +++ b/beg.php @@ -10,16 +10,9 @@ * -------------------------------------------------------------------- * * Kurzbeschreibung : Bettel-Link fuer Mitglieder * * -------------------------------------------------------------------- * - * $Revision:: $ * - * $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!!!!!! * - * -------------------------------------------------------------------- * * 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 - 2015 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 * @@ -41,12 +34,12 @@ require('inc/libs/security_functions.php'); // Init start time -$GLOBALS['startTime'] = microtime(true); +$GLOBALS['__start_time'] = microtime(TRUE); -// Set module -$GLOBALS['module'] = 'beg'; -$GLOBALS['output_mode'] = -1; -$errorCode = null; +// Set module and output mode (HTML) +$GLOBALS['__module'] = 'beg'; +$GLOBALS['__output_mode'] = '0'; +$errorCode = NULL; // Load the required file(s) require('inc/config-global.php'); @@ -58,157 +51,161 @@ setContentType('text/html'); redirectOnUninstalledExtension('beg'); // Check for userid -if (isGetRequestParameterSet('userid')) { +if (isGetRequestElementSet('userid')) { // Init variables $points = '0'; // Don't pay is the default... - $pay = false; + $isPayed = FALSE; // Validate if it is not a number - if (isNicknameUsed(getRequestParameter('userid'))) { - // Is the nickname extension there? - if (isExtensionActive('nickname')) { - // Maybe we have found a nickname? - fetchUserData(getRequestParameter('userid'), 'nickname'); - } else { - // Nickname entered but nickname is not active - $errorCode = getCode('EXTENSION_PROBLEM'); - } + if ((isExtensionActive('nickname')) && (isNicknameUsed(getRequestElement('userid')))) { + // Maybe a nickname is provided? + fetchUserData(getRequestElement('userid'), 'nickname'); + } elseif (isNicknameUsed(getRequestElement('userid'))) { + // Nickname entered but nickname is not active + $errorCode = getCode('EXTENSION_PROBLEM'); } else { // Direct userid - fetchUserData(getRequestParameter('userid')); + fetchUserData(getRequestElement('userid')); } // Check if locked in so don't pay points $status = 'failed'; // Check if account was found - 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; + if ((isValidUserData()) && (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((getBegPoints() * 100000), (getBegPointsMax() * 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); + $content['userid'] = getRequestElement('userid'); + $content['clicks'] = (getUserData('beg_clicks') + 1); + $content['points'] = $points; } // END - if // User id valid and not webmaster's id? - if ((getUserData('userid') > 0) && (getConfig('beg_userid') != getUserData('userid'))) { + if ((isValidId(getUserData('userid'))) && (getBegUserid() != getUserData('userid'))) { // Update counter - SQL_QUERY_ESC("UPDATE `{?_MYSQL_PREFIX?}_user_data` SET `beg_clicks`=`beg_clicks`+1 WHERE `userid`=%s LIMIT 1", + sqlQueryEscaped("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() - {?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__); + // Check for last entry for userid w/o IP number 12 33 2 23 44 3 21 1 1 + $result = sqlQueryEscaped("SELECT `id` FROM `{?_MYSQL_PREFIX?}_beg_ips` WHERE ((UNIX_TIMESTAMP() - `timeout`) >= {?beg_timeout?} OR ((UNIX_TIMESTAMP() - `timeout`) >= {?beg_userid_timeout?} AND `userid`=%s)) AND (`remote_ip`='%s' OR `sid`='%s') LIMIT 1", + array( + getUserData('userid'), + determineRealRemoteAddress(), + session_id() + ), __FILE__, __LINE__); // Entry not found, points set and not logged in? - if (((SQL_HASZERONUMS($result)) || (isAdmin())) && ($points > 0) && (!isMember()) && (getConfig('beg_pay_mode') == 'NONE')) { + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'SQL_HASZERONUMS()=' . intval(SQL_HASZERONUMS($result)) . ',isAdmin()=' . intval(isAdmin()) . ',points=' . $points . ',isMember()=' . intval(isMember()) . ',getBegPayMode()=' . getBegPayMode()); + if ((ifSqlHasZeroNumRows($result)) && ($points > 0) && (getBegPayMode() == 'NONE') && ((!isMember()) || (isAdmin()))) { + // Default is result from isAdmin(), mostly false + $isPayed = isAdmin(); // Admin is testing? 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(getUserData('userid'), detectRemoteAddr(), session_id()), __FILE__, __LINE__); + /* + * Remember remote address, userid and timestamp for next click + * but only when there is no admin begging. + * Admins shall be able to test it! + */ + sqlQueryEscaped("INSERT INTO `{?_MYSQL_PREFIX?}_beg_ips` (`userid`, `remote_ip`, `sid`, `timeout`) VALUES ('%s','%s','%s', UNIX_TIMESTAMP())", + array( + getUserData('userid'), + determineRealRemoteAddress(), + session_id() + ), __FILE__, __LINE__); // Was is successfull? - $pay (SQL_AFFECTEDROWS() == 1); - } else { - // Is admin! - $pay = true; - } + $isPayed = (!ifSqlHasZeroAffectedRows()); + } // END - if // Pay points? - if ($pay === true) { + //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'isPayed=' . intval($isPayed)); + if ($isPayed === TRUE) { // Add points to user or begging rallye account if (addPointsBeg(getUserData('userid'), $points)) { // Set 'done' message - $content['message'] = loadTemplate('beg_done', true); + $content['message'] = loadTemplate('beg_done', TRUE, $content); } else { // Error! - $content['message'] = loadTemplate('beg_failed', true); + $content['message'] = loadTemplate('beg_failed', TRUE, $content); } } else { // Error! - $content['message'] = loadTemplate('beg_failed', true); + $content['message'] = loadTemplate('beg_failed', TRUE, $content); } } elseif (isMember()) { - // Logged in user found! - $content['message'] = loadTemplate('beg_login', true); - } elseif (getConfig('beg_pay_mode') != 'NONE') { // Other pay-mode active! - // Prepare content for template - $content = array( - 'clicks' => $content['clicks'], - 'points' => $content['points'], - 'userid' => $content['userid'] - ); - + // Logged in user found + $content['message'] = loadTemplate('beg_login', TRUE, $content); + } elseif (getBegPayMode() != 'NONE') { // Other pay-mode active! // Load message template depending on pay-mode - $content['message'] = loadTemplate('beg_pay_mode_'.strtolower(getConfig('beg_pay_mode')), true, $content); - $pay = true; + $content['message'] = loadTemplate('beg_pay_mode_' . strtolower(getBegPayMode()), TRUE, $content); + $isPayed = TRUE; } else { // Clicked received while reload lock is active - $content['message'] = loadTemplate('beg_failed', true, $content); + $content['message'] = loadTemplate('beg_failed', TRUE, $content); } // Free memory - SQL_FREERESULT($result); + sqlFreeResult($result); // Include header - loadIncludeOnce('inc/header.php'); + loadPageHeader(); // Load final template - loadTemplate('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)) { + if ((getBegPayMode() != 'NONE') && ($isPayed === TRUE)) { // Prepare content for template // @TODO Opps, what is missing here??? $content = array( ); // Include config-depending template - loadTemplate('beg_pay_code_'.strtolower(getConfig('beg_pay_mode')), false, $content); - } elseif (($pay === false) && (!isset($content['message']))) { + loadTemplate('beg_pay_code_' . strtolower(getBegPayMode()), FALSE, $content); + } elseif (($isPayed === FALSE) && (!isset($content['message']))) { // Cannot pay! :-( - $content['message'] = loadTemplate('beg_failed', true); + $content['message'] = loadTemplate('beg_failed', TRUE); } // Include footer - loadIncludeOnce('inc/footer.php'); + loadPageFooter(); } elseif ((getUserData('status') != 'CONFIRMED') && (getUserData('status') != 'failed')) { // Maybe locked/unconfirmed account? $errorCode = generateErrorCodeFromUserStatus(); - } elseif ((getUserData('userid') == '0') || (getUserData('status') == 'failed')) { + } elseif ((!isValidId(getUserData('userid'))) || (getUserData('status') == 'failed')) { // Inalid or locked account, so let's find out - if (fetchUserData(getRequestParameter('userid'), 'nickname')) { + if (fetchUserData(getRequestElement('userid'), 'nickname')) { // Locked account $errorCode = getCode('ACCOUNT_LOCKED'); } else { // Invalid nickname! (404) $errorCode = getCode('USER_404'); } - } elseif (getUserData('userid') == getConfig('beg_userid')) { + } elseif (getUserData('userid') == getBegUserid()) { // 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&code=' . $errorCode . '&ext=beg'); + // Reload to index module if an error happens + if (!is_null($errorCode)) { + redirectToUrl('modules.php?module=index&code=' . $errorCode . '&ext=beg'); + } // END - if } else { // No userid entered redirectToUrl('modules.php?module=index'); } // Really all done here... ;-) -shutdown(); +doShutdown(); // [EOF] ?>