1 |
<?php |
2 |
|
3 |
###################################################################### |
4 |
# PHP-NUKE: Web Portal System |
5 |
# =========================== |
6 |
# |
7 |
# Copyright (c) 2000 by Francisco Burzi (fburzi@ncc.org.ve) |
8 |
# http://www.ncc.org.ve/php-nuke.php |
9 |
# |
10 |
# This modules is to have a complete Banner Ad solution integrated |
11 |
# |
12 |
# This program is free software. You can redistribute it and/or modify |
13 |
# it under the terms of the GNU General Public License as published by |
14 |
# the Free Software Foundation; either version 2 of the License. |
15 |
###################################################################### |
16 |
|
17 |
include("config.php"); |
18 |
if (eregi("banners.php",$PHP_SELF)) include("mainfile.php"); |
19 |
dbconnect(); |
20 |
|
21 |
/********************************************/ |
22 |
/* Function to display banners in all pages */ |
23 |
/********************************************/ |
24 |
|
25 |
function viewbanner() { |
26 |
$bresult = mysql_query("select * from banner"); |
27 |
$numrows = mysql_num_rows($bresult); |
28 |
|
29 |
// Get a random banner if exist any. |
30 |
// More efficient random stuff, thanks to Cristian Arroyo from http://www.planetalinux.com.ar |
31 |
|
32 |
if ($numrows>1) { |
33 |
$numrows = $numrows-1; |
34 |
mt_srand((double)microtime()*1000000); |
35 |
$bannum = mt_rand(0, $numrows); |
36 |
} else { |
37 |
$bannum = 0; |
38 |
} |
39 |
$bresult2 = mysql_query("select bid, imageurl from banner limit $bannum,1"); |
40 |
list($bid, $imageurl) = mysql_fetch_row($bresult2); |
41 |
|
42 |
global $myIP; |
43 |
$myhost = getenv("REMOTE_ADDR"); |
44 |
if($myIP==$myhost) { |
45 |
} else { |
46 |
mysql_query("update banner set impmade=impmade+1 where bid=$bid"); |
47 |
} |
48 |
if($numrows>0) { |
49 |
$aborrar = mysql_query("select cid, imptotal, impmade, clicks, date from banner where bid=$bid"); |
50 |
list($cid, $imptotal, $impmade, $clicks, $date) = mysql_fetch_row($aborrar); |
51 |
|
52 |
// Check if this impression is the last one and print the banner |
53 |
|
54 |
if($imptotal==$impmade) { |
55 |
mysql_query("insert into bannerfinish values (NULL, '$cid', '$impmade', '$clicks', '$date', now())"); |
56 |
mysql_query("delete from banner where bid=$bid"); |
57 |
} |
58 |
echo"<center><a href=banners.php?op=click&bid=$bid><img src=$imageurl border=1></a></center><br>"; |
59 |
} |
60 |
mysql_free_result($bresult); |
61 |
mysql_free_result($bresult2); |
62 |
mysql_free_result($aborrar); |
63 |
|
64 |
} |
65 |
|
66 |
/********************************************/ |
67 |
/* Function to redirect the clicks to the */ |
68 |
/* correct url and add 1 click */ |
69 |
/********************************************/ |
70 |
|
71 |
function clickbanner($bid) { |
72 |
$bresult = mysql_query("select clickurl from banner where bid=$bid"); |
73 |
list($clickurl) = mysql_fetch_row($bresult); |
74 |
mysql_query("update banner set clicks=clicks+1 where bid=$bid"); |
75 |
mysql_free_result($bresult); |
76 |
Header("Location: $clickurl"); |
77 |
} |
78 |
|
79 |
/********************************************/ |
80 |
/* Function to let your client login to see */ |
81 |
/* the stats */ |
82 |
/********************************************/ |
83 |
|
84 |
function clientlogin() { |
85 |
echo" |
86 |
<html> |
87 |
<body bgcolor=AA9985 text=000000 link=006666 vlink=006666> |
88 |
<center><br><br><br><br> |
89 |
<table width=200 cellpadding=0 cellspacing=0 border=0 bgcolor=000000><tr><td> |
90 |
<table width=100% cellpadding=5 cellspacing=1 border=0 bgcolor=FFFFFF><tr><td colspan=1 bgcolor=eecfa1> |
91 |
<font face=Lucida,Verdana,Arial,Helvetica> |
92 |
<center><b>Advertising Statistics</b> |
93 |
</td></tr><tr><td bgcolor=fffacd> |
94 |
<font face=Lucida,Verdana,Arial,Helvetica> |
95 |
<form action=banners.php method=post> |
96 |
Login: <input type=text name=login size=12 maxlength=10><br> |
97 |
Password: <input type=password name=pass size=12 maxlength=10><br> |
98 |
<input type=hidden name=op value=Ok> |
99 |
<input type=submit value=Login></td></tr><tr><td bgcolor=eecfa1> |
100 |
<font face=Lucida,Verdana,Arial,Helvetica size=2> |
101 |
<center>Please type your client information</center> |
102 |
</td></tr></table></td></tr></table></form></font> |
103 |
</body></html>"; |
104 |
} |
105 |
|
106 |
/*********************************************/ |
107 |
/* Function to display the banners stats for */ |
108 |
/* each client */ |
109 |
/*********************************************/ |
110 |
|
111 |
function bannerstats($login, $pass) { |
112 |
include("config.php"); |
113 |
$result = mysql_query("select cid, name, passwd from bannerclient where login='$login'"); |
114 |
list($cid, $name, $passwd) = mysql_fetch_row($result); |
115 |
|
116 |
if($login=="" AND $pass=="" OR $pass=="") { |
117 |
echo "<center><br>Login Incorrect!!!<br><br><a href=javascript:history.go(-1)>Back to Login Screen</a></center>"; |
118 |
} else { |
119 |
|
120 |
if ($pass==$passwd) { |
121 |
|
122 |
echo" |
123 |
<html> |
124 |
<body bgcolor=AA9985 text=000000 link=006666 vlink=006666> |
125 |
<center> |
126 |
<table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=000000><tr><td> |
127 |
<table border=0 width=100% cellpadding=8 cellspacing=1 bgcolor=fffacd><tr><td> |
128 |
<font face=Lucida,Verdana,Arial,Helvetica size=3> |
129 |
<center><b>Current Active Banners for $name</b></center><br> |
130 |
<font size=3> |
131 |
<table width=100% border=0><tr> |
132 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>ID</b></td> |
133 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>Imp. Made</b></td> |
134 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>Imp. Total</b></td> |
135 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>Imp. Left</b></td> |
136 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>Clicks</b></td> |
137 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>% Clicks</b></td> |
138 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>Functions</b></td><tr>"; |
139 |
$result = mysql_query("select bid, imptotal, impmade, clicks, date from banner where cid='$cid'"); |
140 |
while(list($bid, $imptotal, $impmade, $clicks, $date) = mysql_fetch_row($result)) { |
141 |
if($impmade==0) { |
142 |
$percent = 0; |
143 |
} else { |
144 |
$percent = substr(100 * $clicks / $impmade, 0, 5); |
145 |
} |
146 |
|
147 |
if($imptotal==0) { |
148 |
$left = "Unlimited"; |
149 |
} else { |
150 |
$left = $imptotal-$impmade; |
151 |
} |
152 |
echo " |
153 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White>$bid</td> |
154 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White>$impmade</td> |
155 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White>$imptotal</td> |
156 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White>$left</td> |
157 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White>$clicks</td> |
158 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White>$percent%</td> |
159 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White><a href=banners.php?op=EmailStats&login=$login&cid=$cid&bid=$bid>E-mail Stats</a></td><tr>"; |
160 |
} |
161 |
echo " |
162 |
</td></tr></table> |
163 |
<center><br><br> |
164 |
Following are your running Banners in $sitename<br><br>"; |
165 |
|
166 |
$result = mysql_query("select bid, imageurl, clickurl from banner where cid='$cid'"); |
167 |
while(list($bid, $imageurl, $clickurl) = mysql_fetch_row($result)) { |
168 |
|
169 |
$numrows = mysql_num_rows($result); |
170 |
if ($numrows>1) { |
171 |
echo "<hr noshade width=80%><br>"; |
172 |
} |
173 |
|
174 |
echo "<img src=$imageurl border=1><br> |
175 |
<font size=2>Benner ID: $bid<br> |
176 |
Send <a href=banners.php?op=EmailStats&login=$login&cid=$cid&bid=$bid>E-Mail Stats</a> for this Banner<br> |
177 |
This Banners points to <a href=$clickurl>this URL</a><br> |
178 |
<form action=banners.php method=submit> |
179 |
Change URL: <input type=text name=url size=50 maxlength=200 value=$clickurl> |
180 |
<input type=hidden name=login value=$login> |
181 |
<input type=hidden name=bid value=$bid> |
182 |
<input type=hidden name=pass value=$pass> |
183 |
<input type=hidden name=cid value=$cid> |
184 |
<input type=submit name=op value=Change></form>"; |
185 |
} |
186 |
echo " |
187 |
</td></tr></table></td></tr></table> |
188 |
</font>"; |
189 |
|
190 |
|
191 |
// Finnished Banners |
192 |
|
193 |
echo " |
194 |
<center><br> |
195 |
<table border=0 width=100% cellpadding=0 cellspacing=0 bgcolor=000000><tr><td> |
196 |
<table border=0 width=100% cellpadding=8 cellspacing=1 bgcolor=fffacd><tr><td> |
197 |
<font face=Lucida,Verdana,Arial,Helvetica size=3> |
198 |
<center><b>Banners Finished for $name</b></center><br> |
199 |
<font size=3> |
200 |
<table width=100% border=0><tr> |
201 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>ID</b></td> |
202 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>Impressions</b></td> |
203 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>Clicks</b></td> |
204 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>% Clicks</b></td> |
205 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>Start Date</b></td> |
206 |
<td bgcolor=887765><font face=Arial,Helvetica color=Black><center><b>End Date</b></td><tr>"; |
207 |
$result = mysql_query("select bid, impressions, clicks, datestart, dateend from bannerfinish where cid='$cid'"); |
208 |
while(list($bid, $impressions, $clicks, $datestart, $dateend) = mysql_fetch_row($result)) { |
209 |
$percent = substr(100 * $clicks / $impressions, 0, 5); |
210 |
echo " |
211 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White>$bid</td> |
212 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White>$impressions</td> |
213 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White>$clicks</td> |
214 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White>$percent%</td> |
215 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White>$datestart</td> |
216 |
<td bgcolor=AA9985 align=center><font face=Arial,Helvetica color=White>$dateend</td><tr>"; |
217 |
} |
218 |
echo " |
219 |
</td></tr></table></td></tr></table></td></tr></table> |
220 |
<br><a href=http://linuxpreview.org><img src=images/powered/phpnuke.gif border=0 Alt=\"This site Powered by PHP-Nuke\"></a> |
221 |
</body></html>"; |
222 |
|
223 |
} else { |
224 |
echo "<center><br>Login Incorrect!!!<br><br><a href=javascript:history.go(-1)>Back to Login Screen</a></center>"; |
225 |
} |
226 |
} |
227 |
|
228 |
} |
229 |
|
230 |
/*********************************************/ |
231 |
/* Function to let the client E-mail his */ |
232 |
/* banner Stats */ |
233 |
/*********************************************/ |
234 |
|
235 |
function EmailStats($login, $cid, $bid, $pass) { |
236 |
include("config.php"); |
237 |
$result2 = mysql_query("select name, email from bannerclient where cid='$cid'"); |
238 |
list($name, $email) = mysql_fetch_row($result2); |
239 |
if ($email=="") { |
240 |
echo " |
241 |
<html> |
242 |
<body bgcolor=AA9985 text=000000 link=006666 vlink=006666> |
243 |
<font face=Lucida,Verdana,Arial,Helvetica> |
244 |
<center><br><br><br> |
245 |
<b>Statistics for Banner No. $bid can't be send because<br> |
246 |
there isn't an email associated with client $name<br> |
247 |
Please contact the Administrator<br><br></b> |
248 |
<a href=javascript:history.go(-1)>Back to Banners Stats</a> |
249 |
"; |
250 |
} else { |
251 |
$result = mysql_query("select bid, imptotal, impmade, clicks, imageurl, clickurl, date from banner where bid='$bid' and cid='$cid'"); |
252 |
list($bid, $imptotal, $impmade, $clicks, $imageurl, $clickurl, $date) = mysql_fetch_row($result); |
253 |
if($impmade==0) { |
254 |
$percent = 0; |
255 |
} else { |
256 |
$percent = substr(100 * $clicks / $impmade, 0, 5); |
257 |
} |
258 |
|
259 |
if($imptotal==0) { |
260 |
$left = "Unlimited"; |
261 |
$imptotal = "Unlimited"; |
262 |
} else { |
263 |
$left = $imptotal-$impmade; |
264 |
} |
265 |
$fecha = date("F jS Y, h:iA."); |
266 |
$subject = "Your Banner Statistics at $sitename"; |
267 |
$message = "Following are the complete stats for your advertising investment at $sitename:\n\n\nClient Name: $name\nBanner ID: $bid\nBanner Image: $imageurl\nBanner URL: $clickurl\n\nImpressions Purchased: $imptotal\nImpressions Made: $impmade\nImpressions Left: $left\nClicks Received: $clicks\nClicks Percent: $percent%\n\n\nReport Generated on: $fecha"; |
268 |
$from = "$sitename"; |
269 |
mail($email, $subject, $message, "From: $from\nX-Mailer: PHP/" . phpversion()); |
270 |
|
271 |
echo " |
272 |
<html> |
273 |
<body bgcolor=AA9985 text=000000 link=006666 vlink=006666> |
274 |
<font face=Lucida,Verdana,Arial,Helvetica> |
275 |
<center><br><br><br> |
276 |
<b>Statistics for Banner No. $bid has been send to<br> |
277 |
<i>$email</i> of $name<br><br></b> |
278 |
<a href=javascript:history.go(-1)>Back to Banners Stats</a> |
279 |
"; |
280 |
} |
281 |
} |
282 |
|
283 |
/*********************************************/ |
284 |
/* Function to let the client to change the */ |
285 |
/* url for his banner */ |
286 |
/*********************************************/ |
287 |
|
288 |
function change_banner_url_by_client($login, $pass, $cid, $bid, $url) { |
289 |
$result = mysql_query("select passwd from bannerclient where cid='$cid'"); |
290 |
list($passwd) = mysql_fetch_row($result); |
291 |
if ($pass==$passwd) { |
292 |
mysql_query("update banner set clickurl='$url' where bid='$bid'"); |
293 |
} |
294 |
echo "<center><br>You changed the URL<br><br><a href=javascript:history.go(-1)>Back to Stats Page</a></center>"; |
295 |
} |
296 |
|
297 |
switch($op) { |
298 |
|
299 |
case "click": |
300 |
clickbanner($bid); |
301 |
break; |
302 |
|
303 |
case "login": |
304 |
clientlogin(); |
305 |
break; |
306 |
|
307 |
case "Ok": |
308 |
bannerstats($login, $pass); |
309 |
break; |
310 |
|
311 |
case "Change": |
312 |
change_banner_url_by_client($login, $pass, $cid, $bid, $url); |
313 |
break; |
314 |
|
315 |
case "EmailStats": |
316 |
EmailStats($login, $cid, $bid, $pass); |
317 |
break; |
318 |
|
319 |
default: |
320 |
viewbanner(); |
321 |
break; |
322 |
} |
323 |
|
324 |
|
325 |
|
326 |
|
327 |
|
328 |
|
329 |
|
330 |
|
331 |
|
332 |
|
333 |
|