Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Licznik kliknięć w jeden link
Forum PHP.pl > Forum > Przedszkole
Forgoot
Witam, tak jak w temacie chciałbym zrobić prosty licznik, który miałby za zadanie liczyć kliknięcia w odnośnik do innej strony. Chodzi mi o to, aby licznik, zliczał kliknięcia w jeden jedyny link/odnośnik....
Przykład:
Kod
Link (tutaj liczba)

Proszę o jakieś wskazówki....
ona_15
Ja też bym chciała coś takiego! Może mi ktoś napisać?
Cienki1980
Link zamiast prowadzić do strony docelowej, niech prowadzi do Twojego skryptu, w którym wykonasz odpowiednie działania do bazy i przekieruje na dany link.

Czyli tworzysz tabele z linkami, gdzie będzie też pole w którym będziesz zapisywał ilość kliknięć. W linku do Twojego skryptu podasz ID rekordu z interesującym Ciebie linkiem. W skrypcie wyciągniesz dane zwiększysz znacznik, zapiszesz do bazy i przekierujesz klikającego na docelową stronę.

Jeżeli nie baza to możesz pobawić się na plikach.
Forgoot
Wolałbym zrobić to na plikach txt, nie na sql'u.
ona_15
Mogłby ktoś napisać taki skrypt? Przepraszam, ale moja wiedza na temat php jest nikła!
Lee
1) Klikasz w link (adres docelowy przechowujesz w np. zmiennej)
2) Przekierowuje do funkcji
3) Funkcja otwiera plik .txt i znajduje odpowiednie miejsce z liczbą kliknięć dla tego linku
4) Znalezioną liczbę pobiera do zmiennej i powiększa o 1
5) Wysyła nowe dane do pliku
6) Zapisuje plik
7) Przekierowuje pod normalny adres
8) Pobierasz z pliku .txt odpowiednie dane
9) Wyświetlasz je obok czegoś tam
Forgoot
Może być coś takiego?

click.php
  1. <?php 
  2. $fp=fopen("click.txt","r"); 
  3. $dane=fread($fp,2000); 
  4. $dane++; 
  5. fclose($fp); 
  6. $fp=fopen("click.txt","w"); 
  7. fwrite($fp,$dane); 
  8. fclose($fp); 
  9. echo "<script language=javascript>window.location='$www'</SCRIPT>"; 
  10. ?>


index.php
  1. <a href="click.php?www=http://www.wp.pl/">Wirtualna Polska</a> [ Odsłon: <? include("click.txt"); ?> ]


//edit
Mam jeszcze jedno pytanie. Chciałbym umieścić mój skrypt na stronie opartym o autorski CMS. Niestety wygląd strony jest zrobiony na zasadzie skórki opartej o html :/ Wiec jak includuje na stronie to pokazuje sie na stronie tylko: Wirtualna Polska [ Odsłon: ]
Może dałoby się wstawić ten licznik za pomocą JavaScript'u? nie zmieniajac przytym php?
ona_15
Mi kod forgoot'a nie działa, jakieś błędy się pokazują !
Forgoot
Prawdopodobnie nie masz utworzonego pliku click.txt! Musisz go utworzyć, aby skrypt działał poprawnie i nie wyskakiwały błędy...
DUDEK18
A napiszcie jak wstawić ten licznik
erafaelmi
Jest taki prosty licznik kliknięć w link
PHP Click Counter
Wpisuje ilość kliknięć do pliku txt. Posiada także panel.
MajareQ
Zakładamy plik licznik.php, plik read.txt oraz katalog "liczniki" (o przywilejach 777) Ponadto na testowej stronie umieszczamy następujący link:
<a href=licznik.php?dn=read.txt>czytaj to</a>
  1. <?
  2. $download = "$dn"; //zmienna zawierająca nazwę pliku
  3. if (file_exists("liczniki/$dn.n")){ //sprawdzamy czy plik istnieje
  4.  
  5. //początek licznika
  6.  
  7. $file=fopen("liczniki/$dn.n", "r");//jeśli tak otwieramy licznik i doliczamy kliknięcie
  8. flock($file, 1);
  9. $cyfra=fgets($file, 100);
  10. flock($file, 3);
  11. fclose($file);
  12. $cyfra++;
  13.  
  14. $file=fopen("liczniki/$dn.n", "w");
  15. flock($file, 2);
  16. fwrite($file, $cyfra);
  17. flock($file, 3);
  18. fclose($file);
  19.  
  20. //koniec licznika
  21.  
  22. header("Location: $download");//wysłanie do przeglądarki informacji o lokalizacji pliku
  23. }
  24. else { //jeśli plik licznika nie istnieje zostanie założony z liczbą 1
  25. $file=fopen("liczniki/$dn.n", "w");
  26. flock($file, 2);
  27. fwrite($file, "1");
  28. flock($file, 3);
  29. fclose($file);
  30.  
  31. header("Location: $download");//wysłanie do przeglądarki informacji o lokalizacji pliku
  32. }
  33. ?>


dane pobierasz w ten sposob: Ten plik pobrano: <? include("liczniki/readme.txt.n"); ?> razy.
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.