ugrás a tartalomhoz

Információ gyüjtése a látogatókról

dc-hungary · 2008. Ápr. 24. (Cs), 21.03
Üdv!
Nekem olyan scriptekre lenne szükségem, mellyel több infót meglehet tudni egy látogatóról.
Ezekre gondolok főképp:

Böngésző típusa
Operációs rendszer
Felbontás

És még ha van valami, aami kimaradt, akkor azt is..

Egyrészt statisztikához kéne, másrészt pedig biztonsági rendszerhez..

köszi előre is

MD
 
1

Nekem meg...

Ronyn · 2008. Ápr. 24. (Cs), 21.30
egymillio forint kellene...ha valamit kihagytam ,az nem kell))) Egyébként van egy mágikus változó $_SERVER["HTTP_USER_AGENT"],abban benne van a böngészö és az oprenccer...
A felbontáshoz js kell...
2

Te aztán belecsaptál a lecsóba... :)

s_volenszki · 2008. Ápr. 24. (Cs), 23.15
Esetleg itt: google => js visitor details
vagy itt: google => php visitor details

És majd ezek után jön a kedvencem, hogy ha megszereztem a képernyő felbontását, akkor hogyan írom be adatbázisba?

ps.:
Ha lehetne akkor csípő és mellbőség!
:)
4

:)

dc-hungary · 2008. Ápr. 25. (P), 14.22
dehogyis :) azért azt már tudom.. :)
3

Van megoldás

Velias9 · 2008. Ápr. 25. (P), 14.22
Ajax + jQuery + PHP megoldja a problémát.
A jQuery browser pluginja (vagy sima JavaScript navigator objektuma) által megtudhatod az operációs rendszer és a böngésző típusát. A jQuery szebb, de nem olyan pontos (levágja a zagyvát); a JavaScript-et pedig neked kell feldolgozni, de pontosabb. Szerintem a te célodnak inkább a jQuery felelne meg.
A felbontást sima JavaScript-tel tudod megkérdezni.
Az Ajax-szal elküldöd az adatokat a PHP fájlnak, ami feldolgozza és már kész is.
Valami ilyesmi lenne a kód:

...

$.ajax({
	type: "GET",
	url: "stat.php?browser=" + $.browser.browser() + "&verzio=" + $.browser.version.string() + "&OS=" + $.browser.OS() + "&screenX=" + screen.width + "&screenY=" + screen.height + ""
      });

...
És a PHP:

<?php

$kapcsolat = mysql_connect("bla", "bla", "bla");

$bongeszo = mysql_real_escape_string($_REQUEST['browser'], &$kapcsolat);
$verzio = mysql_real_escape_string($_REQUEST['verzio'], &$kapcsolat);
$operacios = mysql_real_escape_string($_REQUEST['OS'], &$kapcsolat);
$screenX = mysql_real_escape_string($_REQUEST['screenX'], &$kapcsolat);
$screenY = mysql_real_escape_string($_REQUEST['screenY'], &$kapcsolat);

mysql_select_db("bla", &$kapcsolat);
mysql_query("INSERT INTO adatok VALUES (\"\", \"" . $bongeszo . "\", \"" . $verzio . "\", \"" . $operacios . "\", \"" . $screenX . "\", \"" . $screenY . "\")", &$kapcsolat);

mysql_close(&$kapcsolat);

//ne használj semmilyen 'print()' vagy egyéb függvényt, ami a böngészőnek küldene valamilyen adatot!

?>
Ebben nincsenek benne a biztonsági intézkedése és satöbbi, de vázlatnak jó lesz.

Remélem tudtam segíteni!

Ui: azt elfelejtettem, hogy a jQuery kódhoz és browser pluginhez is kell a natúr jQuery
5

---

gabesz666 · 2008. Ápr. 26. (Szo), 17.32
Google Analytics... Tud mindent (még többet is :) )
6

hiba

dc-hungary · 2008. Ápr. 27. (V), 06.04
próbálkoztam a $_SERVER[HTTP_REFERER] el, ami ugye a böngészőt kéri le, meg az oprendszert..
de egyik ismerősömnek sikerült a böngésző tipusát átirni másra, szóval nem is a valósat adta vissza ez a változó.
ugyan ez volt a host-al is, gond nélkül átirta valami másra...

és ha ezt páran csinálják, akkor már semmi értelme..

csak azt nem értem, hogyan változtatta meg ennek az értékét? tudja valaki? :)
7

Felhasználó bemenet = nem biztonságos

janoszen · 2008. Ápr. 27. (V), 08.01
Bárki bármit meg tud változtatni a lekérdezésben. Ha megnézed a TamperData nevű kiváló kis kiegészítőt, a szervernek küldött bármilyen lekérdezésben bármilyen mezőt laza könnyedséggel átírhatsz. Alapvetően a felhasználótól jövő információ nem megbízható.

Amit az olyan hülye scriptkidek ellen tudsz tenni, akik átírják a user agentjüket, mert az kúl, hogy JavaScript-tel a böngésző viselkedéséből következtetsz arra, hogy milyen motor is van ott, azonban ez nem 100%-os, mivel a Gecko motorra sok böngésző épül például.

Légyeg a lényeg: nem az adatgyűjtés a lényeg, hanem hogy elhiszed-e a felhasználónak, amit beküldött. Nagy számok törvénye szerint lesz olyan, aki megpróbálja meghamisítani az információkat, de ha elég kicsi az arány, nem biztos hogy ez téged zavar.
8

Gondolatok

vbence · 2008. Ápr. 27. (V), 12.00
Először: a $_SERVER[HTTP_REFERER] azt az URL-t adja vissza, ami hivatkozott az aktuális lapra. Amire te gondolsz az a $_SERVER[HTTP_USER_AGENT] .

Másrészt csatlakoznék proclubhoz: semmi nem megbízható, amit a klienstől kapsz, mivel azt egy olyan program küldi, ami nem a te gépeden fut, tehát teszemazt egy gonosz user írhat egy programot, ami azt küldi, amit ő akar, vagy akár telnet segítségével kézzel is kezdeményezhet HTTP kéréseket.

Emellett persze 99%ban igaz, amit kepsz, tehát aggregálhatsz beőlemindenféle statisztikákat, például, hogy csak 2% nézi 1024-nél ksiebb felbontásban az oldaladat. Ha mondjuk webáruház is működik rajta, külön statisztikát készíthetsz a vásárlások megoszlásáról, ami talán azt adja, hogy vásárlás abszolút nem történik 1024-nél kisebb felbontású gépről.

Amire még hasznáhatod, hogy az aktuális usert megvédd harmadik fél ügyeskedéseitől. Egy referer check például kinézhet így:

$referer = $_SERVER["HTTP_REFERER"];
$url = parse_url ($referer);
if ($referer && $referer["host"] != $_SERVER["HTTP_HOST"])
    exit ();
Ez egy megengedő szűrő. Csak a nyilvánvaló ügyeskedéseket szűri ki. Ha nem érkezik referer információ a böngészőtől (tilthatják paranoid tűzfalak, vagy cégek proxy szerverei), akkor feltételezzük, hogy a kérés legitim.
9

thx

dc-hungary · 2008. Ápr. 28. (H), 18.23
Köszi mindenkinek, annál maradtam, hogy nem kérek le semmi ilyen adatot a látogatótól :) és akkor oké..