Látogatottság, és nem "kattintás" számláló
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.
■ 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.
Bocsánat, véletlenül
Session
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
Hát elolvastam a PHP 24
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: ";
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...
Minden odlalletöltésnél
ferenc voltam
time
Í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
eltakarítva
Egy jó ötlet...
A fájlok nevei pedig a naptól függenek. Pl.: 2005_05_04.php
Üdv:
Tiny
Számlálók
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
user_agent
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?
Épp a minap próbálkoztam
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
A szerver mit sem tud a kliens hardweréről
--------
Poetro
javascript és más
;-)
nemeza
válasz
ÉS sikerülT!!!