Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Czy istnieje jakiś dobry licznik w php?, _ŻADEN_ z liczników php z cookie nie dzi
tmh
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 12.04.2006
Skąd: [PL]

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


Witam.

Przetestowałem już chyba z 10 liczników wyszukanych na google, m.in:
http://porady.skryptoteka.pl/article.php?id=2
http://www.antylameriada.net/wlicznik/
i chyba wszystko co znalazłem:
http://www.google.pl/search?hl=pl&q=liczni...btnG=Szukaj&lr=

Problem ma się następująco: ŻADEN z wymienionych wyżej liczników NIE JEST ODPORNY NA ODWIEŻANIE (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ! Za każdym odświerzeniem naliczana jest +1 osoba (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Używam Opery 8.52, ciasteczka mam włączone i ustawione aby wszystkie akceptowano.

Aha, ostatnio znalazłem na forum ten oto licznik:
  1. <?php
  2.  
  3. /**
  4.  * Licznik
  5.  * 
  6.  * @author hwao
  7.  *
  8.  * @param string $sFile - sciezka do pliku bazy
  9.  * @param bool $bUseCookie - czy uzywac cookie (kontrola przed udswiezaniem)
  10.  * @param integer $iTime - czas aktywnosci ciastka
  11.  * 
  12.  * @return bool
  13.  */
  14. function Counter( $sFile, $bUseCookie = false , $iTime = 3600 ) {
  15. if( array_key_exists( '__counter', $_COOKIE ) && $bUseCookie ) {
  16. // Uzytkownik juz by│, wiec jego nie liczymy
  17. return false;
  18. }
  19.  
  20. if( !file_exists( $sFile ) ) {
  21. // baza danych nie istnieje
  22. die( '<h4>Licznik : baza danych pod sciezka '.$sFile.' nie istnieje!' );
  23. }
  24.  
  25. $aCounter = file( $sFile );
  26. $iCount = (int)$aCounter[0];
  27. $iCount++;
  28.  
  29. // Wyslanie Cookie
  30. if( $bUseCookie ) {
  31. setcookie( '__counter', $iCount, time()+$iTime );
  32. }
  33.  
  34.  
  35. /**
  36.  * Zapis licznika
  37.  */
  38.  
  39. $rFo = fopen( $sFile, 'w+' );
  40. flock( $rFo, LOCK_EX );
  41. fwrite( $rFo, $iCount );
  42. flock( $rFo, LOCK_UN );
  43. fclose( $rFo );
  44. return true;
  45.  
  46. }
  47.  
  48. /**
  49.  * Wyglad licznika
  50.  *
  51.  * @param string $sFile
  52.  * @return string
  53.  */
  54. function CounterReader( $sFile ) {
  55. $aCounter = file( $sFile );
  56. $iCount = (int)$aCounter[0];
  57.  
  58. return 'Odwiedzin: '.$iCount.'<br />';
  59. }
  60.  
  61. $sFile = './counter.db';
  62.  
  63.  
  64. Counter( $sFile, false );
  65. echo CounterReader( $sFile );
  66. ?>

Ale również nie działa!
Bardzo proszę o pomoc, to jakaś paranoja że żaden z wyżej wymienionych liczników nie spełnia swojego zadania.

Pozdrawiam.
TMH
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
uroczy
post
Post #2





Grupa: Zarejestrowani
Postów: 90
Pomógł: 0
Dołączył: 3.02.2006
Skąd: Łódź

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


Masz tu liczik oparty o cookies ten kod musi byc wysłany do przegladarki predz wsztstki nawet przed tagami <htm> na samej górze dokumentu


  1. <?php
  2. // En: Begin php Code / Fr: Debut code php
  3. /******************************************************************************\
  4. * Cookies digits Access Counter Version 1.0  *
  5. * Copyright 2000 Frederic TYNDIUK (FTLS)  All Rights Reserved. *
  6. * E-Mail: tyndiuk@ftls.org  Script License: GPL  *
  7. * Created 02/28/2000 Last Modified 02/28/2000 *
  8. * Scripts Archive at: http://www.ftls.org/php/ *
  9. *******************************************************************************/
  10. // Necessary Variables:
  11.  
  12. $COUNT_FILE = "plik.txt";
  13. // En: Absolute path and name to count data file.
  14. // Fr: Chemin absolu (complet) et Nom du fichier compteur.
  15.  
  16. $IMG_DIR_URL = "./digits/";
  17. // En: URL Directory of digits (0.gif ... 9.gif).
  18. // Fr: URL du repertoire des images (0.gif ... 9.gif).
  19.  
  20. $NB_DIGITS = 5;
  21. // En: Minimum number of digits to display (0, to not use 0 left).
  22. // Fr: Nombre minimum de chiffre ŕ afficher (0 pour ne pas avoir de 0 devant).
  23.  
  24. $EXPIRE_DATE = 1800;
  25. // En: Cookies Expiration date (second).
  26. // Fr: Date d'expiration du cookies (en seconde);
  27.  
  28. // End Necessary Variables section
  29. /******************************************************************************/
  30.  
  31. if (file_exists($COUNT_FILE)) {
  32. // En: Open, read, increment, save and close file.
  33. // Fr: Ouvre, lit, incrémente, sauve et ferme le fichier.
  34. $fp = fopen("$COUNT_FILE", "r+");
  35. flock($fp, 1);
  36. $count = fgets($fp, 4096);
  37. if ($_COOKIE['uroczeciaho'] == "") {
  38. $count += 1;
  39. setcookie("uroczeciaho", $count, time()+$EXPIRE_DATE , "/", $SERVER_NAME);
  40. fseek($fp,0);
  41. fputs($fp, $count);
  42. }
  43. flock($fp, 3);
  44. fclose($fp);
  45. }
  46. else {
  47. // En: Display a error message if file does not exist.
  48. // Fr: Affiche un message d'erreur si le fichier n'existe pas.
  49. echo "Can't find file, check '\$file' var...<BR>";
  50. }
  51.  
  52. // En: Display count value
  53. // Fr: Affiche le nombre de visiteur.
  54.  
  55. chop($count);
  56. $nb_digits = max(strlen($count), $NB_DIGITS);
  57. $count = substr("0000000000".$count, -$nb_digits);
  58.  
  59. $digits = preg_split("//", $count);
  60.  
  61. for($i = 0; $i <= $nb_digits; $i++) {
  62. if ($digits[$i] != "") {
  63. $html_result .= "<IMG SRC=\"$IMG_DIR_URL$digits[$i].gif\">";
  64. }
  65. }
  66. // En: End php Code
  67. // Fr: Fin code php
  68.  
  69. ?>

a ten kod wsawiasz gdzie licznik ma sie pojawić (ni zxapomnij zmienic nazwy ciasteczka(pliki graficzne (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) zrobisz sobie sam

  1. Odwiedźin : <?php echo $html_result ?>


Ten post edytował uroczy 17.04.2006, 07:33:39
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: 5.10.2025 - 21:06