Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Poprawa licznika odwiedzin
Forum PHP.pl > Forum > Przedszkole
Tomy666
Witam

Mam na stronce skrypt licznik odwiedzin z wczoraj , dziś , z całego tygodnia.
Jednak chyba jest coś z nim nie tak , gdyż nie jest odporny na odświeżanie .
Po każdym odświeżeniu stronki przeze mnie dodaje + 10 .

Może ktoś wypatrzy błąd , będę wdzięczny .

  1. <?php
  2. /******************************************\
  3.   Pro Statistics
  4.   Developed by DLEVIET.COM
  5. \******************************************/
  6. if(!defined('DATALIFEENGINE'))
  7. {
  8. die("Hacking attempt!");
  9. }
  10.  
  11. // ip-protection in seconds
  12. $counter_expire = 600;
  13.  
  14. // datebase host
  15. $counter_host = "" . DBHOST ."";
  16. $counter_database = "" . DBNAME ."";
  17. $counter_user = "" . DBUSER ."";
  18. $counter_password = "" . DBPASS ."";
  19.  
  20. $counter_connected = true;
  21.  
  22. // connect to database
  23. $link = @mysql_connect($counter_host, $counter_user, $counter_password);
  24. if (!$link)
  25. {
  26. // can't connect to database
  27. $counter_connected = false;
  28. echo "Error: " . mysql_error();
  29. }
  30. else
  31. {
  32. // select database
  33. $db_selected = @mysql_select_db($counter_database, $link);
  34. if (!$db_selected)
  35. {
  36. // can't select database
  37. $counter_connected = false;
  38. echo "Error: " . mysql_error();
  39. }
  40. }
  41.  
  42. if ($counter_connected == true)
  43. {
  44. $ignore = false;
  45.  
  46. // get counter information
  47. $sql = "select * from " . PREFIX . "_prostats_values";
  48. $res = mysql_query($sql);
  49.  
  50. // fill when empty
  51. if (mysql_num_rows($res) == 0)
  52. {
  53. $sql = "INSERT INTO `" . PREFIX . "_prostats_values` (`id`, `day_id`, `day_value`, `week_id`, `week_value`, `month_id`, `month_value`, `year_id`, `year_value`, `all_value`, `record_date`, `record_value`) VALUES ('1', '" . date("z") . "', '1', '" . date("W") . "', '1', '" . date("n") . "', '1', '" . date("Y") . "', '1', '1', NOW(), '1')";
  54. mysql_query($sql);
  55.  
  56. $sql = "select * from " . PREFIX . "_prostats_values";
  57. $res = mysql_query($sql);
  58.  
  59. $ignore = true;
  60. }
  61. $row = mysql_fetch_assoc($res);
  62.  
  63. $day_id = $row['day_id'];
  64. $day_value = $row['day_value'];
  65. $week_id = $row['week_id'];
  66. $week_value = $row['week_value'];
  67. $month_id = $row['month_id'];
  68. $month_value = $row['month_value'];
  69. $year_id = $row['year_id'];
  70. $year_value = $row['year_value'];
  71. $all_value = $row['all_value'];
  72. $record_date = $row['record_date'];
  73. $record_value = $row['record_value'];
  74.  
  75. $counter_agent = (isset($_SERVER['HTTP_USER_AGENT'])) ? addslashes(trim($_SERVER['HTTP_USER_AGENT'])) : "";
  76. $counter_time = time();
  77. $counter_ip = trim(addslashes($_SERVER['REMOTE_ADDR']));
  78.  
  79. // ignorore some bots
  80. if (substr_count($counter_agent, "bot") > 0)
  81. $ignore = true;
  82.  
  83. // add counter
  84. if ($ignore == false)
  85. {
  86. // day
  87. if ($day_id == date("z"))
  88. {
  89. $day_value++;
  90. }
  91. else
  92. {
  93. $day_value = 1;
  94. $day_id = date("z");
  95. }
  96.  
  97. // week
  98. if ($week_id == date("W"))
  99. {
  100. $week_value++;
  101. }
  102. else
  103. {
  104. $week_value = 1;
  105. $week_id = date("W");
  106. }
  107.  
  108. // month
  109. if ($month_id == date("n"))
  110. {
  111. $month_value++;
  112. }
  113. else
  114. {
  115. $month_value = 1;
  116. $month_id = date("n");
  117. }
  118.  
  119. // year
  120. if ($year_id == date("Y"))
  121. {
  122. $year_value++;
  123. }
  124. else
  125. {
  126. $year_value = 1;
  127. $year_id = date("Y");
  128. }
  129.  
  130. // all
  131. $all_value++;
  132.  
  133. // neuer record?
  134. if ($day_value > $record_value)
  135. {
  136. $record_value = $day_value;
  137. $record_date = date("Y-m-d H:i:s");
  138. }
  139.  
  140. // speichern und aufräumen
  141. $sql = "update " . PREFIX . "_prostats_values set day_id = '$day_id', day_value = '$day_value', week_id = '$week_id', week_value = '$week_value', month_id = '$month_id', month_value = '$month_value', year_id = '$year_id', year_value = '$year_value', all_value = '$all_value', record_date = '$record_date', record_value = '$record_value' where id = 1";
  142. mysql_query($sql);
  143. }
  144. }
  145.  
  146. $recdate = date("d.m.Y", strtotime($record_date));
  147.  
  148. $prostats = "<fieldset class='fieldset'><legend style='color: rgb(255, 0, 0);'>Site Visits</legend>
  149. <div align='left'>Today Visits: <B>$day_value</B> <BR>
  150. This Week Visits: <B>$week_value</B> <BR>
  151. This Month Visits: <B>$month_value</B> <BR>
  152. This Year Visits: <B>$year_value</B> <BR>
  153. All Visits: <B>$all_value </B><BR>
  154. Record: <B>$record_value</B> In $recdate
  155. </div></fieldset>";
  156.  
  157. echo $prostats;
  158. ?>
nzbwn
sprawdzaj moze to za pomocą cookie?
  1. <?php setcookie("licznik", "1", time()+3600); ?>

i później to sprawdzaj
Tomy666
Cytat(nzbwn @ 17.12.2011, 20:06:01 ) *
sprawdzaj moze to za pomocą cookie?
  1. <?php setcookie("licznik", "1", time()+3600); ?>

i później to sprawdzaj



Kolego ten kod co zapodałeś , gdzie ja ma go dodać w tym kodzie licznika ?
Coś usunąć ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.