ugrás a tartalomhoz

Látogatottság, és nem "kattintás" számláló

Anonymous · 2005. Ápr. 22. (P), 16.35
Sziasztok!

Csináltam egy weboldalra számlálót, ami mutatja az oldal látogatottságát.
A problémám az vele, hogy ha a frissítés gombra nyomok, vagy a honlap más oldaláról vissza megyek a főoldalra akkor is számol egyet, és így nem reális a számérték.

Hogyan tudnám azt megcsinálni, hogy ha valaki megnézi az oldalt akkor mondjuk 20 percig ha ugyanarról a gépről frissít, vagy visszatér az oldalra, ne számoljon a számláló. PHP-ben nagyon kezdő vagyok, ez egy free kód aminek csak néhány részét módosítottam.
A kódot most sajnos nem tudom idemásolni, de ha kell, este ha hazaérek bemásolom.

honlap: www.renseikandojo.hu

köszönöm a segítséget.
 
1

Bocsánat, véletlenül

Anonymous · 2005. Ápr. 22. (P), 16.40
Bocsánat, véletlenül dupláztam...
2

Session

Poetro · 2005. Ápr. 22. (P), 16.49
Session-ben eltárolod a látogatott oldalak URIjét (mondjuk egy tömbben), és ha nincs az elem a tömbben, akkor növeled a számlálót, és hozzáadod az oldalt a tömbhöz.
Sőt, ha az időt is tárolni akarod, akkor asszociatív tömbben, vagy több dimenziós tömbben eltárolod a látogatás időpontját, és minden egyes látogatáskor frissíted az időt is, és ha lejárt a 20 perc, akkor szintén növeled a számlálót.
--------
Poetro
4

Hát elolvastam a PHP 24

mazsi · 2005. Ápr. 22. (P), 22.52
Hát elolvastam a PHP 24 óra alatt c. PDF-ben a tömbökről szóló részt.
Nagyjából értem a tömbök felépítését, de honnan tudnám lekérdezni a látogatás időpontját? Sejtem hogy valahonnét a szerverről, de gőzöm sincs hogy. Milyen időegységet használhatok php-ben? Első lépésben elolvasom majd előről a könyvet, bár ez nagyon alapnak tűnik, de addig is nem segítene valaki?

Ide másolom a kódot:

<?php

$text = 1 ;
$file="counterfile.count";
$images="/imagenes/";
$imagesext=".gif";
echo "Látogatók száma 2005. április 22. óta:&nbsp;&nbsp;";

if (!file_exists($file))
{
$fp = fopen($file,"w");
fputs ($fp,"0" );
}
else
{
$fp = fopen($file,"r+");
};

$numcount= fread($fp,filesize($file));
fclose($fp);

$numcount++;

$fp = fopen($file,"w");
fputs ($fp,$numcount);

if ($text)
{
echo "<strong>$numcount</strong>";
}
else
{
$longstr = strlen($numcount);
for ($x=0; $x < $longstr; $x++)
{
echo "<img src="/ ;
echo $images;
echo substr($numcount,$x,1);
echo $imagesext;
echo ">";
}
}

?>

Azért ilyen, mert ki lehet választani, hogy grafikus, vagy szöveges számláló legyen. Én szövegeset választottam. (text=1)

Köszi a segítséget...
5

Minden odlalletöltésnél

Fekete Ferenc GDA · 2005. Ápr. 23. (Szo), 10.06
Minden odlalletöltésnél figyeled,h van-e a sütiben például $_COOKIES['vissitor'] változó. Ha nincs, akkor lerakod, és növeled egy-el az adatbázisban a találatok számát. Ha van, akkor meg nem növeled. A süti érvényességét pedig 20 percre állítod és kész. Ennyi az egész. Ha ki vannak kapcsolva a sütik,akkor nem megy. De aki meg kikapcsolja, az így járt:)

ferenc voltam
7

time

Poetro · 2005. Ápr. 24. (V), 14.01
A time() függvény az aktuális időt adja vissza a szerveren miliszekundumban.
Így ha a régi idő és az új idő közötti különbség nagyobb, mint 20*60*1000 (ez pont 20 perc) akkor eltelt a 20 perc.
Ha hosszabb távő statisztika kell, akkor érdemes naponta fájlt létrehozni, vagy adatbázisban tárolni az adatokat.
--------
Poetro
3

eltakarítva

Hojtsy Gábor · 2005. Ápr. 22. (P), 19.41
Eltakarítottam a szemetet.
6

Egy jó ötlet...

Anonymous · 2005. Ápr. 23. (Szo), 21.28
Ez a dolog nekem is rengeteg problémát okozott, s a legegszerűbb megoldás ha minden nap statisztikáját egy külön fájlban tárolod. A fopen 'a' paramétere létrehozza a fájlt, ha még nem létezik.
A fájlok nevei pedig a naptól függenek. Pl.: 2005_05_04.php
Üdv:
Tiny
8

Számlálók

monghuz · 2005. Ápr. 24. (V), 23.20
Hali! Ezzel a témával én is megvoltam löve.. azaz me is vagyok.. mert mióta úgy ahogy megtanultam a php-t lusta voltam megcsinálni :)

Viszont az elgondolásom a következő..
2 tábla kell
- stat_all : ip,első kapcsolódás, legutóbbi kapcsolódás.. stb mezőkkel
- stat: újlátogató, visszatérő mezőkkel

amikor a nyúzer megnézi a weblapodat
akkor egy mysql lekérdezéssel megnézed a látogatók adatait tároló táblában hogy az elmúlt 20 percben volt-e arról az ip-ről az adott látogató,
ha nem akkor egy másik táblában pl: az egyedi mezőnek az értékét megnöveled eggyel és a látogatók tulajdonságai táblában létrehozol egy új rekordot az akt. júzer cuccaival... elenkező esetben pedig a visszatérő mező értékét növeled eggyel és eltárolod a már letárolt user adataiban az új látogatás idópontját.

ezzel máris megoldható hogy kirasd hogy mikor lépet be utoljára.

Mielött megkérdeznézek minek nekem két külön tábla.. azért mert nekem ez az egyszerü, de építő jellegű kritikát mindig szivessen fogadok.

Amúgy ha kicsit skillesebb statisztikát szeretnénk akkor másik táblákat alkalmazva tudjuk mérni a felbont,böngésző, op rendszer.. stb eloszlásának arányát...

Viszont ezzel kapcsolatban nekem is lenne egy kérdésem, honan tudok olyan listát szerezni ami a $HTTP_USER_AGENT kérésre kapható válaszokat tartalmazza, és ami alapján eltudom különíteni nem csak a ie-t a mozzila-tól hanem pl a firefox 1.0-t a 1.3-tól is. Előre is köszi a választ .

bye Tomi
9

user_agent

Anonymous · 2005. Május. 12. (Cs), 11.57
IE: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

FF: Mozilla/5.0 (Windows; U; Windows NT 5.1; hu-HU; rv:1.7.7) Gecko/20050414 Firefox/1.0.3

Links (1.00pre12; Linux 2.4.18-grsec-int-lm-uml i686; 100x25) (Debian pkg 0.99+1.00pre12-1)


Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6c


Ezek HTTP_USER_AGENT-es log-ok. Viszonta képernyőfelbontást pl. milyen változóban találom? És az aktuális oldal elérési útját?
10

Épp a minap próbálkoztam

tiny · 2005. Május. 12. (Cs), 13.35
Épp a minap próbálkoztam javascripttel a bönmgésző adatait lekérni. Az IE-nél működik, ha a navigator.appName -et kérdezzük le.
Az eredmény: Microsoft Internet Explorer.
A FireFox cselesebb, neki a UserAgent-re a következőt adja:
Mozilla/5.0 (Windows; U; Windows NT 5.1; hu-HU; rv:1.7.7) Gecko/20050414 Firefox/1.0.3
--
tehát ha benne van a FireFox, akkor az FF böngésző. Egyébbel nem próbálkoztam, de hasznos lehet, mert IE szokott engem is becsapni...
Mr.Tiny
11

A szerver mit sem tud a kliens hardweréről

Poetro · 2005. Május. 12. (Cs), 13.48
Szerencsére ez így van. Esetleg javascript-el el tudod kérni a képernyő felbontását a böngészőtől (google biztosan tudja a választ hogyan, majd ezt elküldöd vmi úton a szervernek, hogy ő is megtudja ezt az adatot). Egyébként ez fontos információ? Mert szerintem egy weboldal tekintetében nem kell annak lennie.
--------
Poetro
12

javascript és más

Anonymous · 2005. Május. 12. (Cs), 23.10
Sok hasznos anyag található a www.jsworkshop.com oldalon, illetve minden egyéb a www.hotscripts.com on..
;-)
nemeza
13

válasz

Anonymous · 2006. Okt. 31. (K), 12.20
NA igen, ez az én problémám is, de én olyan tudatlan vagyok, hogy nem értem itt miről beszélgettek :D Amúgy én egy olyan számlálót keresek, ami a jelenleg honlapomon lévő látogatk számát méri.
14

ÉS sikerülT!!!

Anonymous · 2006. Okt. 31. (K), 12.23
Hy! Megvan a problemádra a legkönnyebb megoldás! Menj fel erre a linkre!http://kornel.zool.klte.hu/pub/counter/