2 /************************************************************************
\r
3 * MXChange v0.2.1 Start: 11/14/2003 *
\r
4 * =============== Last change: 11/13/2004 *
\r
6 * -------------------------------------------------------------------- *
\r
7 * File : mailid_top.php *
\r
8 * -------------------------------------------------------------------- *
\r
9 * Short description : Confirmation file for emails *
\r
10 * -------------------------------------------------------------------- *
\r
11 * Kurzbeschreibung : Bestaetigung von Mails *
\r
12 * -------------------------------------------------------------------- *
\r
14 * -------------------------------------------------------------------- *
\r
15 * Copyright (c) 2003 - 2008 by Roland Haeder *
\r
16 * For more information visit: http://www.mxchange.org *
\r
18 * This program is free software; you can redistribute it and/or modify *
\r
19 * it under the terms of the GNU General Public License as published by *
\r
20 * the Free Software Foundation; either version 2 of the License, or *
\r
21 * (at your option) any later version. *
\r
23 * This program is distributed in the hope that it will be useful, *
\r
24 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
\r
25 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
\r
26 * GNU General Public License for more details. *
\r
28 * You should have received a copy of the GNU General Public License *
\r
29 * along with this program; if not, write to the Free Software *
\r
30 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, *
\r
31 * MA 02110-1301 USA *
\r
32 ************************************************************************/
\r
34 // Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
\r
35 require_once("inc/libs/security_functions.php");
\r
37 // Init "action" and "what"
\r
38 global $what, $action;
\r
39 $GLOBALS['what'] = ""; $GLOBALS['action'] = "";
\r
40 if (!empty($_GET['action'])) $GLOBALS['action'] = secureString($_GET['action']);
\r
41 if (!empty($_GET['what'])) $GLOBALS['what'] = secureString($_GET['what']);
\r
43 // Tell everyone we are in this module
\r
44 $GLOBALS['module'] = "mailid"; $CSS = "0";
\r
46 // Load the required file(s)
\r
47 require ("inc/config.php");
\r
49 if (defined('mxchange_installed') && (mxchange_installed))
\r
51 // Is the extension active
\r
52 if (!EXT_IS_ACTIVE("mailid", true)) {
\r
53 // Is not activated/installed yet!
\r
54 ADD_FATAL(sprintf(EXTENSION_PROBLEM_NOT_INSTALLED, "register"));
\r
58 $url_uid = "0"; $url_bid = "0"; $url_mid = "0"; $code = "0"; $mode = "";
\r
59 if (!empty($_GET['uid'])) $url_uid = bigintval($_GET['uid']);
\r
60 if (!empty($_GET['mailid'])) $url_mid = bigintval($_GET['mailid']);
\r
61 if (!empty($_GET['bonusid'])) $url_bid = bigintval($_GET['bonusid']);
\r
62 if (!empty($_GET['code'])) $code = bigintval($_GET['code']);
\r
63 if (!empty($_GET['mode'])) $mode = $_GET['mode'];
\r
65 // 01 1 12 2 2 21 1 2 2 10
\r
66 if (($url_uid) > 0 && (($url_mid > 0) || ($url_bid > 0)) && (count($FATAL) == 0))
\r
68 if ($mode != "img") require_once(PATH."inc/header.php");
\r
70 // Maybe he wants to confirm an email?
\r
73 $result = SQL_QUERY_ESC("SELECT id, link_type FROM "._MYSQL_PREFIX."_user_links WHERE stats_id=%d AND userid=%d LIMIT 1",
\r
74 array($url_mid, $url_uid), __FILE__, __LINE__);
\r
75 $TYPE = "mailid"; $DATA = $url_mid;
\r
77 elseif ($url_bid > 0)
\r
79 $result = SQL_QUERY_ESC("SELECT id, link_type FROM "._MYSQL_PREFIX."_user_links WHERE bonus_id=%d AND userid=%d LIMIT 1",
\r
80 array($url_bid, $url_uid), __FILE__, __LINE__);
\r
81 $TYPE = "bonusid"; $DATA = $url_bid;
\r
83 if (SQL_NUMROWS($result) == 1)
\r
85 // Is the stats ID valid?
\r
86 list($link_id, $ltype) = SQL_FETCHROW($result);
\r
87 SQL_FREERESULT($result);
\r
91 $result_mailid = SQL_QUERY_ESC("SELECT pool_id, userid, id FROM "._MYSQL_PREFIX."_user_stats WHERE id=%d LIMIT 1",
\r
92 array($url_mid), __FILE__, __LINE__);
\r
96 $result_mailid = SQL_QUERY_ESC("SELECT id, id, is_notify FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",
\r
97 array($url_bid), __FILE__, __LINE__);
\r
100 if (SQL_NUMROWS($result_mailid) == 1)
\r
102 list($pool, $sender, $notify) = SQL_FETCHROW($result_mailid);
\r
104 // Correct notification switch in non-bonus mails
\r
105 if (($notify != "Y") && ($notify != "N")) $notify = "N";
\r
107 // Free some memory
\r
108 SQL_FREERESULT($result_mailid);
\r
110 // Set sender to 0 when we have a bonus mail
\r
111 if ($ltype == "BONUS") $sender = 0;
\r
113 // Is the user's ID unlocked?
\r
114 $result = SQL_QUERY_ESC("SELECT status, sex, surname, family, ref_payout FROM "._MYSQL_PREFIX."_user_data WHERE userid=%d LIMIT 1",
\r
115 array($url_uid), __FILE__, __LINE__);
\r
116 if (SQL_NUMROWS($result) == 1)
\r
119 list($status, $sex, $sname, $fname, $ref_pay) = SQL_FETCHROW($result);
\r
120 SQL_FREERESULT($result);
\r
122 if ($status == "CONFIRMED")
\r
124 // Update last activity
\r
125 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET last_online=UNIX_TIMESTAMP(), last_module='mailid_top' WHERE userid=%d LIMIT 1",
\r
126 array($url_uid), __FILE__, __LINE__);
\r
128 // User has confirmed his account so we can procede...
\r
132 $result = SQL_QUERY_ESC("SELECT payment_id FROM "._MYSQL_PREFIX."_user_stats WHERE pool_id=%d LIMIT 1",
\r
133 array(bigintval($pool)), __FILE__, __LINE__);
\r
134 if (SQL_NUMROWS($result) == 1)
\r
136 list($pay) = SQL_FETCHROW($result);
\r
137 $time = GET_PAY_POINTS($pay, "time");
\r
138 $payment = GET_PAY_POINTS($pay, "payment");
\r
143 SQL_FREERESULT($result);
\r
147 $result = SQL_QUERY_ESC("SELECT time, points FROM "._MYSQL_PREFIX."_bonus WHERE id=%d LIMIT 1",
\r
148 array(bigintval($pool)), __FILE__, __LINE__);
\r
149 if (SQL_NUMROWS($result) == 1)
\r
151 list($time, $payment) = SQL_FETCHROW($result);
\r
156 SQL_FREERESULT($result);
\r
161 if (($time == "0") && ($payment >0)) $time = "1";
\r
162 if (($time > 0) && ($payment > 0))
\r
167 $img_code = GEN_RANDOM_CODE($CONFIG['code_length'], $code, $url_uid, $DATA);
\r
177 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_stats SET clicks=clicks+1 WHERE id=%d LIMIT 1",
\r
178 array($url_mid), __FILE__, __LINE__);
\r
180 // Update mediadata as well
\r
181 if (GET_EXT_VERSION("mediadata") >= "0.0.4")
\r
184 MEDIA_UPDATE_ENTRY(array("total_clicks", "normal_clicks"), "add", 1);
\r
189 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_bonus SET clicks=clicks+1 WHERE id=%d LIMIT 1",
\r
190 array($url_bid), __FILE__, __LINE__);
\r
192 // Update mediadata as well
\r
193 if (GET_EXT_VERSION("mediadata") >= "0.0.4")
\r
196 MEDIA_UPDATE_ENTRY(array("total_clicks", "bonus_clicks"), "add", 1);
\r
201 // Export data into constants for the template
\r
202 define('_POINTS_VALUE' , TRANSLATE_COMMA($payment));
\r
203 define('_TEMPLATE_BANNER', LOAD_TEMPLATE("mailid_banner", true));
\r
205 // Only when user extension = v0.1.2: Update mails-confirmed counter
\r
206 if (GET_EXT_VERSION("user") >= "0.1.2")
\r
209 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET mails_confirmed=mails_confirmed+1 WHERE userid=%d LIMIT 1",
\r
210 array($url_uid), __FILE__, __LINE__);
\r
213 // Right code entered?
\r
214 if (bigintval($_POST['gfx_check']) == $img_code)
\r
216 // Right code entered add points and remove entry
\r
217 if (($ref_pay > 0) && ($CONFIG['allow_direct_pay'] == "N"))
\r
219 // Don't add points over the referral system
\r
221 $template = "mailid_points_locked";
\r
225 // Add points over referral system
\r
227 $template = "mailid_points_done";
\r
230 // Count down ref_payout value
\r
231 $result = SQL_QUERY_ESC("UPDATE "._MYSQL_PREFIX."_user_data SET ref_payout=ref_payout-1 WHERE userid=%d AND ref_payout > 0 LIMIT 1",
\r
232 array($url_uid), __FILE__, __LINE__);
\r
235 ADD_POINTS_REFSYSTEM($url_uid, $payment, false, "0", $locked);
\r
237 // Shall I add bonus points for "turbo clickers" ?
\r
238 if ((GET_EXT_VERSION("bonus") >= "0.2.2") && (function_exists('BONUS_ADD_TURBO_POINTS')))
\r
240 // Is an active-rallye running and this is not a notification mail?
\r
241 if (($CONFIG['bonus_active'] == "Y") && ($notify == "N"))
\r
243 // Shall I exclude the webmaster's own userid from the active-rallye?
\r
244 if (((($CONFIG['bonus_uid'] == $url_uid) && ($CONFIG['bonus_include_own'] == "Y")) || ($CONFIG['bonus_uid'] != $url_uid)) && ($CONFIG['def_refid'] != $url_uid))
\r
246 // Add points and remember ranking are done in this function....
\r
247 BONUS_ADD_TURBO_POINTS($DATA, $url_uid, $TYPE);
\r
249 // Set template to mailid_points_done2 which contains a link to the ranking list
\r
250 $template = "mailid_points_done2";
\r
251 if ($locked) $template = "mailid_points_locked2";
\r
252 define('_UID_VALUE' , $url_uid);
\r
253 define('_TYPE_VALUE', $TYPE);
\r
254 define('_DATA_VALUE', TRANSLATE_COMMA($DATA));
\r
259 // Remove link from table
\r
260 $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE id=%d LIMIT 1",
\r
261 array(bigintval($link_id)), __FILE__, __LINE__);
\r
263 // Load total points
\r
264 define('__TOTAL_POINTS', TRANSLATE_COMMA(
\r
265 GET_TOTAL_DATA($url_uid, "user_points", "points") -
\r
266 GET_TOTAL_DATA($url_uid, "user_data", "used_points"))
\r
270 LOAD_TEMPLATE($template);
\r
274 // Wrong image code! So add points to sender's account
\r
275 ADD_POINTS_REFSYSTEM($sender, $payment);
\r
277 // Remove link from table
\r
278 $result = SQL_QUERY_ESC("DELETE LOW_PRIORITY FROM "._MYSQL_PREFIX."_user_links WHERE id=%d LIMIT 1",
\r
279 array(bigintval($link_id)), __FILE__, __LINE__);
\r
282 LOAD_TEMPLATE("mailid_points_failed");
\r
287 GENERATE_IMAGE($img_code);
\r
293 // Export data into constants for the template
\r
294 define('_CODE_VALUE', $code);
\r
295 define('_UID_VALUE' , $url_uid );
\r
296 define('_TYPE_VALUE', $TYPE);
\r
297 define('_DATA_VALUE', $DATA);
\r
298 define('_TEMPLATE_BANNER', LOAD_TEMPLATE("mailid_banner", true));
\r
299 if ($CONFIG['code_length'] > 0)
\r
302 define('_IMAGE_CODE', IMG_CODE($code, $TYPE, $DATA, $url_uid));
\r
303 $templ = "mailid_enter_code";
\r
308 define('__GFX_CODE', $img_code);
\r
309 $templ = "mailid_confirm_buttom";
\r
313 LOAD_TEMPLATE($templ);
\r
318 // Ok, all data is valid and loaded. Finally let's output the timer... :-)
\r
319 // Export data into constants for the template
\r
320 define('_TIME_VALUE', $time);
\r
321 define('_TIM2_VALUE', strlen($time));
\r
322 define('_UID_VALUE' , $url_uid );
\r
323 define('_TYPE_VALUE', $TYPE);
\r
324 define('_DATA_VALUE', $DATA);
\r
325 define('_RAND_VALUE', rand(0, 99999));
\r
326 define('_TEMPLATE_BANNER', LOAD_TEMPLATE("mailid_banner", true));
\r
329 LOAD_TEMPLATE("mailid_timer");
\r
333 else OUTPUT_HTML ("<STRONG class=\"member_failed\">".MAIL_ALREADY_CONFIRMED." (6)</STRONG>");
\r
335 else OUTPUT_HTML ("<STRONG class=\"member_failed\">".MAIL_ALREADY_CONFIRMED." (5)</STRONG>");
\r
337 else OUTPUT_HTML ("<STRONG class=\"member_failed\">".MAIL_ALREADY_CONFIRMED." (4)</STRONG>");
\r
341 SQL_FREERESULT($result);
\r
342 OUTPUT_HTML ("<STRONG class=\"member_failed\">".MAIL_ALREADY_CONFIRMED." (3)</STRONG>");
\r
347 SQL_FREERESULT($result);
\r
348 OUTPUT_HTML ("<STRONG class=\"member_failed\">".MAIL_ALREADY_CONFIRMED." (2)</STRONG>");
\r
353 SQL_FREERESULT($result);
\r
354 OUTPUT_HTML ("<STRONG class=\"member_failed\">".MAIL_ALREADY_CONFIRMED." (1)</STRONG>");
\r
356 if ($mode != "img")
\r
359 require_once(PATH."inc/footer.php");
\r
363 elseif ($mode != "img")
\r
365 // You have to configure first!
\r
366 LOAD_URL("install.php");
\r
369 // Really all done here... ;-)
\r