Referer-script i ASP

I detta inlägg förutsätter jag att du har grundläggande kunskaper i ASP. Jag kommer inte förklara allt i detalj, utan bara det jag anser vara lite mer avancerat.

Börja med att skapa en databas, t.ex i Microsoft Access vilken jag använder i detta exempel. I databasen skapar du en tabell som heter ”referer”. Skapa därefter följande kolumner:

url (memo)
antal (number)
totalt (number) 

Spara databasen och ladda upp den i en mapp på ditt webbhotell (i detta exempel heter mappen ”db” och databasen ”data.mdb”)

Därefter skriver vi ASP-koden som registrerar från vilken webbplats besökarna kommer. Denna kod lägger du förslagsvis enbart på förstasidan.

<%
referer = Request.ServerVariables(”HTTP_REFERER”)
If referer <> ”” Then
Dim WordArray
WordArray = Split(referer, ”/”)
url = WordArray(2)
check_visitor = Request.Cookies(”visitor”)
If check_visitor <> ”counted_for” Then
If url <> ”www.google.se” AND url <> ”www.google.com” Then
Set Conn = Server.CreateObject(”ADODB.Connection”)
Conn.Open ”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” &Server.MapPath(”db\data.mdb”)
Set RecSet = Server.CreateObject(”ADODB.RecordSet”)
’Response.Write (url)
SQL = ”SELECT * FROM referer WHERE url like ’%”&url&”%'”
RecSet.Open SQL, Conn
’uppdatbesok = RecSet(”antal”) + 1
If RecSet.EOF Then
Response.Cookies(”visitor”) = ”counted_for”
Response.Cookies(”visitor”).Expires = Date() + 1
adress = url
datum = date()
tid = Time()
besok = 1
SQL = ”Insert Into referer (url,antal) Values(’” & adress & ”’,'” & besok & ”’)”
Conn.Execute(SQL)
Else
Response.Cookies(”visitor”) = ”counted_for”
Response.Cookies(”visitor”).Expires = Date() + 1
besok = RecSet(”antal”) + 1
Conn.execute(”Update referer Set antal='” & besok & ”’ WHERE url='” & url & ”’”)
End If
Else
End If
Else
End If
Else
End If
%>

Eftersom du kanske inte vill att Google ska vara med och konkurrera med dina länkvänner så säger vi till scriptet att igonrera adresserna Google.se och Google.com. Här kan du givetvis lägga till vilken domän du vill. WordArray gör så att adressen bryts vid andra och tredje slashen. Då återstår endast det fetmarkerade ”http://www.domän.se/index.html”, detta lagras sedan i databasen.

Genom att använda oss av en cookiefil kontrollerar vi så att inte samma besökare räknas flera gånger. Cookien är giltig i ett dygn, därefter räknas besökaren igen om han kommer in på din webbplats. Så länge han har en aktiv cookie får ingen annan webbplats någon poäng för att ha hänvisat honom till din webbplats. Denna cookiefunktion är inte bombsäker för att förhindra fusk, men det kräver mycket jobb för den som vill fuska. (Rensa cookies i webbläsaren inför varje nytt besök till din webbplats)

Koden som visar länkar till de som länkar till dig ser ut så här:

 <%
Set Conn = Server.CreateObject(”ADODB.Connection”)
Conn.Open ”Provider=Microsoft.Jet.OLEDB.4.0;Data Source=” &Server.MapPath(”db\data.mdb”)
Set RecSet = Server.CreateObject(”ADODB.RecordSet”)
’SQL = ”SELECT url, MAX(datum) AND MAX(tid) FROM referer GROUP BY url”
SQL = ”SELECT * FROM referer ORDER BY antal DESC”
RecSet.Open SQL, Conn
With RecSet
.MoveFirst
End With
x = 0
Do While Not RecSet.EOF And x < 10
overnoll = RecSet(”antal”)
If overnoll > 0 Then%>
<p><a href=”http://<%=RecSet(” mce_href=”http://<%=RecSet(”url”)%>” target=”_blank”><%=RecSet(”url”)%></a></p>
<%Else
End If

x=x+1
RecSet.MoveNext
Loop
RecSet.Close
Conn.Close
%> 

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *