+ // 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((getBegPoints() * 100000), (getBegPointsMax() * 100000)) / 100000;
+
+ // Set nickname / userid for template
+ $content['userid'] = getRequestElement('userid');
+ $content['clicks'] = (getUserData('beg_clicks') + 1);
+ $content['header_banner'] = loadTemplate('beg_header_banner', true);
+ $content['footer_banner'] = loadTemplate('beg_footer_banner', true);
+ $content['points'] = $points;
+ } // END - if
+
+ // User id valid and not webmaster's id?
+ if ((isValidUserId(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",
+ array(getUserData('userid')), __FILE__, __LINE__);
+
+ // Check for last entry for userid w/o IP number 12 33 2 23 44 3 21 1 1
+ $result = SQL_QUERY_ESC("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'),
+ detectRemoteAddr(),
+ session_id()
+ ), __FILE__, __LINE__);
+
+ // Entry not found, points set and not logged in?
+ //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'SQL_HASZERONUMS()=' . intval(SQL_HASZERONUMS($result)) . ',isAdmin()=' . intval(isAdmin()) . ',points=' . $points . ',isMember()=' . intval(isMember()) . ',getBegPayMode()=' . getBegPayMode());
+ if ((SQL_HASZERONUMS($result)) && ($points > 0) && (getBegPayMode() == 'NONE') && ((!isMember()) || (isAdmin()))) {
+ // Default is result from isAdmin(), mostly false
+ $pay = 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__);
+
+ // Was is successfull?
+ $pay = (!SQL_HASZEROAFFECTED());
+ } // END - if
+
+ // Pay points?
+ //* DEBUG: */ logDebugMessage(__FILE__, __LINE__, 'pay=' . intval($pay));
+ if ($pay === true) {
+ // Add points to user or begging rallye account
+ if (addPointsBeg(getUserData('userid'), $points)) {
+ // Set 'done' message
+ $content['message'] = loadTemplate('beg_done', true, $content);