Sledovanie odkazov na stránke pomocou ASP

5. prosince 2002

Viete, ktoré odkazy na vašej stránke sa najviac využívajú? Viete, ako intenzívne sa počas dňa používajú? Poznáte čas, kedy bol ten ktorý odkaz naposledy využitý? Odpoveď nájdete práve v tomto článku, v ktorom si vysvetlíme jednoduchý a modifikovateľný systém sledovanosti akýchkoľvek odkazov na vašej stránke.

Každý tvorca, ktorý už postavil nejakú tú internetovú stránku, sa na konci svojej namáhavej práce zväčša pozrie na svoje dielo a zamyslí sa, koľko a ako budú jeho stránku vlastne potencionálni návštevníci využívať. Jeho zvedavosť sa môže uspokojiť tým, že sa začne pozerať do svojich log záznamov, alebo siahne po nejakej voľne dostupnej službe, ktorá mu dá možnosť vložiť určitý kód priamo do stránky. Tieto možnosti sú časovo nenáročné na tvorbu, avšak nedávajú úplný prehľad o jednotlivých odkazoch na jednej stránke, preto vzniká potreba tvorby systému, ktorý by spĺňal viac požiadaviek.

Začnime príkladom a jeho popisom. Základom celého presmerovania je príkaz Response.Redirect, ktorý si hneď ukážeme:

<%
‘ Definujeme si premennú URL
Dim URL
‘ Priradíme k premennej url adresu
URL = “http://www.interval.cz”
‘ použijeme samotný skript s premennou
Response.Redirect(URL)
%>

Tento skript, ak si ho spustíte, vás presmeruje na stránku s adresou http://www.interval.cz. Výhoda tohto ASP príkazu spočíva hlavne v tom, že sa dá použiť až potom, čo sa vykoná jednoduchý skript so zápisom o tom, že návštevník prejavil záujem o danú adresu (URL).

Ak chceme použiť rôzne internetové adresy, musíme získať hodnotu premennej cez príkaz Request.QueryString. Tu sa naskytujú dve možnosti, buď vložíme do parametru celú internetovú adresu alebo použijeme skratku, špecifickú pre danú internetovú adresu (ID číslo, krátky jednoslovný názov). Osobne preferujem druhú možnosť hneď z niekoľkých dôvodov.

V rámci prvej možnosti môže vzniknúť problém, ak ju nepoužijete spolu s príkazom URLEncode, ktorý robí príkaz Request.QueryString použiteľným medzi stránkami. Príkazový riadok v prehliadači je tiež dosť neprehľadný. Namiesto toho je prijateľnejšia spomínaná skratka, ktorá robí príkaz krajším a tiež Vám dáva možnosť sledovať niekoľko liniek na tú istú internetovú adresu. To sa dá využiť najmä pri bannerovej reklame.

Čo všetko potrebujeme?

Základom celého systému sú obsluhujúce ASP skripty a databáza, do ktorej sa údaje budú zapisovať. Pre svoju jednoduchosť budeme v tomto príklade používať databázu MS Access, ktorá je použiteľná skôr na malých internetových stránkach či v intranete, pretože nedokáže spracovávať niekoľko prístupov od rôznych užívateľov naraz.

V prípade, že používate systém NTFS, musíte si najprv nastaviť práva pre zápis do databázy, buď to budú práva pre celý adresár, v ktorom je databáza uložená, alebo nastavíte práva pre zápis iba pre samotnú databázu, súbor s príponou mdb.

Štruktúra aplikácie

  • 2x tabuľky – tblClickInfo, tblClickLog
  • 1x skript – ClickTracker.asp

Začnime s tabuľkami a ich údajmi. Najprv si určíme Unikátne ID a, aby systém fungoval, tak aj samotnú internetovú adresu. Dodatočne môžeme priradiť k adrese i prijateľnejší názov.

Tab 1.: tblClickInfo

Názov poľa Dátový typ Popis
id automatické číslo Unikátne číslo adresy internetovej stránky.
nazov text(50) Unikátny prijateľnejší názov, ktorým špecifikujeme adresu na použitie.
url text(255) Internetová adresa, kam chceme používateľa poslať.

Tab 2.: tblClickLog

Názov poľa Dátový typ Popis
link_id automatické číslo Unikátne číslo adresy internetovej stránky tabuľky tblClickInfo, ktorej údaje patria.
hit_datum datum Dátum kedy sa linka použila
hit_pocet číslo Počet prístupov pre internetovú adresu v poli link_id počas dátumu v poli dátumu.
hit_datum datum Čas poslednej návštevy za daný deň.

Potom, čo sme si vytvorili potrebné tabuľky a naplnili ich adresami stránok, musíme vytvoriť skript, ktorý by obsluhoval zápis do tabuliek a presmeroval používateľa na jeho vytúženú internetovú stránku (ClickTracker.asp):

<%@ Language=VBScript %>
<%
‚ Základ pre programovanie v ASP, aby boli všetky premenné deklarované
Option Explicit
‚ Určime si potrebné premenné:
‚ Prijateľnejší názov internetovej adresy na presmerovanie

Dim strMeno
‚ ADODB Spojenie
Dim conn
‚ Tabuľka tblClickInfo
Dim tblClickInfo
‚ Tabuľka tblClickLog
Dim tblClickLog
‚ SQL príkaz pre zápis do tabuľky tblClickLog
Dim strSQLlog
‚ SQL príkaz pre výber adresy stránky z tabuľky tblClickInfo
Dim strSQLinfo
‚ Unikátne id presmerovania pre zápis
Dim UniId
‚ Pomocou tohto príkazu zistíme prijateľnejší názov internetovej adresy
‚ Môže mať tvar: http://server/clicktracker.asp?nazov=intervalcz
‚ kde intervalcz je práve spomínaný prijateľnejší názov

strMeno = Request.QueryString(„nazov“)
‚ Vytvorime si ADO spojenie
Set conn = Server.CreateObject(„ADODB.Connection“)
‚ Cesta a driver pre spojenie s databazou MS ACCESS
conn.open „DRIVER={Microsoft Access Driver (*.mdb)};admin;DBQ=“&_
Server.MapPath(„../clicktracker/db/ClickTracker.mdb“)
‚ Vytvorit ADO tabulku
Set tblClickInfo = Server.CreateObject(„ADODB.Recordset“)
‚ Vyhľadat záznam, ktorý má prijateľnejší názov v premennej strMeno
strSQLinfo = „SELECT id, wwwadresa FROM tblClickInfo WHERE nazov = ‚“ & strMeno & „‚“
‚ Použit príkazy
tblClickInfo.Open strSQLinfo,conn,2,2
‚ Ak získame záznam, potom prejdeme na internetovú adresu uloženú v databáze
If Not tblClickInfo.EOF Then
  ‚ Priraď unikátne ID linky
  UniId = tblClickInfo(„id“)
  ‚ Priraď samotnú linku
  strMeno = tblClickInfo(„wwwadresa“)
  
  ‚ Máme teda všetko z databázy a môžeme ju uzavrieť
  tblClickInfo.Close
  Set tblClickInfo = Nothing
  ‚ Musíme si prispôsobiť formát dátumu pre databázu, aby s nami pracovala korektne.
  ‚ Tu chcem zdôrazniť, že ak budete mať problém s dátumom, je to otázka regionálneho
  ‚ nastavenia vo Vašom PC a prostredia databazy, ktoré sa nemusia zhodovať.
  ‚ MS SQL používa na ohraničenie dátumu značku ‚ , MS ACCESS používa #

  Dim Datum
  Datum = „#“ & Month(now()) & „/“ & Day(now()) & „/“ & Year(now()) & „#“
‚ Teraz použijeme SQL príkaz, aby sme vybrali už existujúci zápis
  strSQLlog = „SELECT link_id, hit_datum, hit_pocet, hit_posledne FROM tblClickLog “ &_
„WHERE link_id = “ & UniId & “ AND hit_datum = “ & Datum
  ‚ Vytvorite si ADO tabuľku
  Set tblClickLog = Server.CreateObject(„ADODB.Recordset“)
  ‚ Použiť príkazy
  tblClickLog.Open strSQLlog,conn,2,2
  
  ‚ Ak sa záznam nenašiel, znamená to, že dnes sa použije internetová adresa
  ‚ po prvý krát a tak pridáme hodnotu 1 …
  If tblClickLog.EOF Then
    tblClickLog.AddNew
    
    tblClickLog(„link_id“) = UniId
    tblClickLog(„hit_datum“) = Date()
    tblClickLog(„hit_pocet“) = 1
    tblClickLog(„hit_posledne“) = Time()
  ‚ … inak aktualizujeme záznam a čas prístupu na internetovú adresu
  Else
    tblClickLog(„hit_pocet“) = tblClickLog(„hit_pocet“) + 1
    tblClickLog(„hit_posledne“) = Time()
  End If
  ‚ Uložíme zmeny
  tblClickLog.Update
  ‚ Zatvoríme a zrušime spojenie
  tblClickLog.Close
  Set tblClickLog = Nothing
Else
  ‚ Ak nieje žiadny záznam v databáze o internetovej adrese potom presmerovať na úvodnu
‚ stranku

  strMeno = „/“
End If
‚ Zrušíme spojenie
conn.Close
Set conn = Nothing
‚ Presmerujeme návštevnika, kam si zažiada
Response.Redirect strMeno
%>

Pridávanie, mazanie a úprava odkazov

Potom, ako ste si vytvorili samotné presmerovanie, si môžete vytvoriť skripty na pridávanie, mazanie a úpravu odkazov, aby vám spravili obsluhu ľahšou. Je to veľmi dôležitá vec. Súbory s názvom pridaj.asp, vymaz.asp a uprav.asp sú uložené v adresári admin v pribalenom zip archíve. Majú síce veľmi strohé grafické rozhranie, ale to je už na vás, ako si ich prikrášlite.

Štatistika prístupov

Ďalším a zároveň posledným krokom je samotný prehľad prístupov, na čo slúži skript prehlad.asp v adresári statistika v pribalenom zip archíve. Ukazuje, ako sa vyvíjali prístupy celkovo a ako za každý deň.

Související články

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Předchozí článek CSS2 - kaskádové styly podruhé
Další článek Vánoční JavaScript
Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *