![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zablokowani Postów: 199 Pomógł: 0 Dołączył: 4.05.2003 Skąd: Tarnowskie Góry Ostrzeżenie: (10%) ![]() ![]() |
napisalem sobie prosty licznik odwiedzin ktory wyglada tak:
[php:1:538d098489]<?php //licznik oparty na plikach tekstowych ![]() if (!(file_exists("licznik.txt"))) { $plik = fopen ("licznik.txt", "w+"); fputs ($plik, "-"); fclose ($plik); } $ile = filesize ("licznik.txt"); $plik = fopen ("licznik.txt", "a"); flock ($plik, 2); fputs ($plik, "-"); flock ($plik, 3); fclose ($plik); print "Licznik odwiedzin: <b>$ile</B><br><i>(od 20.07.2003)</I>"; ?> [/php:1:538d098489] jakzrobic aby licznik ten nie dzialal na odswierzanie -------------------- <b>Aktualnie:</b> Blog version 1.0 (www.blog.sej.pl) [b] lllllllll 100%
[b]Dodatki: lll |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 225 Pomógł: 18 Dołączył: 30.06.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
użyj cookies
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 273 Pomógł: 0 Dołączył: 5.05.2003 Skąd: Mazury Ostrzeżenie: (0%) ![]() ![]() |
Stwórz oddzielny plik, licznikip.txt i zapisuj do niego datę oraz IP. Następnie przy każdym odświerzaniu sprawdzaj czy już dzisiaj przypadkiem nie było takiego IP.
np.: plik licznikip.txt Kod 64534563 // znacznik czasu unixa
246.54.233.5 246.54.654.87 dalej... [php:1:375e2cef56]<?php $data = file("licznikip.txt"); if ($data[0] > time()+(60*60*24)) { fopen("licznikip.txt", "w"); } $plik = implode(" " file("licznikip.txt")); if ( eregi("$ip", $plik)) { //tutaj kod licznika jeżeli danego ip nie było } else { echo "sory ale już dzisiaj tu byłeś..."; } ?>[/php:1:375e2cef56] Myślę że to powinno działać, chociaż nie testowałem... ![]() -------------------- <<< EB >>>
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 602 Pomógł: 0 Dołączył: -- Skąd: W - WA -> GRO Ostrzeżenie: (0%) ![]() ![]() |
Uzyc sesji
![]() -------------------- Zanim zadasz pytanie, zawsze wczesniej zajrzyj do manuala ( pl.php.net/manual/pl/ ).
Szukasz skryptow - www.hotscripts.com |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
hmm cookie jest chyba najprostrszym i najlepszym rozwiazaniem bo:
1. w przypadku dynamicznego IP ktos kto obladal strone zostanie zaliczony potem ktos inny moze miec te IP i co? ![]() 2. niektre kompy sa w sieci lokalne z wyjsciem na net tylko z jednego kompa (udostepnianie polaczenia) i kazdy z tych kompow na zewnatrz ma takie same IP wiec nawet jesli w takiej sieci jest 100 kompow i kazdy z nich bedze wchodzil na strone to zaliczony zostanie tylko jeden. 3. Niekotry wchodza na strone kilkakrotnie np, 2, 3, 10 razy dzienni i to jest wizyta danego usera (co innego jest nabijanie licznika przez odswierzanie) przydatnosc ciasteczka do sporzycia mozna ustawic np na 15-20 minut (mozna powiedziec ze tyle mniejwiecej osoba siedzi sobie na stronie i cos przeglada) jezeli po godzinie wejdzie na strone to zostanie zaliczona ale jezeli w cigu tych 15-20 minut bedzie chodzila po stronie to niebedzie zaliczana wiec nie bedzie sztucznych nabic licznika |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zablokowani Postów: 199 Pomógł: 0 Dołączył: 4.05.2003 Skąd: Tarnowskie Góry Ostrzeżenie: (10%) ![]() ![]() |
Cytat hmm cookie jest chyba najprostrszym i najlepszym rozwiazaniem bo:
1. w przypadku dynamicznego IP ktos kto obladal strone zostanie zaliczony potem ktos inny moze miec te IP i co? ![]() 2. niektre kompy sa w sieci lokalne z wyjsciem na net tylko z jednego kompa (udostepnianie polaczenia) i kazdy z tych kompow na zewnatrz ma takie same IP wiec nawet jesli w takiej sieci jest 100 kompow i kazdy z nich bedze wchodzil na strone to zaliczony zostanie tylko jeden. 3. Niekotry wchodza na strone kilkakrotnie np, 2, 3, 10 razy dzienni i to jest wizyta danego usera (co innego jest nabijanie licznika przez odswierzanie) przydatnosc ciasteczka do sporzycia mozna ustawic np na 15-20 minut (mozna powiedziec ze tyle mniejwiecej osoba siedzi sobie na stronie i cos przeglada) jezeli po godzinie wejdzie na strone to zostanie zaliczona ale jezeli w cigu tych 15-20 minut bedzie chodzila po stronie to niebedzie zaliczana wiec nie bedzie sztucznych nabic licznika moze jakis przyklad z cookie -------------------- <b>Aktualnie:</b> Blog version 1.0 (www.blog.sej.pl) [b] lllllllll 100%
[b]Dodatki: lll |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 560 Pomógł: 0 Dołączył: 15.07.2003 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
ja mam zrobione tak:
kod pliku do liczenia: [php:1:d099b041d8]<?php $fp=fopen("./coun/licznik.txt","r"); flock($fp,1); $count=fgets($fp,20); flock($fp,3); fclose($fp); if($odwiedziny!="tak") { // to jest sprawdzenie czy cooki jest na dysku klienta $fw=fopen("./coun/licznik.txt","w"); flock($fw,2); $count=$count+1; fputs($fw,$count); flock($fw,3); fclose($fw); } echo ("Ilosc odwiedzin<br> od 14.07.2003: $count"); ?>[/php:1:d099b041d8] a na glownej stronie dajesz cos takiego [php:1:d099b041d8]<?php setcookie("odwiedziny",tak,time()+600); ?>[/php:1:d099b041d8] 600 = 10 minut acha i pamietaj zeby ciasteczko wpisac na samym poczatku przed <head> |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zablokowani Postów: 199 Pomógł: 0 Dołączył: 4.05.2003 Skąd: Tarnowskie Góry Ostrzeżenie: (10%) ![]() ![]() |
Cytat ja mam zrobione tak:
kod pliku do liczenia: [php:1:b7da8b3d2f]<?php $fp=fopen("./coun/licznik.txt","r"); flock($fp,1); $count=fgets($fp,20); flock($fp,3); fclose($fp); if($odwiedziny!="tak") { // to jest sprawdzenie czy cooki jest na dysku klienta $fw=fopen("./coun/licznik.txt","w"); flock($fw,2); $count=$count+1; fputs($fw,$count); flock($fw,3); fclose($fw); } echo ("Ilosc odwiedzin<br> od 14.07.2003: $count"); ?>[/php:1:b7da8b3d2f] a na glownej stronie dajesz cos takiego [php:1:b7da8b3d2f]<?php setcookie("odwiedziny",tak,time()+600); ?>[/php:1:b7da8b3d2f] 600 = 10 minut acha i pamietaj zeby ciasteczko wpisac na samym poczatku przed <head> nie dziala tak jak ma bo jak odswierzam to i tak powieksza sie liczba na liczniku -------------------- <b>Aktualnie:</b> Blog version 1.0 (www.blog.sej.pl) [b] lllllllll 100%
[b]Dodatki: lll |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
1. Przez przesady z cytowaniem.
2. Zastosuj tablice globalne $_COOKIE. -------------------- |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zablokowani Postów: 199 Pomógł: 0 Dołączył: 4.05.2003 Skąd: Tarnowskie Góry Ostrzeżenie: (10%) ![]() ![]() |
Cytat 1. Przez przesady z cytowaniem.
2. Zastosuj tablice globalne $_COOKIE. moze jakas podpowiedz -------------------- <b>Aktualnie:</b> Blog version 1.0 (www.blog.sej.pl) [b] lllllllll 100%
[b]Dodatki: lll |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 273 Pomógł: 0 Dołączył: 5.05.2003 Skąd: Mazury Ostrzeżenie: (0%) ![]() ![]() |
Muwię zrób na plikach z IP... Tak ja pisałem wcześniej, na pewno będzie działać... Do tak prostego skryptu pliki są lepszym rozwiązaniem...
-------------------- <<< EB >>>
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Cytat Cytat 2. Zastosuj tablice globalne $_COOKIE.
moze jakas podpowiedz Zamiast odwoływać się do zmiennej zapisanej w ciastku poprzez $odwiedziny odwołaj się poprzez $HTTP_COOKIE_VARS["odwiedziny"] Omega: a co jeżeli więcej osób korzysta z jednego ip, np. w małej sieci? Poza tym IP w Polsce często jest dynamicznie przydzielane, więc może się zdarzyć, że np. następnego dnia ktoś całkowicie mi obcy będzie chciał zagłosować, a nie bęzie mogł bo ma takie samo IP. I po trzecie - do Mozilli jest dodatek (chyba się proctor zwie), który umożliwia zmianę numeru IP - też odpada. Nie ma rozwiązania idealnego, ale ja proponuję: 1. sprawdzić czy użtkownik może zapisywać ciastka 2a. jeżeli tak to może głosować 2b. jeżeli nie to nie może itd -------------------- |
|
|
![]()
Post
#13
|
|
![]() Administrator serwera Grupa: Przyjaciele php.pl Postów: 909 Pomógł: 0 Dołączył: 12.08.2003 Skąd: /var/www/wroclaw.php Ostrzeżenie: (0%) ![]() ![]() |
A nie można zrobić logowania użytkowników...
W bazie przechowujesz np. nazwę usera, hasło i inne potrzebne Ci dane i datę ostatniego głosowania... Jest to chyba najskuteczniejsze rozwiązanie... -------------------- Powrót do przeszłości :)
![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 45 Pomógł: 0 Dołączył: 11.06.2002 Ostrzeżenie: (0%) ![]() ![]() |
Kod <?
# Database server to connect to $dbhost = "localhost"; # Database to use $db = "mysql"; # Database username $dbuser = "root"; # Database password $dbpasswd = "krasnal"; # Table to use $table = "counter"; mysql_connect("$dbhost","$dbuser","$dbpasswd") or die("Unable to connect to SQL server!"); @mysql_select_db("$db") or die("Unable to select database!"); if(!$name) { $name = "default"; } $query = mysql_query("select * from $table where name="$name""); while ($row = mysql_fetch_array($query)) { $start = $row[start]; $count = $row[count]; } if(!$count) { mysql_query("insert into $table values (current_date()+0,"1","$name")"); $count = "1"; } print("$count"); if($_COOKIE['glosowales']==1){ }else{ setcookie("glosowales", "1", time()+3600*24); $count++; mysql_query("update $table set count="$count" where name="$name""); } ?> [sql:1:cf27b94039]CREATE TABLE counter ( START date default NULL, count int(20) unsigned default NULL, name char(255) NOT NULL default '', PRIMARY KEY (name) ) TYPE=MyISAM; [/sql:1:cf27b94039] -------------------- Elwis żyje i sprzedaje kartofle!!!
|
|
|
![]()
Post
#15
|
|
![]() Administrator serwera Grupa: Przyjaciele php.pl Postów: 909 Pomógł: 0 Dołączył: 12.08.2003 Skąd: /var/www/wroclaw.php Ostrzeżenie: (0%) ![]() ![]() |
@dragonballpj: Zmień znaczniki [CODE] na [php]
-------------------- Powrót do przeszłości :)
![]() |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 4.01.2004 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
Cytat A nie można zrobić logowania użytkowników...
W bazie przechowujesz np. nazwę usera, hasło i inne potrzebne Ci dane i datę ostatniego głosowania... Jest to chyba najskuteczniejsze rozwiązanie... Tylko jeszcze musisz zmusi uzytkownikow do logowania, biorac pod uwage przypadkowych userow, raczej nie zda to egzaminu. ![]() |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 4.01.2004 Skąd: Gdańsk Ostrzeżenie: (0%) ![]() ![]() |
kalinowski byc moze uzyles tego kodu w funkcji (tak jak ja), wtedy musisz pamietac o przekazaniu zmiennej ciasteczka => $odwiedziny do wnetrza funkcji, teraz mi dziala na zwykłych cookies bez zadnych tablic
![]() Mam teraz takie pytanie, w zwiazku z tym iz rozpocząłem prace nad wlasnym licznikiem i sa one zaawansowane, mam problem jednak robiac projekt "admina" tych statystyk, potzrebuje wygenerowac wykresy odwiedzin w miesiącach tygodniach czy dniach, jakiej tu funkcji bym musial uzyc? bo z grafiki to jestem zielony 8) |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 12.07.2025 - 06:01 |