<%@LANGUAGE="VBSCRIPT"%> <% ' get users IP Dim IP IP = Request.ServerVariables("REMOTE_ADDR") Dim datetime datetime = FormatDateTime(DateAdd("h",-3,Now),0) ' find the tracking link table entry Dim TrackingID TrackingID = Request.QueryString("ID") Set rsTrackingLink = Server.CreateObject("ADODB.Recordset") rsTrackingLink.Activeconnection = MM_myDSN_STRING rsTrackingLink.Source = "SELECT * FROM tracking_links WHERE TrackingCode='" & TrackingID & "'" rsTrackingLink.Open() IF rsTrackingLink.EOF THEN Response.Redirect("index.htm") END IF 'find out if the same IP has visited the same URL before Set rsVisitor = Server.CreateObject("ADODB.Recordset") rsVisitor.Activeconnection = MM_myDSN_STRING rsVisitor.Source = "SELECT * FROM visitors WHERE IP='" & IP & "' AND TrackingID = '" & rsTrackingLink.Fields.Item("ID") & "'" rsVisitor.Open() Dim isUnique IF NOT rsVisitor.EOF THEN isUnique = FALSE ELSE isUnique = TRUE END IF ' add the visit to the Visitors table Set rsNew = Server.CreateObject("ADODB.Command") rsNew.Activeconnection = MM_myDSN_STRING rsNew.CommandText = "INSERT INTO visitors (IP, TrackingID, refereredBy, DateTime) VALUES ('" &_ IP & "', '" &_ rsTrackingLink.Fields.Item("ID") & "', '" &_ refereredBy & "', '" &_ datetime & "')" rsNew.Execute rsNew.ActiveConnection.Close() Dim uniqueVisits uniqueVisits = rsTrackingLink.Fields.Item("UniqueHits") IF isUnique = TRUE THEN uniqueVisits = uniqueVisits + 1 END IF dim totalHits totalHits = rsTrackingLink.Fields.Item("TotalHits") + 1 ' update the tracking links for bookkeeping Set rsUpdate= Server.CreateObject("ADODB.Command") rsUpdate.Activeconnection = MM_myDSN_STRING rsUpdate.CommandText = "UPDATE tracking_links SET UniqueHits = '" & UniqueVisits & "', TotalHits = '" & totalHits & "' WHERE ID = '" & rsTrackingLink.Fields.Item("ID") & "'" rsUpdate.Execute 'send them to the right place Dim url url = Request.QueryString("u") IF url <> "" THEN Response.Redirect (url) ELSE Response.Redirect (rsTrackingLink.Fields.Item("URLRedirect")) END IF rsUpdate.ActiveConnection.Close() rsVisitor.ActiveConnection.Close() rsTrackingLink.ActiveConnection.Close() %>