![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 8.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Witam
Mam taki prosty skrypt licznika odwiedzin. Oparty on jest na pliku i cookie. [php:1:5a85efc046] <? setcookie("vis","1",time()+3600*12); ?> {Kod HTML, HEAD, BODY} <? $p_licznik = fopen("coun.n","r"); flock($p_licznik, 1); $licznik = fgets($p_licznik, 20); flock($p_licznik, 3); fclose($p_licznik); if($vis!="1") { $licznik++; } $p_licznik = fopen("coun.n","w"); flock($p_licznik, 2); fputs($p_licznik, $licznik); flock($p_licznik, 3); fclose($p_licznik); ?> {znów HTML, BODY} <? echo $licznik ?> {zakończenie HTML> ?>[/php:1:5a85efc046] I coś w tym kodzie jest nie tak. Przy każdym odświeżaniu strony, zostaje zwiększny licznik. Co trzeba poprawić? Aż mi głupio pytać o tak prosty kod :oops: |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 13 Pomógł: 0 Dołączył: 8.04.2004 Skąd: Łaziska Górne Ostrzeżenie: (0%) ![]() ![]() |
na 99% register globals... wstaw $vis = $_COOKIE['vis']; przed $p_licznik = fopen("coun.n","r");, powinno pomóc :wink:
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 335 Pomógł: 0 Dołączył: 15.11.2003 Ostrzeżenie: (0%) ![]() ![]() |
Wstaw to na samą górę:
[php:1:8530a91de9]<?php extract(array_merge($_GET,$_POST,$_COOKIE,$_SESSION),EXTR_OVERWRITE); ?>[/php:1:8530a91de9] |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 8.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki chłopaki, ale nie pomogły obie rady.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 68 Pomógł: 0 Dołączył: 16.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki licznik. Moze ci pomoze, chociaz podobnych tematow bylo wiele.
[php:1:24190e2227]<?php if(!file_exists("licznik/licznik.txt")){ $fd = fopen("licznik/licznik.txt", "w+"); } else{ $fd = fopen("licznik/licznik.txt","r+"); } $numer = trim(fgets($fd)); echo 'Licznik:' . $numer . '<br />'; if ($numer == ""){ $numer = "1"; rewind($fd); @flock($fd, "2"); print 'Licznik:' . $numer . '<br>'; fwrite($fd, $numer); @flock($fd, "3"); fclose($fd); } elseif(!isset($_COOKIE['C_licznik'])){ rewind($fd); @flock($plik, "2"); $numer++; fwrite($fd, $numer); @flock($fd, "3"); fclose($fd); } else{ //echo "<br>nie dziala[2]"; } ?>[/php:1:24190e2227] W glownym pliczku gdzie bedziesz wyswietlal licznik dodaj na samym poczatku jeszcze: [php:1:24190e2227]<?php setcookie("C_licznik", "ustawione cookie", time()+3600); ?>[/php:1:24190e2227] |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 8.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Ten liczni też nie działa. Za każdym razem, gdy odświeży się stronę licznik zostaje zwiększony. Dziwna sprawa.
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 352 Pomógł: 1 Dołączył: 17.07.2003 Skąd: Kazanów Ostrzeżenie: (0%) ![]() ![]() |
może po prostu masz wyłączoną obsługę cookie...
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 36 Pomógł: 0 Dołączył: 8.02.2003 Ostrzeżenie: (0%) ![]() ![]() |
Mam włączoną, to podstawa (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Na każdym kompie są takie same objawy
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 1 Dołączył: 19.04.2004 Skąd: Bytom Odrz. Ostrzeżenie: (0%) ![]() ![]() |
ej chlopaki mam pytanie ... jak zrobic licznik jednodniowy (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) taki ktory wyswietla ile uzytkownikow odwiedzilo strone w dzisiejszym dniu ? a na nastepny dzien zeby sie resetował
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 352 Pomógł: 1 Dołączył: 17.07.2003 Skąd: Kazanów Ostrzeżenie: (0%) ![]() ![]() |
w pliku zapisujesz dane w np. takiej strukturze:
Kod 20.05.2004 // data
123 // ilosc odwiedzin i teraz skryptem sprawdzasz na indexie jeżeli data z pliku jest równa dzisiejszej dacie to dopisujesz +1 do licznika a jak nie to zapisujesz 1 w liczniku możesz też to robić że nowy plik = nowa data ale ppierwszy sposób jest wg mnie lepszy |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 602 Pomógł: 0 Dołączył: -- Skąd: W - WA -> GRO Ostrzeżenie: (0%) ![]() ![]() |
Przy kazdym zapisie musisz sprawdzic, czy data ostatniej modyfikacji nie byla "wczoraj".
Pseudo kod: [php:1:66d067d72a]<?php if(!wczoraj()) { zlicz(); } else { licz_od_nowa(); } ?>[/php:1:66d067d72a] |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 1 Dołączył: 19.04.2004 Skąd: Bytom Odrz. Ostrzeżenie: (0%) ![]() ![]() |
e mastachy a jaka jest funkcja na sprawdzanie daty modyfikacji ?
|
|
|
![]()
Post
#13
|
|
Grupa: Przyjaciele php.pl Postów: 7 494 Pomógł: 302 Dołączył: 31.03.2004 Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 1 Dołączył: 19.04.2004 Skąd: Bytom Odrz. Ostrzeżenie: (0%) ![]() ![]() |
a poradzilem sobie inaczej ;p zrobilem plik w ktorym jest data dzisiejszego dnia zapisana i porownoje ta date ;p
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 00:08 |