- // User id valid and not webmaster's id?
- if (($uid > 0) && (getConfig('beg_uid') != $uid)) {
- // 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__);
-
- // 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, GET_REMOTE_ADDR(), 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")) {
-
- // Admin is testing?
- if (!IS_ADMIN()) {
- // 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, GET_REMOTE_ADDR(), session_id()), __FILE__, __LINE__);
-
- // Was is successfull?
- if (SQL_AFFECTEDROWS() == 1) {
- // Okay!
- $pay = true;
- } // END - if
- } else {
- // Is admin!
- $pay = true;
- }
+// Check for userid
+if (isGetRequestParameterSet('userid')) {
+ // Init variables
+ $points = '0';
+
+ // Don't pay is the default...
+ $pay = false;
+
+ // Validate if it is not a number
+ if ((isExtensionActive('nickname')) && (isNicknameUsed(getRequestParameter('userid')))) {
+ // Maybe we have found a nickname?
+ fetchUserData(getRequestParameter('userid'), 'nickname');
+ } elseif (isNicknameUsed(getRequestParameter('userid'))) {
+ // Nickname entered but nickname is not active
+ $errorCode = getCode('EXTENSION_PROBLEM');
+ } else {
+ // Direct userid
+ fetchUserData(getRequestParameter('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((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'] = $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?
+ if (((SQL_HASZERONUMS($result)) || (isAdmin())) && ($points > 0) && (!isMember()) && (getBegPayMode() == 'NONE')) {
+ // 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());
+ } else {
+ // Is admin!
+ $pay = true;
+ }