| [ Index ] |
|
Code source de Cr@wltr@ck 2.2.1 |
1 <?php 2 //---------------------------------------------------------------------- 3 // CrawlTrack 2.2.1 4 //---------------------------------------------------------------------- 5 // Crawler Tracker for website 6 //---------------------------------------------------------------------- 7 // Author: Jean-Denis Brun 8 //---------------------------------------------------------------------- 9 // Website: www.crawltrack.fr 10 //---------------------------------------------------------------------- 11 // That script is distributed under GNU GPL license 12 //---------------------------------------------------------------------- 13 // file: display-one-page.php 14 //---------------------------------------------------------------------- 15 if (!defined('IN_CRAWLT')) 16 { 17 echo"<h1>Hacking attempt !!!!</h1>"; 18 exit(); 19 } 20 //initialize array 21 $listcrawler=array(); 22 $nbvisits=array(); 23 $lastdate1=array(); 24 $name=array(); 25 $name2=array(); 26 $nbvisits2=array(); 27 $values=array(); 28 $table=array(); 29 30 $crawlencode=urlencode($crawler); 31 $cachename=$navig.$period.$site.$order.$crawlencode.$firstdayweek.$localday.$graphpos.$crawltlang; 32 33 //start the caching if fopen exist 34 if(function_exists('fopen')) 35 { 36 $ch = new cache($cachename); 37 } 38 39 //database connection 40 $connexion = mysql_connect($crawlthost,$crawltuser,$crawltpassword) or die("MySQL connection to database problem"); 41 $selection = mysql_select_db($crawltdb) or die("MySQL database selection problem"); 42 43 //include menu 44 include "include/menumain.php"; 45 include "include/menusite.php"; 46 //order case 47 if($order==0) 48 { 49 //case date 50 $orderby="maxdate DESC"; 51 } 52 elseif($order==2 OR $order==1 OR $order==4) 53 { 54 //case visits 55 $orderby="maxvisites DESC"; 56 } 57 elseif($order==3) 58 { 59 //case crawlers 60 $orderby="crawler_name ASC"; 61 } 62 //date format 63 if($period == 0 OR $period >= 1000) 64 { 65 $datequery= "DATE_FORMAT(MAX(FROM_UNIXTIME(UNIX_TIMESTAMP(date)-($times*3600))), '%H hr %i mn')"; 66 } 67 else 68 { 69 $datequery= "DATE_FORMAT(MAX(FROM_UNIXTIME(UNIX_TIMESTAMP(date)-($times*3600))), '%d/%m/%Y<br>%H hr %i mn')"; 70 } 71 //limite to (value can be modified in the function.php file) 72 if($displayall=='no') 73 { 74 $limitquery='LIMIT '.$rowdisplay; 75 } 76 else 77 { 78 $limitquery=''; 79 } 80 //date for the mysql query 81 if($period>=10) 82 { 83 $datetolookfor=" date >'".sql_quote($daterequest)."' 84 AND date <'".sql_quote($daterequest2)."'"; 85 } 86 else 87 { 88 $datetolookfor=" date >'".sql_quote($daterequest)."'"; 89 }include "include/timecache.php"; 90 91 //requete to count the number of page per crawler and to list the crawler and to count the number of visits per crawler and to have the date of last visit for each crawler 92 $sqlstats = "SELECT crawler_name, COUNT(DISTINCT id_visit) as maxvisites , 93 MAX(FROM_UNIXTIME(UNIX_TIMESTAMP(date)-($times*3600), '%Y-%m-%d %H:%i:%s')) as maxdate, 94 $datequery 95 FROM crawlt_visits, crawlt_crawler, crawlt_pages 96 WHERE crawlt_visits.crawlt_crawler_id_crawler=crawlt_crawler.id_crawler 97 AND crawlt_visits.crawlt_pages_id_page=crawlt_pages.id_page 98 AND $datetolookfor 99 AND crawlt_visits.crawlt_site_id_site='".sql_quote($site)."' 100 AND crawlt_pages.url_page='".sql_quote($crawler)."' 101 GROUP BY crawler_name 102 ORDER BY $orderby 103 $limitquery"; 104 105 $requetestats = mysql_query($sqlstats, $connexion) or die("MySQL query error1"); 106 107 $nbrresult=mysql_num_rows($requetestats); 108 if($nbrresult>=1) 109 { 110 $onlyarchive=0; 111 112 while ($ligne = mysql_fetch_row($requetestats)) 113 { 114 $nbvisits[$ligne[0]]=$ligne[1]; 115 $lastdatedisplay[$ligne[0]]=$ligne[3]; 116 } 117 118 //requete to count the total number of pages viewed ,total number of visits and total number of crawler 119 120 //first we check if that calculation has not already been done 121 if( isset($_SESSION['nbrtotcrawlers-'.$cachename]) && isset($_SESSION['nbrtotvisits-'.$cachename])) 122 { 123 $nbrtotcrawlers = $_SESSION['nbrtotcrawlers-'.$cachename]; 124 $nbrtotvisits = $_SESSION['nbrtotvisits-'.$cachename]; 125 } 126 else 127 { 128 $sqlstats2 = "SELECT COUNT(DISTINCT crawlt_pages_id_page), COUNT(DISTINCT crawler_name), COUNT(DISTINCT id_visit) FROM crawlt_visits, crawlt_crawler, crawlt_pages 129 WHERE crawlt_visits.crawlt_crawler_id_crawler=crawlt_crawler.id_crawler 130 AND crawlt_visits.crawlt_pages_id_page=crawlt_pages.id_page 131 AND $datetolookfor 132 AND crawlt_visits.crawlt_site_id_site='".sql_quote($site)."' 133 AND crawlt_pages.url_page='".sql_quote($crawler)."' 134 "; 135 136 $requetestats2 = mysql_query($sqlstats2, $connexion) or die("MySQL query error2"); 137 $ligne2 = mysql_fetch_row($requetestats2); 138 $nbrtotpages=$ligne2[0]; 139 $nbrtotcrawlers=$ligne2[1]; 140 $nbrtotvisits=$ligne2[2]; 141 142 $_SESSION['nbrtotcrawlers-'.$cachename] = $nbrtotcrawlers; 143 $_SESSION['nbrtotvisits-'.$cachename] = $nbrtotvisits; 144 } 145 146 //check if there is datas in archive 147 $usearchive=0; 148 if($period==3 OR ($period>=200 && $period<300)) 149 { 150 $beginperiod = mktime(0,0,0,$monthbeginserver, 1, $yearbeginserver); 151 152 //data request 153 $sqlarchive="SELECT mois, nbr_visits, pages_view FROM crawlt_archive"; 154 155 $requetearchive = mysql_query($sqlarchive, $connexion) or die("MySQL query error"); 156 157 $nbrresult=mysql_num_rows($requetearchive); 158 if($nbrresult>=1) 159 { 160 while ($ligne = mysql_fetch_row($requetearchive)) 161 { 162 $sitetodisplay = explode('-',$ligne[0]); 163 if($sitetodisplay[1]==$site) 164 { 165 $data=$sitetodisplay[0]; 166 $archivdate=explode('/',$data); 167 $archivperiod =mktime(0,0,0,$archivdate[0], 1, $archivdate[1]); 168 if($archivperiod >=$beginperiod) 169 { 170 $usearchive=1; 171 } 172 173 } 174 } 175 } 176 177 } 178 //query & treatment to prepare the display of the top 5 and group the other in the 'Other' category in the crawler graph 179 $sqlstats = "SELECT crawler_name, COUNT(DISTINCT id_visit) as maxvisites FROM crawlt_visits, crawlt_crawler, crawlt_pages 180 WHERE crawlt_visits.crawlt_crawler_id_crawler=crawlt_crawler.id_crawler 181 AND crawlt_visits.crawlt_pages_id_page=crawlt_pages.id_page 182 AND $datetolookfor 183 AND crawlt_visits.crawlt_site_id_site='".sql_quote($site)."' 184 AND crawlt_pages.url_page='".sql_quote($crawler)."' 185 GROUP BY crawler_name 186 ORDER BY maxvisites DESC 187 LIMIT 5"; 188 189 $requetestats = mysql_query($sqlstats, $connexion) or die("MySQL query error"); 190 191 $totaltop5 = 0; 192 193 while ($ligne = mysql_fetch_row($requetestats)) 194 { 195 if(strlen("$ligne[0]")>15) 196 { 197 $values[substr("$ligne[0]",0,15)."..."]=$ligne[1]; 198 } 199 else 200 { 201 $values[$ligne[0]]=$ligne[1]; 202 } 203 $totaltop5 = $totaltop5 + $ligne[1]; 204 } 205 206 If ($totaltop5 < $nbrtotvisits) 207 { 208 $values[$language['other']] = ($nbrtotvisits -$totaltop5); 209 } 210 //prepare datas to be transfert to graph file 211 $datatransferttograph=addslashes(urlencode(serialize($values))); 212 //insert the values in the graph table 213 $graphname="crawler-".$cachename; 214 215 //check if this graph exit already in the table 216 $sql = "SELECT name FROM crawlt_graph 217 WHERE name= '".sql_quote($graphname)."'"; 218 219 220 $requete = mysql_query($sql, $connexion) or die("MySQL query error"); 221 $nbrresult=mysql_num_rows($requete); 222 if($nbrresult >=1) 223 { 224 $sql2 ="UPDATE crawlt_graph SET graph_values='".sql_quote($datatransferttograph)."' 225 WHERE name= '".sql_quote($graphname)."'"; 226 } 227 else 228 { 229 $sql2 ="INSERT INTO crawlt_graph (name,graph_values) VALUES ( '".sql_quote($graphname)."','".sql_quote($datatransferttograph)."')"; 230 } 231 $requete2 = mysql_query($sql2, $connexion) or die("MySQL query error"); 232 233 //display--------------------------------------------------------------------------------- 234 $crawlerdisplay = crawltcuturl($crawler,'55'); 235 echo"<div class=\"content\">\n"; 236 echo crawltbackforward($crawlerdisplay,$period,$daytodaylocal,$monthtodaylocal,$yeartodaylocal,$daybeginlocal,$monthbeginlocal,$yearbeginlocal,$dayendweek,$monthendweek,$yearendweek,$crawler,$navig,$site,$graphpos); 237 238 //graph 239 echo"<div align='center'onmouseover=\"javascript:montre();\">\n"; 240 echo"<img src=\"./graphs/crawler-graph.php?graphname=$graphname\" alt=\"graph\" width=\"450\" heigth=\"175\"/>\n"; 241 echo"</div>\n"; 242 243 echo"</div>\n"; 244 245 echo"<div class='tableau' align='center'>\n"; 246 echo"<table cellpadding='0px' cellspacing='0' width='300px'>\n"; 247 echo"<tr><th class='tableau1'>\n"; 248 echo"".$language['nbr_tot_visits']."\n"; 249 echo"</th>\n"; 250 echo"<th class='tableau2'>\n"; 251 echo"".$language['nbr_tot_crawlers']."\n"; 252 echo"</th></tr>\n"; 253 if($usearchive==0) 254 { 255 echo"<tr><td class='tableau3'>".numbdisp($nbrtotvisits)."</td>\n"; 256 echo"<td class='tableau5'>".numbdisp($nbrtotcrawlers)."</td></tr>\n"; 257 echo"</table></div><br>\n"; 258 } 259 else 260 { 261 echo"<tr><td class='tableau3'>".numbdisp($nbrtotvisits)."*</td>\n"; 262 echo"<td class='tableau5'>".numbdisp($nbrtotcrawlers)."*</td></tr>\n"; 263 echo"</table>\n"; 264 echo"<p>*".$language['use-archive']."</p></div><br>\n"; 265 } 266 if($period != 5) 267 { 268 //graph 269 echo"<div class='graphvisits'>\n"; 270 //mapgraph 271 include "include/mapgraph.php"; 272 echo"<img src=\"./graphs/visit-graph.php?crawltlang=$crawltlang&period=$period&navig=$navig&graphname=$graphname\" USEMAP=\"#visit\" alt=\"graph\" width=\"700\" heigth=\"300\" border=\"0\"/>\n"; 273 echo"</div>\n"; 274 echo"<div class='imprimgraph'>\n"; 275 echo" <br><br><br><br><br><br></div>\n"; 276 } 277 278 279 //change text if more than x crawlers and display limited (value of x can be change in function.php,,it's displaynumber) 280 if($nbrtotcrawlers>=$rowdisplay && $displayall=='no') 281 { 282 echo"<br><h2>"; 283 printf($language['100_visit_per-crawler'],$rowdisplay); 284 echo"<br>\n"; 285 $crawlencode = urlencode($crawler); 286 echo"<span class=\"smalltext\"><a href=\"index.php?navig=$navig&period=$period&site=$site&crawler=$crawlencode&order=$order&displayall=yes&graphpos=$graphpos\">".$language['show_all']."</a></span></h2>"; 287 } 288 else 289 { 290 echo"<h2>".$language['visit_per-crawler']."</h2>\n"; 291 } 292 293 echo"<div class='tableau' align='center'>\n"; 294 echo"<table cellpadding='0px'; cellspacing='0' width='100%'>\n"; 295 if($order==3) 296 { 297 echo"<tr><th class='tableau1'>\n"; 298 echo"<form action=\"index.php\" method=\"POST\" >\n"; 299 echo "<input type=\"hidden\" name ='order' value=\"3\">\n"; 300 echo "<input type=\"hidden\" name ='period' value=\"$period\">\n"; 301 echo "<input type=\"hidden\" name ='graphpos' value=\"$graphpos\">\n"; 302 echo "<input type=\"hidden\" name ='navig' value=\"$navig\">\n"; 303 echo "<input type=\"hidden\" name ='crawler' value=\"$crawler\">\n"; 304 echo "<input type=\"hidden\" name ='site' value=\"$site\">\n"; 305 echo"<input type='submit' class='orderselect' value='".$language['crawler_name']."'>\n"; 306 echo"</form>\n"; 307 echo"</th>\n"; 308 } 309 else 310 { 311 echo"<tr><th class='tableau1'>\n"; 312 echo"<form action=\"index.php\" method=\"POST\" >\n"; 313 echo "<input type=\"hidden\" name ='order' value=\"3\">\n"; 314 echo "<input type=\"hidden\" name ='period' value=\"$period\">\n"; 315 echo "<input type=\"hidden\" name ='graphpos' value=\"$graphpos\">\n"; 316 echo "<input type=\"hidden\" name ='navig' value=\"$navig\">\n"; 317 echo "<input type=\"hidden\" name ='crawler' value=\"$crawler\">\n"; 318 echo "<input type=\"hidden\" name ='site' value=\"$site\">\n"; 319 echo"<input type='submit' class='order' value='".$language['crawler_name']."'>\n"; 320 echo"</form>\n"; 321 echo"</th>\n"; 322 } 323 if($order==2) 324 { 325 echo"<th class='tableau1'>\n"; 326 echo"<form action=\"index.php\" method=\"POST\" >\n"; 327 echo "<input type=\"hidden\" name ='order' value=\"2\">\n"; 328 echo "<input type=\"hidden\" name ='period' value=\"$period\">\n"; 329 echo "<input type=\"hidden\" name ='graphpos' value=\"$graphpos\">\n"; 330 echo "<input type=\"hidden\" name ='navig' value=\"$navig\">\n"; 331 echo "<input type=\"hidden\" name ='crawler' value=\"$crawler\">\n"; 332 echo "<input type=\"hidden\" name ='site' value=\"$site\">\n"; 333 echo"<input type='submit' class='orderselect' value='".$language['nbr_visits']."'>\n"; 334 echo"</form>\n"; 335 echo"</th>\n"; 336 } 337 else 338 { 339 echo"<th class='tableau1'>\n"; 340 echo"<form action=\"index.php\" method=\"POST\" >\n"; 341 echo "<input type=\"hidden\" name ='order' value=\"2\">\n"; 342 echo "<input type=\"hidden\" name ='period' value=\"$period\">\n"; 343 echo "<input type=\"hidden\" name ='graphpos' value=\"$graphpos\">\n"; 344 echo "<input type=\"hidden\" name ='navig' value=\"$navig\">\n"; 345 echo "<input type=\"hidden\" name ='crawler' value=\"$crawler\">\n"; 346 echo "<input type=\"hidden\" name ='site' value=\"$site\">\n"; 347 echo"<input type='submit' class='order' value='".$language['nbr_visits']."'>\n"; 348 echo"</form>\n"; 349 echo"</th>\n"; 350 } 351 352 if($order==0) 353 { 354 echo"<th class='tableau2'>\n"; 355 echo"<form action=\"index.php\" method=\"POST\" >\n"; 356 echo "<input type=\"hidden\" name ='order' value=\"0\">\n"; 357 echo "<input type=\"hidden\" name ='period' value=\"$period\">\n"; 358 echo "<input type=\"hidden\" name ='graphpos' value=\"$graphpos\">\n"; 359 echo "<input type=\"hidden\" name ='navig' value=\"$navig\">\n"; 360 echo "<input type=\"hidden\" name ='crawler' value=\"$crawler\">\n"; 361 echo "<input type=\"hidden\" name ='site' value=\"$site\">\n"; 362 echo"<input type='submit' class='orderselect' value='".$language['date_visits']."'>\n"; 363 echo"</form>\n"; 364 echo"</th></tr>\n"; 365 } 366 else 367 { 368 echo"<th class='tableau2'>\n"; 369 echo"<form action=\"index.php\" method=\"POST\" >\n"; 370 echo "<input type=\"hidden\" name ='order' value=\"0\">\n"; 371 echo "<input type=\"hidden\" name ='period' value=\"$period\">\n"; 372 echo "<input type=\"hidden\" name ='graphpos' value=\"$graphpos\">\n"; 373 echo "<input type=\"hidden\" name ='navig' value=\"$navig\">\n"; 374 echo "<input type=\"hidden\" name ='crawler' value=\"$crawler\">\n"; 375 echo "<input type=\"hidden\" name ='site' value=\"$site\">\n"; 376 echo"<input type='submit' class='order' value='".$language['date_visits']."'>\n"; 377 echo"</form>\n"; 378 echo"</th></tr>\n"; 379 } 380 381 //counter for alternate color lane 382 $comptligne=2; 383 384 foreach ($nbvisits as $page1 => $value) 385 { 386 $page1display=htmlentities($page1); 387 388 if ($comptligne%2 ==0) 389 { 390 echo"<tr><td class='tableau3'><a href='index.php?navig=2&period=".$period."&site=".$site."&crawler=".$page1."&graphpos=".$graphpos."'>".$page1display."</a></td>\n"; 391 echo"<td class='tableau3'>".numbdisp($nbvisits[$page1])."</td>\n"; 392 echo"<td class='tableau5'>".$lastdatedisplay[$page1]."</td></tr>\n"; 393 } 394 else 395 { 396 echo"<tr><td class='tableau30'><a href='index.php?navig=2&period=".$period."&site=".$site."&crawler=".$page1."&graphpos=".$graphpos."'>".$page1display."</a></td>\n"; 397 echo"<td class='tableau30'>".numbdisp($nbvisits[$page1])."</td>\n"; 398 echo"<td class='tableau50'>".$lastdatedisplay[$page1]."</td></tr>\n"; 399 } 400 $comptligne++; 401 } 402 403 echo"</table>\n"; 404 echo"<br>\n"; 405 406 } 407 else 408 { 409 $sqlstats2 = "SELECT * FROM crawlt_pages 410 WHERE crawlt_pages.url_page='".sql_quote($crawler)."' 411 ORDER BY url_page ASC"; 412 413 $requetestats2 = mysql_query($sqlstats2, $connexion) or die("MySQL query error"); 414 415 //mysql connexion close 416 mysql_close($connexion); 417 418 419 $nbrresult2=mysql_num_rows($requetestats2); 420 if ($nbrresult2==0) 421 { 422 echo"<h1>Hacking attempt !!!!</h1>"; 423 exit(); 424 } 425 426 $crawlerdisplay = crawltcuturl($crawler,'55'); 427 echo"<div class=\"content\">\n"; 428 echo"<div align='center'>\n"; 429 echo crawltbackforward($crawlerdisplay,$period,$daytodaylocal,$monthtodaylocal,$yeartodaylocal,$daybeginlocal,$monthbeginlocal,$yearbeginlocal,$dayendweek,$monthendweek,$yearendweek,$crawler,$navig,$site,$graphpos); 430 431 echo"<h1>".$language['no_visit']."</h1>\n"; 432 echo"<br>\n"; 433 } 434 435 ?>
titre
Description
Corps
titre
Description
Corps
titre
Description
Corps
titre
Corps
| Généré le : Thu Sep 6 14:14:11 2007 | par Balluche grâce à PHPXref 0.7 |