ugrás a tartalomhoz

linkkattintás számláló

zolika · 2009. Ápr. 27. (H), 14.12
Ez félig php félig mysql végülis.


Nos az oldalamon linkek vannak kilistázva. Azt szeretném megtudni hogy ha rákattintok valamelyik linkre akkor az adatbázisomban annál a bejegyzésnél egy cellában számoljon egyet.

Tehát tudjam hogy a bejegyzésemet hányszor nézték meg.

Ez azért kell nekem mert szeretnék egy top 10 listát a megjelenítések számának megfelelően. És a phpvel a 10 legtöbbet megjelenített bejegyzést listáznám ki.

Előző hozzászólásomnál kérték az adatbázis felépítését...


Egy táblából áll.
a táblában van egy ID egy NEV egy URL egy CAT és egy DATE mező. Nah meg ha ezt megtudnánk oldani akkor lenne egy VIEWS mező is. a VIEWS mező típusa ugye BIGINT lenne.

És ugye azt szeretném számolni hogy az URL hivatkozásra hányan kattintanak rá.

Remélem tud valaki segíteni.


köszi előre is üdv!
 
1

Linkek

Poetro · 2009. Ápr. 27. (H), 15.27
Ha lokálisak a linkek, azaz ugyanaz a rendszer dolgozza fel, akkor minden egyes kattintáskor
UPDATE egytabla SET views = views + 1 WHERE id = 1
Ha távoliak a linkek, akkor egy hasonló rendszeren kell átvezetni, mint amilyen itt a weblaboron van, azaz http://tavoli.szerver.example.com/tavolitartalom helyett http://sajat.szerver.example.com/latogatas.php?id=1
3

triviális

tamicskod · 2009. Ápr. 27. (H), 15.35
természetesen a legtriviálisabbat kihagytam :)
4

linkek

zolika · 2009. Ápr. 27. (H), 16.04
távoliak a linkek tehát a linkhivatkozások más oldalra mutatnak. mégis azt szeretném számolni hogy hányan kattintottak rá. valószínű te tudod a megoldást. de elég új vagyok a php területén. és ez a http://sajat.szerver.example.com/latogatas.php?id=1 nem igazán világos nekem. a latogatas.php-be mit kell hogy írjak?

remélem nem nagy munka ez neked.

nem is várom el hogy megírd. csak valami utat adj ahogy eltudom kezdeni :D

persze ha megírod az sem baj:)
jah és mellesleg az url is mysqlből van kiíratva... hátha ez befolyásolja a dolgot...)
üdv!
5

mysql update + átirányítás

erenon · 2009. Ápr. 27. (H), 16.55
A latogatas.php-ben először frissíted a megfelelő mezőt az adatbázisban (+1), majd lekérdezed a paraméterben kapott id-hez kapcsolódó url-t (sql injection-re vigyázz), és csinálsz egy átirányítást;
header('Location: http://www.example.com/');
Ha nem az id-t, hanem magát az url-t küldöd paraméterben, akkor megspórolhatod a második átirányítást.
6

Ilyesmi

Poetro · 2009. Ápr. 27. (H), 17.20
if ($_GET['id'] && is_numeric($id)) {
  if (mysql_query(sprintf(
    "UPDATE egytabla SET views = views + 1 WHERE id = %d",
    $_GET['id']))) {
    if ($url = mysql_result(mysql_query(sprintf(
      "SELECT url FROM egytabla WHERE id = %d",
      $_GET['id'])))) {
      header("Location: ". $url);
      exit();
    }
  }
}
header('HTTP/1.1 403 Forbidden', TRUE, 403);
7

mysql_result paraméterei

erenon · 2009. Ápr. 27. (H), 18.21
A mysql_result két paramétert vár, tehát a 7. sor:
$_GET['id'])),0)) {  
formában helyes szerintem.
8

köszönöm neked is Poetro és

zolika · 2009. Ápr. 27. (H), 18.32
köszönöm neked is Poetro és Erenonnak is hálásnak kell lennem! működik :)
9

Szerintem az ilyet büntetni

tgr · 2009. Ápr. 27. (H), 23.43
Ha távoliak a linkek, akkor egy hasonló rendszeren kell átvezetni, mint amilyen itt a weblaboron van, azaz http://tavoli.szerver.example.com/tavolitartalom helyett http://sajat.szerver.example.com/latogatas.php?id=1


Szerintem az ilyet büntetni kéne. Nem látszik egeret ráhúzva, hova mutat (bár a Weblaboron legalább title-ban kiteszik), nem lehet normálisan bookmarkolni, nem látom, mi az, amit máshonnan már meglátogattam, SSL biztonsági riasztásokat dobál. Nincs erre valami normális transzparens megoldás? (A Google mousedownra cseréli a linket, ami a problémák egy részén segít, de a bookmarkolást még mindig megöli, ráadásul nem is figyelmeztet rá a statusbar.)
10

ez ugyanaz a probléma, mint

gex · 2009. Ápr. 27. (H), 23.53
ez ugyanaz a probléma, mint ami a linkrövidítőknél már előjött.
2

keveredések

tamicskod · 2009. Ápr. 27. (H), 15.33
Pár dolog keveredik a leírásodban. A linkre kattintás, és az adott linken levő tartalom megjelenése két külön dolog.

Pár példa:
bookmarkok (senki nem kattint a linkedre)
másik oldalon elhelyezett link (nem is a te oldaladon van a link)

hogy teljes legyen a képzavar a postod végén azt írod, hogy:
"az URL hivatkozásra hányan kattintanak rá" ez meg ugye egyedi látogatószámot sugall

Ez utóbbit elírásnak veszem, és feltételezem, hogy valójában arra vagy kíváncsi, hogy az adott oldaladat hányszor jelenítették meg, ez alapján szeretnél egy top10 legnézettebbet összerakni.

A statisztikázó progik erre egy mérőkódos képet használnak fel

a webaudit ilyesmit csinál:

<img style="position:absolute;top:-100px;left:-100px" src="szamlalo.php?id=xxx&random=xxx" width="1" height="1">

a szamlalo.php az ID számlálóját növeli, és visszaad egy 1x1 pixeles képet általában gif-et. A pozícionálás azért van, hogy ne látszódjon a kamu kép, és na tolja el a megjelenést.

A véletlenszámra azért van szükség, hogy a proxy és egyéb cache-en át tudja magát a kamu képlekérésed vergődni és eljusson a szerveredig.