Lagra statistik på vissa länkar del 1
Förord
Ibland så undrar man vad besökarna tycker om på ens hemsida, om du tex. har en hemsida om olika hundraser så kanske du undrar vilken ras som de flesta går in på & på så vis uppdatera de populäraste delarna oftare än de som nästan inga besöker. Jag ska här visa hur du kan lagra statistik på antalet klick på länkarna i din meny, till detta behöver du ett webhotell som stödjer asp & access databaser. Denna artikel kommer att ha tre olika filer: databasen, en sida som räknar antalet klicks på de olika länkarna & en sida där du kan se statistik & lägga till nya länkar att ha statistik på.Innehåll
»»
»
»
»
Databasen links.mdb
I databasen ska det finnas en tabell den ska heta links, i tabellen ska det finnas fyra fält id(auto number), Titel(Text), url(text) & klicks(number).
ut.asp
Den här filen räknar antalet klicks & skickar användaren vidare. så här ska koden i ut.asp se ut:
<%
'databas koppling
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
Conn.Open "Driver={Microsoft access driver (*.mdb)};dbq=" & Server.MapPath("links.mdb")
'Updatera databas fältet klicks
Sql = "UPDATE links SET klicks = klicks + 1 WHERE ID = " & request.querystring("id")
Set RS = Conn.Execute(Sql)
'Skicka vidare besökaren
skicka_vidare = RS("url")
RS.Close
Conn.Close
Response.Redirtect skicka_vidare
%>
Vad är det då som händer?
Jo, först deklarerar vi Conn som en connection & RS som en RecordSet, & sedan öppnar vi databasen med en dsn-fri databas koppling.Sen använder vi Sql för att uppdatera klicks med ett klick till, Och tillslut skickar vi vidare besökaren dit han/hon skulle.
admin.asp
Det här är sidan som du kan se statistik & lägga till nya länkar att ha statistik på.
<%
'Kolla vad som ska göras
If request.querystring("do") = "" Then
Response.Write "Statistik
"
'Koppla till databasen
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
Conn.Open "Driver={Microsoft access driver (*.mdb)};dbq=" & Server.MapPath("links.mdb")
'Skriv ut statistiken
Sql = "Select * from links"
Set RS = Conn.Execute(Sql)
Do Until RS.Eof
Response.Write RS("Titel") & " - " & RS("klicks") & " har klickat på länken.
"
RS.MoveNext
Loop
'Skriv ut en länk till Lägg till ny
Response.Write "Lägg till en ny länk"
'Kolla om andvändaren vill se formuläret
ElseIf request.querystring("do") = "visa_form" Then
'skriv ut formuläret
%>
<%
Else
'lägg till informationen
Set Conn = Server.CreateObject("ADODB.Connection")
Set RS = Server.CreateObject("ADODB.RecordSet")
Conn.Open "Driver={Microsoft access driver (*.mdb)};dbq=" & Server.MapPath("links.mdb")
Sql = "Select * from links"
RS.Open Sql, Conn, adOpenStatic, adLockOptimistic
RS("Titel") = request.form("titel")
RS("url") = request.form("url")
RS.Update
RS.Close
Conn.Close
'skriv ut url:en som man ska länka till
Set RS2 = Server.CreateObject("ADODB.RecordSet")
Sql2 = Select * from links WHERE url = "' & request.form("url") & "'"
Set RS2 = Conn.Execute(Sql2)
Response.Write "Nu ska du länka till: ut.asp?id=" & RS2("ID")
End If
Vad händer här då?
Jo, först så kollar vi vad användaren vill göra, om han/hon inte sagt vad han/hon vill göra så loopa vi statistiken med hjälp av en do-loop, sen kollar vi om användaren vill lägga till en ny länk, i så fall så skriver vi ut formuläret, inga konstigheter bara ren HTML. om inte det vad var användaren ville göra så lägger vi till informationen i databasen, och tillsist så skriver vi ut vart användaren ska länka för att klicket ska räknas!Så där ja! det var den första delen i denna serie, i nästa ska jag visa hur du kan lägga till ett lösenordskydd, hur man tar bort info mm.
0 Kommentarer