Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] licznik odwiedzin - dobrze napisany?
dwwa
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 14.09.2011

Ostrzeżenie: (0%)
-----


napisałem prosty licznik odwiedzin oparty o bazę danych mysql, ale nie wiem czy to optymalne rozwiązanie i dobrze napisane... chodzi mi o licznik unikalnych odwiedzin. Na razie sprawdzam tylko ip, ale zaraz dopiszę jeszcze sprawdzanie ciastka.
  1. // counter
  2. function counter() {
  3. $ip = $_SERVER['REMOTE_ADDR'];
  4. $check_ip_query = mysql_query("SELECT `ip` FROM `counter` WHERE `ip` = '$ip'");
  5. if (mysql_num_rows($check_ip_query) == 0) {
  6. mysql_query("INSERT INTO `counter` VALUES (null, '$ip')");
  7. }
  8. $counter = mysql_num_rows(mysql_query("SELECT `id` FROM `counter`"));
  9. return $counter;
  10. }

dobrze to jest napisane? działać działa
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dwwa
post
Post #2





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 14.09.2011

Ostrzeżenie: (0%)
-----


ale chodzi mi o samo rozwiązanie tego licznika, że oparty on jest o bazę

robię statystyki dla strony, dopisałem ilość unikalnych wizyt dziennie, tygodniowo i miesięcznie, co o tym sądzicie?
  1. function counter($value) {
  2.  
  3. switch($value) {
  4. case 'all':
  5. $counter = mysql_num_rows(mysql_query("SELECT `id` FROM `counter`"));
  6. break;
  7. case 'day':
  8. $day = date('Y-m-d H:i:s', time()-1440*60); // 24 hours
  9. $counter = mysql_num_rows(mysql_query("SELECT * FROM `counter` WHERE `date` > '$day'"));
  10. break;
  11. case 'week':
  12. $week = date('Y-m-d H:i:s', time()-10080*60); // 7 days
  13. $counter = mysql_num_rows(mysql_query("SELECT * FROM `counter` WHERE `date` > '$week'"));
  14. break;
  15. case 'mounth':
  16. $mounth = date('Y-m-d H:i:s', time()-43200*60); // 1 mounth
  17. $counter = mysql_num_rows(mysql_query("SELECT * FROM `counter` WHERE `date` > '$mounth'"));
  18. break;
  19. }
  20.  
  21. $ip = $_SERVER['REMOTE_ADDR'];
  22. $date = date('Y-m-d H:i:s', time());
  23. $check_ip_query = mysql_query("SELECT `ip` FROM `counter` WHERE `ip` = '$ip'");
  24. if (mysql_num_rows($check_ip_query) == 0) {
  25. mysql_query("INSERT INTO `counter` VALUES (null, '$ip', '$date')");
  26. }
  27. return $counter;
  28. }

wyświetlam tak:
  1. echo counter('value');


Ten post edytował dwwa 11.10.2011, 12:19:47
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 27.09.2025 - 09:50