Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Prosty licznik odwiedzin na pliku
Myrek
post
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:
Go to the top of the page
+Quote Post
otacon
post
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:
Go to the top of the page
+Quote Post
Chewolf
post
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]
Go to the top of the page
+Quote Post
Myrek
post
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.
Go to the top of the page
+Quote Post
Lerno
post
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]
Go to the top of the page
+Quote Post
Myrek
post
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.
Go to the top of the page
+Quote Post
Ive
post
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...
Go to the top of the page
+Quote Post
Myrek
post
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
Go to the top of the page
+Quote Post
TroYan
post
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ł
Go to the top of the page
+Quote Post
Ive
post
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
Go to the top of the page
+Quote Post
GeoS
post
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]
Go to the top of the page
+Quote Post
TroYan
post
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 ?
Go to the top of the page
+Quote Post
mike
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


Cytat
e mastachy a jaka jest funkcja na sprawdzanie daty modyfikacji ?

Manual mówi:
Cytat
Returns the time the file was last changed ...

Polecam zajrzeć : filectime oraz filemtime
Go to the top of the page
+Quote Post
TroYan
post
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
Go to the top of the page
+Quote Post

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: 16.09.2025 - 00:08