PageRenderTime 60ms CodeModel.GetById 33ms RepoModel.GetById 0ms app.codeStats 0ms

/modules/visitstat/details_robot.php

https://bitbucket.org/meianki/voguersurlavague
PHP | 428 lines | 338 code | 37 blank | 53 comment | 90 complexity | 56aeefe059534dc35a9caa36984ac0d2 MD5 | raw file
Possible License(s): BSD-3-Clause, AGPL-1.0
  1. <?
  2. /*
  3. -------------------------------------------------------------------------
  4. AllMyStats V1.39 - Statistiques de fréquentation visiteurs et robots
  5. -------------------------------------------------------------------------
  6. Copyright (C) 2000 - Cédric TATANGELO (Cedstat)
  7. Copyright (C) 2008 - Herve Seywert
  8. -------------------------------------------------------------------------
  9. Web: http://www.wertronic.com
  10. -------------------------------------------------------------------------
  11. Ce programme est libre, vous pouvez le redistribuer et/ou le modifier
  12. selon les termes de la Licence Publique Génrale GNU publiée par la Free
  13. Software Foundation .
  14. -------------------------------------------------------------------------
  15. */
  16. if($when==""){
  17. $when = date('d/m/Y',strtotime($UTC." hours", strtotime(date("Y-m-d H:i:s"))));
  18. }
  19. //-----------------------------------------------------------------------------
  20. //Mise en en forme ($AllBots) pour preg_match des bot connus (dans la table + bot en général (bot, spider , etc)
  21. $result1=mysql_query("select bot_name, org_name, crawler_url, crawler_info from ".TABLE_CRAWLER."");
  22. $AllBots = '/Bot|Slurp|Scooter|Spider|crawl|';
  23. while($row=mysql_fetch_array($result1)){
  24. $Form_chaine = str_replace('/','\/',$row['bot_name']);
  25. $Form_chaine = str_replace('+','\+',$Form_chaine);
  26. $Form_chaine = str_replace('(','\(',$Form_chaine);
  27. $Form_chaine = str_replace(')','\)',$Form_chaine);
  28. $AllBots .= $Form_chaine.'|';
  29. }
  30. $AllBots = substr($AllBots,0,strlen($AllBots)-1); //delete last "|"
  31. $AllBots .= '/i';
  32. //echo $AllBots;
  33. //------------------------ Mise en tableau de la table bad user agent ---------
  34. unset($Matrice_bad_user_agent);
  35. $Bad_User_Agent=mysql_query("select * from ".TABLE_BAD_USER_AGENT.""); //
  36. while($bad_agents=mysql_fetch_array($Bad_User_Agent)){ // Mise en tableau des bad agents
  37. $Matrice_bad_user_agent[] = array($bad_agents['user_agent'], $bad_agents['info'],$bad_agents['type']);
  38. }
  39. //-----------------------------------------------------------------------------
  40. ?>
  41. <TABLE CELLPADDING=1 CELLSPACING=0 class=TABLEBORDER>
  42. <TBODY>
  43. <TR>
  44. <TD><!-- Data BEGIN -->
  45. <TABLE CELLPADDING=5 CELLSPACING=0 class=TABLEFRAME><!-- header -->
  46. <TBODY>
  47. <TR>
  48. <TH align="center" valign="middle" class=TABLETITLE>
  49. <form name="form1" method="post" action="<? $PHP_SELF; ?>">
  50. <input type="hidden" name="type" value="DetailsRobot">
  51. <input type="hidden" name="when" value="<? echo $when; ?>">
  52. <input class="submit" name="refresh" type="submit" value="<? echo $MSG_REFRESH; ?>" alt="<? echo $MSG_REFRESH; ?>" title="<? echo $MSG_REFRESH; ?>">
  53. </form>
  54. &nbsp;&nbsp;<? echo $MSG_STATISTIQUE_DATE.$when; ?>
  55. </TH>
  56. </TR>
  57. </TBODY></TABLE><!-- Rows END --></TD></TR><!-- no footer --></TBODY></TABLE><!-- Data END --></TD></TR></TBODY></TABLE><BR>
  58. <?
  59. //#########################################################################################
  60. //------------------------- Include tableau details robots ------------------------------
  61. $result=mysql_query("select * from ".TABLE_VISITEUR." where date='$when'");
  62. $nbr_result=mysql_num_rows($result);
  63. $AfficheOS=false;
  64. $AfficheNav=false;
  65. $AfficheRobots=true;
  66. include('tab_os_nav_robots.php');
  67. //########################################################################################
  68. //ROBOTS Visites par plage horaire
  69. //-----------------------------------------------------------------------------------------
  70. for($i=1;$i<=24;$i++){
  71. $hour="heure$i";
  72. $var="v_heure$i";
  73. $$var=0;
  74. $$hour=0;
  75. }
  76. //recup des données
  77. $result=mysql_query("select v.code, v.agent, p.nb_visite, p.heure, p.page from ".TABLE_VISITEUR." v,".TABLE_PAGE." p where v.date like '$when' and v.code=p.code order by p.heure ASC");
  78. // Pour comptabilise les visiteurs simultanés par heure ##
  79. $code_unique_hre1 = array();
  80. $code_unique_hre2 = array();
  81. $code_unique_hre3 = array();
  82. $code_unique_hre4 = array();
  83. $code_unique_hre5 = array();
  84. $code_unique_hre6 = array();
  85. $code_unique_hre7 = array();
  86. $code_unique_hre8 = array();
  87. $code_unique_hre9 = array();
  88. $code_unique_hre10 = array();
  89. $code_unique_hre11 = array();
  90. $code_unique_hre12 = array();
  91. $code_unique_hre13 = array();
  92. $code_unique_hre14 = array();
  93. $code_unique_hre15 = array();
  94. $code_unique_hre16 = array();
  95. $code_unique_hre17 = array();
  96. $code_unique_hre18 = array();
  97. $code_unique_hre19 = array();
  98. $code_unique_hre20 = array();
  99. $code_unique_hre21 = array();
  100. $code_unique_hre22 = array();
  101. $code_unique_hre23 = array();
  102. $code_unique_hre24 = array();
  103. #############################################################
  104. $code_unique = array();
  105. while($row=mysql_fetch_array($result)){
  106. //---------------------------------------
  107. //-- Exclusion des Bad user agent reconnus (non compté comme visiteur) ----
  108. $User_Agent=$row[agent];
  109. $trash=false;
  110. for($nb_bad_user_agent=0;$nb_bad_user_agent<count($Matrice_bad_user_agent);$nb_bad_user_agent++){
  111. if ($Matrice_bad_user_agent[$nb_bad_user_agent][0] == $User_Agent && $Matrice_bad_user_agent[$nb_bad_user_agent][2]=='S') {
  112. $trash=true;
  113. }
  114. }
  115. //---------------------------------------
  116. //Visistes et pages vues par les robots, hors bad user agent
  117. //Note: les barres visiteurs sont incrémenté de 1 pour l'heure de la 1ere visite
  118. // les barres "pages visitées" sont incrémentées par heure
  119. // (si une m?me page est visitée par un m?me visiteur la barre est incrémentée sur l'heure de la 1ere visite) pour eviter de remplir la table si spam
  120. if(preg_match($AllBots, $row[agent]) && $trash==false) {
  121. ################################ Pour comptabilise les visiteurs simultanés par heure ################################################
  122. $heure=$row[heure];
  123. if(($heure>=0)&($heure<1)){ $heure1=$heure1+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre1)) {$v_heure1++; $code_unique_hre1[] = $row[code]; }}
  124. if(($heure>=1)&($heure<2)){ $heure2=$heure2+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre2)) { $v_heure2++; $code_unique_hre2[] = $row[code]; }}
  125. if(($heure>=2)&($heure<3)){ $heure3=$heure3+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre3)) { $v_heure3++; $code_unique_hre3[] = $row[code]; }}
  126. if(($heure>=3)&($heure<4)){ $heure4=$heure4+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre4)) { $v_heure4++; $code_unique_hre4[] = $row[code]; }}
  127. if(($heure>=4)&($heure<5)){ $heure5=$heure5+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre5)) { $v_heure5++; $code_unique_hre5[] = $row[code]; }}
  128. if(($heure>=5)&($heure<6)){ $heure6=$heure6+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre6)) { $v_heure6++; $code_unique_hre6[] = $row[code]; }}
  129. if(($heure>=6)&($heure<7)){ $heure7=$heure7+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre7)) { $v_heure7++; $code_unique_hre7[] = $row[code]; }}
  130. if(($heure>=7)&($heure<8)){ $heure8=$heure8+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre8)) { $v_heure8++; $code_unique_hre8[] = $row[code]; }}
  131. if(($heure>=8)&($heure<9)){ $heure9=$heure9+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre9)) { $v_heure9++; $code_unique_hre9[] = $row[code]; }}
  132. if(($heure>=9)&($heure<10)){ $heure10=$heure10+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre10)) { $v_heure10++; $code_unique_hre10[] = $row[code]; }}
  133. if(($heure>=10)&($heure<11)){ $heure11=$heure11+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre11)) { $v_heure11++; $code_unique_hre11[] = $row[code]; }}
  134. if(($heure>=11)&($heure<12)){ $heure12=$heure12+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre12)) { $v_heure12++; $code_unique_hre12[] = $row[code]; }}
  135. if(($heure>=12)&($heure<13)){ $heure13=$heure13+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre13)) { $v_heure13++; $code_unique_hre13[] = $row[code]; }}
  136. if(($heure>=13)&($heure<14)){ $heure14=$heure14+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre14)) { $v_heure14++; $code_unique_hre14[] = $row[code]; }}
  137. if(($heure>=14)&($heure<15)){ $heure15=$heure15+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre15)) { $v_heure15++; $code_unique_hre15[] = $row[code]; }}
  138. if(($heure>=15)&($heure<16)){ $heure16=$heure16+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre16)) { $v_heure16++; $code_unique_hre16[] = $row[code]; }}
  139. if(($heure>=16)&($heure<17)){ $heure17=$heure17+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre17)) { $v_heure17++; $code_unique_hre17[] = $row[code]; }}
  140. if(($heure>=17)&($heure<18)){ $heure18=$heure18+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre18)) { $v_heure18++; $code_unique_hre18[] = $row[code]; }}
  141. if(($heure>=18)&($heure<19)){ $heure19=$heure19+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre19)) { $v_heure19++; $code_unique_hre19[] = $row[code]; }}
  142. if(($heure>=19)&($heure<20)){ $heure20=$heure20+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre20)) { $v_heure20++; $code_unique_hre20[] = $row[code]; }}
  143. if(($heure>=20)&($heure<21)){ $heure21=$heure21+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre21)) { $v_heure21++; $code_unique_hre21[] = $row[code]; }}
  144. if(($heure>=21)&($heure<22)){ $heure22=$heure22+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre22)) { $v_heure22++; $code_unique_hre22[] = $row[code]; }}
  145. if(($heure>=22)&($heure<23)){ $heure23=$heure23+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre23)) { $v_heure23++; $code_unique_hre23[] = $row[code]; }}
  146. if(($heure>=23)&($heure<24)){ $heure24=$heure24+$row[nb_visite]; if (!in_array($row[code], $code_unique_hre24)) { $v_heure24++; $code_unique_hre24[] = $row[code]; }}
  147. ###########################################################################################################################################
  148. }
  149. }// End while
  150. unset($code_unique);
  151. $max=0;
  152. $i=1;
  153. while($i<=24){
  154. $heure="heure$i";
  155. if($$heure>$max){
  156. $max=$$heure;
  157. }
  158. $i++;
  159. }
  160. ?>
  161. <br>
  162. <TABLE CELLPADDING=1 CELLSPACING=0 class=TABLEBORDER>
  163. <TBODY>
  164. <TR>
  165. <TD><!-- Data BEGIN -->
  166. <TABLE CELLPADDING=5 CELLSPACING=0 class=TABLEFRAME><!-- header -->
  167. <TBODY>
  168. <TR>
  169. <TH class=TABLETITLE><? echo $MSG_ROBOTS_STAT_GRAF_TITRE; ?></TH>
  170. </TR>
  171. <TR>
  172. <TD colSpan=2><!-- Rows BEGIN -->
  173. <TABLE border=0 CELLPADDING=2 CELLSPACING=0 class=TABLEDATA>
  174. <TBODY>
  175. <TR>
  176. <td rowspan="2"><B><SPAN class=PAGESVUES><? echo $MSG_PAGESVISITES; ?></SPAN><BR>&
  177. <SPAN class=VISITES><? echo $MSG_VISITE; ?></SPAN></B>
  178. </TD>
  179. <?
  180. //Pour affichage echelle
  181. $EchyMin = '0';
  182. if($max!=0) {
  183. for($i=1;$i<=24;$i++){
  184. $hour="heure$i";
  185. $indice=@bcdiv($$hour,$max,2); $hauteur=bcmul($indice,120.00,2);
  186. if ($MaxHauteur <= $hauteur) { $MaxHauteur = $hauteur; }
  187. }
  188. } else {// pour ne pas afficher les 0 si $max = 0
  189. $EchyMin = '';
  190. $max = '';
  191. }
  192. echo "<td nowrap=nowrap valign=\"top\">".$max."</td>";
  193. echo "<td rowspan=\"2\" valign=\"bottom\">
  194. <img src=\"images/histo-v.gif\" height=\"".$MaxHauteur."\" width=\"1\" alt=\"\" title=\"\">
  195. </td>";
  196. for($i=1;$i<=24;$i++){
  197. $hour="heure$i";
  198. $v_hour="v_heure$i";
  199. echo "<td rowspan=\"2\" valign=\"bottom\">";
  200. if($max!=0) {
  201. $indice=@bcdiv($$hour,$max,2); $hauteur=bcmul($indice,120.00,2);
  202. }
  203. echo "<img src=\"images/histo-v.gif\" height=\"".$hauteur."\" width=\"8\" alt=\"".$$hour."\" title=\"".$$hour."\"><img src=\"images/histo-vv.gif\" height=\"";
  204. if($max!=0){
  205. $indice=@bcdiv($$v_hour,$max,2); $hauteur=bcmul($indice,120.00,2);
  206. }
  207. echo $hauteur;
  208. echo "\" width=\"8\" alt=\"".$$v_hour."\" title=\"".$$v_hour."\"></td>";
  209. }
  210. ?>
  211. </TR>
  212. <tr>
  213. <td align="right" valign="bottom"><?php echo $EchyMin; ?></td>
  214. </tr>
  215. <TR>
  216. <TD><B><? echo $MSG_GRAF_HEURE; ?></B></TD>
  217. <?
  218. echo "<td align=center>&nbsp;</td><td align=center>&nbsp;</td>"; // Pour echelle
  219. for($i=0;$i<24;$i++){
  220. if ($horloge==12 && $i>12){
  221. $num=$i-12;
  222. } else {
  223. $num=$i;
  224. }
  225. echo "<td align=center>".$num."</td>";
  226. }
  227. if ($horloge==12){
  228. echo "<tr><td></td><td align=center colspan=12>AM</td><td align=center colspan=12>PM</td></tr>";
  229. }
  230. ?>
  231. </TR></TBODY></TABLE><!-- Rows END --></TD></TR><!-- footer -->
  232. <TR>
  233. </TR></TBODY></TABLE><!-- Data END --></TD></TR></TBODY></TABLE><BR>
  234. <?
  235. //##############################################################################################
  236. //--------------------------- Pages vues par les robots --------------------------
  237. $result=mysql_query("select * from ".TABLE_VISITEUR." v, ".TABLE_PAGE." p where v.date like '$when' and v.code=p.code order by page");
  238. $row=mysql_fetch_array($result);
  239. $url_robots=$row[page];
  240. $nb_url_robots=0;
  241. $nb_vis_robots=0;
  242. while($row=mysql_fetch_array($result)){
  243. //---------------------------------------
  244. $User_Agent=$row[agent];
  245. $trash=false;
  246. for($nb_bad_user_agent=0;$nb_bad_user_agent<count($Matrice_bad_user_agent);$nb_bad_user_agent++){
  247. if ($Matrice_bad_user_agent[$nb_bad_user_agent][0] == $User_Agent && $Matrice_bad_user_agent[$nb_bad_user_agent][2]=='S') {
  248. $trash=true;
  249. }
  250. }
  251. //---------------------------------------
  252. if(preg_match($AllBots, $row[agent]) && $trash==false) {
  253. $page_robot=$row[page];
  254. if($url_robots==$page_robot){
  255. $nb_url_robots=$nb_url_robots+$row[nb_visite];
  256. $nb_vis_robots++;
  257. } else {
  258. $nb_robot=$nb_url_robots*100;
  259. if($max_visite!=0){
  260. $pourcent_robot=@bcdiv($nb_robot,$max_visite,2);
  261. }
  262. $page_vue_robots[]= array($url_robots,$nb_vis_robots, $nb_url_robots, $pourcent_robot);
  263. $url_robots=$page_robot;
  264. $nb_url_robots=$row[nb_visite];
  265. $nb_vis_robots=1;
  266. }
  267. }
  268. } // Fin while
  269. //---------------------------------------------------------------------------------------
  270. //------------ Affichage page visités par les robots ------------------------------------
  271. ?>
  272. <TABLE CELLPADDING=1 CELLSPACING=0 class=TABLEBORDER>
  273. <TBODY>
  274. <TR>
  275. <TD><!-- Data BEGIN -->
  276. <TABLE CELLPADDING=5 CELLSPACING=0 class=TABLEFRAME><!-- header -->
  277. <TBODY>
  278. <TR>
  279. <TH class=TABLETITLE><? echo $MSG_ROBOTS_PAGES_VISITES; ?></TH>
  280. </TR>
  281. <TR>
  282. <TD colSpan=2><!-- Rows BEGIN -->
  283. <TABLE border=1 CELLPADDING=2 CELLSPACING=0 class=TABLEDATA>
  284. <TBODY>
  285. <TR>
  286. <TH><? echo $MSG_PAGE; ?></TH>
  287. <TH><? echo $MSG_VISITE; ?></TH>
  288. <TH><? echo $MSG_PAGESVISITES; ?></TH>
  289. <TH><? echo $MSG_PAGES_POURCENTAGE; ?></TH></TR>
  290. <?
  291. //----------------------------------------
  292. $nb_robot=$nb_url_robots*100;
  293. if($max_visite!=0){
  294. $pourcent_robot=@bcdiv($nb_robot,$max_visite,2);
  295. }
  296. $page_vue_robots[]= array($url_robots,$nb_vis_robots, $nb_url_robots, $pourcent_robot);
  297. @usort($page_vue_robots, "CompareValeurs");
  298. $cpt=0;
  299. while ($page_vue_robots[$cpt][0]<>""){
  300. echo "<tr><td>".utf8_decode($page_vue_robots[$cpt][0])."</td><td align=center>".$page_vue_robots[$cpt][1]."</td><td align=center>".$page_vue_robots[$cpt][2]."</td><td align=center>".$page_vue_robots[$cpt][3]."%</td></tr>";
  301. $cpt++;
  302. }
  303. ?>
  304. </TBODY></TABLE><!-- Rows END --></TD></TR><!-- no footer --></TBODY></TABLE><!-- Data END --></TD></TR></TBODY></TABLE><BR>
  305. <?
  306. //------------ Affichage Origine géographique des robots ----------------------
  307. ?>
  308. <TABLE CELLPADDING=1 CELLSPACING=0 class=TABLEBORDER>
  309. <TBODY>
  310. <TR>
  311. <TD><!-- Data BEGIN -->
  312. <TABLE CELLPADDING=5 CELLSPACING=0 class=TABLEFRAME><!-- header -->
  313. <TBODY>
  314. <TR>
  315. <TH class=TABLETITLE><? echo $MSG_ROBOTS_ORG_GEO; ?></TH>
  316. </TR>
  317. <TR>
  318. <TD colSpan=2><!-- Rows BEGIN -->
  319. <TABLE border=1 CELLPADDING=2 CELLSPACING=0 class=TABLEDATA>
  320. <TBODY>
  321. <TR>
  322. <TH><? echo $MSG_DOMAIN; ?></TH>
  323. <TH><? echo $MSG_NB_VISITEURS; ?></TH>
  324. <TH><? echo $MSG_PAGESVISITES; ?></TH>
  325. </TR>
  326. <?
  327. $result=mysql_query("select agent, nb_visite ,domaine from ".TABLE_VISITEUR." where date='$when'");
  328. while($row=mysql_fetch_array($result)){
  329. $Country[] .= $row['domaine'];
  330. }
  331. $Country=@array_unique($Country);
  332. @array_multisort ($Country, SORT_ASC);
  333. //----------------------------------
  334. //Important mise ? 0 des variables
  335. unset($Tab_country_pages_visiteurs);
  336. for($i=0;$i<count($Country);$i++){ //Comment faire autrement
  337. $Nb_visites = 'Nb_'.$Country[$i];
  338. $$Nb_visites = 0;
  339. $Nb_pages_visites = $Country[$i];
  340. $$Nb_pages_visites = 0;
  341. }
  342. //-----------------------------------
  343. $result=mysql_query("select * from ".TABLE_VISITEUR." where date='$when'");
  344. while($row=mysql_fetch_array($result)){
  345. //---------------------------------------
  346. $User_Agent=$row[agent];
  347. $trash=false;
  348. for($nb_bad_user_agent=0;$nb_bad_user_agent<count($Matrice_bad_user_agent);$nb_bad_user_agent++){
  349. if ($Matrice_bad_user_agent[$nb_bad_user_agent][0] == $User_Agent && $Matrice_bad_user_agent[$nb_bad_user_agent][2]=='S') {
  350. $trash=true;
  351. }
  352. }
  353. //---------------------------------------
  354. if(preg_match($AllBots, $row[agent]) && $trash==false) {
  355. for($i=0;$i<count($Country);$i++){
  356. if($row[domaine]==$Country[$i]) {
  357. //echo $row[domaine].'<br>';
  358. $Nb_visites = 'Nb_'.$Country[$i];
  359. $$Nb_visites = $$Nb_visites + 1;
  360. $Nb_pages_visites = $Country[$i];
  361. $$Nb_pages_visites = $$Nb_pages_visites + $row['nb_visite'];
  362. $Tab_country_pages_visiteurs[$i] = array($Country[$i],$$Nb_pages_visites,$$Nb_visites);
  363. }
  364. }
  365. }
  366. }
  367. //--------- Affichage des résultats --------------------------
  368. @usort($Tab_country_pages_visiteurs,"CompareValeurs");
  369. //array_multisort($Tab_country_pages_visiteurs, SORT_ASC);
  370. $indice = @bcdiv(1,($Tab_country_pages_visiteurs[0][1]/300),2); //proportion en rapport au plus grand nb de pages visités
  371. for($i=0;$i<count($Tab_country_pages_visiteurs);$i++){
  372. if ($Tab_country_pages_visiteurs[$i][0]=='') { $Tab_country_pages_visiteurs[$i][0] = $MSG_ORIGIN_UNKNOWN;}
  373. echo "<tr>
  374. <td>
  375. <b>".$Tab_country_pages_visiteurs[$i][0]."</b>
  376. </td>
  377. <td align=\"left\">
  378. <img src=\"images/histo-h.gif\" width=\"";
  379. $hauteur=bcmul($Tab_country_pages_visiteurs[$i][2],$indice,2);
  380. echo $hauteur;
  381. echo"\" height=\"8\">".$Tab_country_pages_visiteurs[$i][2].
  382. "</td>
  383. <td align=\"left\">
  384. <img src=\"images/histo-h.gif\" width=\"";
  385. $hauteur=bcmul($Tab_country_pages_visiteurs[$i][1],$indice,2);
  386. echo $hauteur;
  387. echo"\" height=\"8\">".$Tab_country_pages_visiteurs[$i][1].
  388. "</td>";
  389. }
  390. ?>
  391. </TBODY></TABLE><!-- Rows END --></TD></TR><!-- no footer --></TBODY></TABLE><!-- Data END --></TD></TR></TBODY></TABLE><br>