Complete rewrite of and , wrapper functions added, see bug #101
[mailer.git] / ref.php
1 <?php
2 /************************************************************************
3  * MXChange v0.2.1                                    Start: 10/13/2003 *
4  * ===============                              Last change: 09/04/2004 *
5  *                                                                      *
6  * -------------------------------------------------------------------- *
7  * File              : ref.php                                          *
8  * -------------------------------------------------------------------- *
9  * Short description : Redirection for the referal link                 *
10  * -------------------------------------------------------------------- *
11  * Kurzbeschreibung  : Weiterleitungsscript fuer die Referal-Links      *
12  * -------------------------------------------------------------------- *
13  *                                                                      *
14  * -------------------------------------------------------------------- *
15  * Copyright (c) 2003 - 2008 by Roland Haeder                           *
16  * For more information visit: http://www.mxchange.org                  *
17  *                                                                      *
18  * This program is free software; you can redistribute it and/or modify *
19  * it under the terms of the GNU General Public License as published by *
20  * the Free Software Foundation; either version 2 of the License, or    *
21  * (at your option) any later version.                                  *
22  *                                                                      *
23  * This program is distributed in the hope that it will be useful,      *
24  * but WITHOUT ANY WARRANTY; without even the implied warranty of       *
25  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the        *
26  * GNU General Public License for more details.                         *
27  *                                                                      *
28  * You should have received a copy of the GNU General Public License    *
29  * along with this program; if not, write to the Free Software          *
30  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston,               *
31  * MA  02110-1301  USA                                                  *
32  ************************************************************************/
33
34 // Load security stuff here (Oh, I hope this is not unsecure? Am I paranoia??? ;-) )
35 require("inc/libs/security_functions.php");
36
37 // Init "action" and "what"
38 $GLOBALS['what'] = "";
39 $GLOBALS['action'] = "";
40
41 // Set module
42 $GLOBALS['module'] = "ref";
43 $GLOBALS['output_mode'] = -1;
44
45 // Load the required file(s)
46 require("inc/config.php");
47
48 // Redirect only to registration page when this script is installed
49 if (isBooleanConstantAndTrue('mxchange_installed')) {
50         // Base URL for redirection
51         switch (getConfig('refid_target'))
52         {
53         case "register":
54                 $URL = "modules.php?module=index&amp;what=register&amp;refid=";
55                 break;
56
57         case "index":
58                 $URL = "index.php?refid=";
59                 break;
60         }
61
62         // Get referal ID from ref or refid variable
63         if (REQUEST_ISSET_GET(('ref')))        $ref = secureString(REQUEST_GET('ref'));
64          elseif (REQUEST_ISSET_GET(('refid'))) $ref = secureString(REQUEST_GET('refid'));
65
66         if (!empty($ref)) {
67                 // Test if nickname or numeric id
68                 if ($ref != "".($ref + 0)."") {
69                         if (EXT_IS_ACTIVE("nickname")) {
70                                 // Nickname in URL, so load the ID
71                                 $result = SQL_QUERY_ESC("SELECT userid FROM `{!_MYSQL_PREFIX!}_user_data` WHERE nickname='%s' LIMIT 1",
72                                         array($ref), __FILE__, __LINE__);
73
74                                 // Load userid
75                                 list($ref) = SQL_FETCHROW($result);
76
77                                 // Free result
78                                 SQL_FREERESULT($result);
79                         } else {
80                                 // Invalid request!
81                                 $ref = 0;
82                         }
83                 } // END - if
84
85                 // Also edit this 0 !
86                 if (empty($ref)) $ref = 0;
87
88                 // Update session
89                 set_session('refid', $ref);
90
91                 // We have an refid here. So we simply add it
92                 $URL .= bigintval($ref);
93
94                 // Is the refid valid?
95                 if ($ref > 0) {
96                         // Update ref counter
97                         SQL_QUERY_ESC("UPDATE `{!_MYSQL_PREFIX!}_user_data` SET ref_clicks=ref_clicks+1 WHERE userid=%s LIMIT 1",
98                                 array(bigintval($ref)), __FILE__, __LINE__);
99                 } // END - if
100         } else {
101                 // No refid and we add our refid (don't forget to set $def_refid!)
102                 $URL = "index.php";
103         }
104
105         // Load the URL
106         LOAD_URL($URL);
107 } else {
108         // You have to install first!
109         LOAD_URL("install.php");
110 }
111
112 // Really all done here... ;-)
113 ?>