webForumDet fria alternativet

räkna klick och länk

ASP

22 svar · 428 visningar · startad av pellsäter

Medlem sedan aug. 2000526 inlägg
Frågan#1

http://www.amts.nu/newsite/hits.asp?id=tracker.tradedoubler.com/click?p=8848&a=797452

har börjat med Tradedoubler på siten... men länken funkar inte.... jag skickar den till sidan hits.asp för att räkna antalet klick... porblemet är då att länken som ligger i databasen ser ok ut men den skickar besökaren till hela länken utom
&a=797452

det tar den bort

Nån som vet varför
Använder Access

Medlem sedan feb. 200112 078 inlägg
#2

När jag klickar på länken ovan, så kommer jag till en sida som säger "Can not find site id or program id. Please inform the webmaster.", vilket borde innebära att felet ligger hos TradeDoubler och inte i ditt script.

RED. Nja, vänta lite nu. Givetvis blir det så, du har ju en querystring i en querystring där nere. Eftersom du har en & i querystringen till TradeDoubler så kommer den första querystringen (på din sida) att tro att det är dens egen. Därför klipper den av där.

Medlem sedan aug. 2000526 inlägg
#3

ok tack..

finns det nån käck lösning på det utan för den skull behöva ta boret själva klickräknandet?

Medlem sedan feb. 200112 078 inlägg
#4

Jajamensan, jag var bara tvungen att läsa på lite om huruvida det fungerade eller inte. ;)

Först; hur ser koden ut i 'hits.asp'?

Medlem sedan aug. 2000526 inlägg
#5

har inte den här tyvärr... den plockar hur som helst ut infon från databasen och skickar vidare med en response.redirect

Medlem sedan sep. 20026 425 inlägg
#6

Den här koden kan fungera, du får dock modifiera enligt fält i databasen. Din länk måste se ut så här: sida.asp?id=x där x är ett nummer.

<%
Dim idnr, Cn
idnr = Request.Querystring("id")

If Not IsNumeric(idnr) Then 'ingen siffra
Response.Write "Det måste vara en siffra på id, inte text"
Else 'siffra
idnr = Cint(idnr)

Set Cn = Server.CreateObject("ADODB.Connection")
Cn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source ="& Server.MapPath("klicks.mdb")
Cn.Execute("UPDATE tbl_klicks Set Klicks=Klicks--1 WHERE Id=" & idnr)
Cn.Close : Set Cn = Nothing

Response.Redirect "http://tracker.tradedoubler.com/click?p=8848&a=797452"
End If
%>

Något så där borde koden kunna se ut - nu är det bara att modifiera och sedan klippa och klistra! :)

Förresten, det här är mitt 1000:e inlägg!

Medlem sedan aug. 2000526 inlägg
#7

så här ser koden ut i hits.asp

ID är själva http adressen
<%

url = Request.Querystring("id")
datum = date

Set conn = Server.CreateObject("ADODB.Connection")
conn.open "xxx"
sql = "UPDATE lankar SET hits = hits + 1, datum = '" & datum & "' WHERE lank = '" & url & "'"
conn.Execute sql

response.redirect "http://"&url

%>

Medlem sedan dec. 20003 887 inlägg
#8

En snabb kommentar bara... om du använder Access som du skrev ska din update (förutsatt att använder Date/Time fält för ditt datum) väl vara följande:

sql = "UPDATE lankar SET hits = hits + 1, datum = #" & datum & "# WHERE lank = '" & url & "'"
Medlem sedan aug. 2000526 inlägg
#9

nu ser filen ut så här... men den kommer inte vidare
Id är ett nummer som motsvarar en länk i databasen

id = Request.Querystring("id")
datum = date

Set conn = Server.CreateObject("ADODB.Connection")
conn.open "xxxxx"
sql = "UPDATE lankar SET hits = hits + 1, datum = '" & datum & "' WHERE id ="&id
Conn.Execute sql

Set rs = Server.CreateObject("ADODB.Recordset")
sql1 = "Select lank from lankar where id ="&id
rs.Open sql1

url = rs("lank")

response.redirect "http://"&url

Medlem sedan dec. 20003 887 inlägg
#10

Det kanske är så att längst upp på sidan bör du lägga till

<% Response.Buffer = True %>

och på slutet får du sedan köra med

url = rs("lank")

Response.Clear
Response.Redirect "http://" & url

Om sidan redan har skickats till klienten kan det strula med Redirect.

Medlem sedan aug. 2000526 inlägg
#11

hade med buffer innan och la till "clear" men det hjälper inte

kika på

http://www.amts.nu/newsite/lankar.asp

den lägger till hits i databsen men skickar inte besökaren vidare

Medlem sedan aug. 2000526 inlägg
#12

här är länken som jag klickar på i sidan innan

<a href="hits.asp?id=<%=rs("id")%>" target="blank">

Medlem sedan jan. 20032 285 inlägg
#13
id = CInt(Request.QueryString("id"))

Kanske hjälper? Vilken rad är det felmeddelandet syftar på?

Medlem sedan aug. 2000526 inlägg
#14

jag får inget felmeddelande alls... bara en tom sida.. det är som att den struntar i att utföra redirect

Medlem sedan jan. 20032 285 inlägg
#15

Jag får:

pellsäters sida skrev:

ADODB.Recordset error '800a0e7d'

The connection cannot be used to perform this operation. It is either closed or invalid in this context.

/newsite/hits.asp, line 23

Medlem sedan aug. 2000526 inlägg
#16

Set rs = Server.CreateObject("ADODB.Recordset")
sql1 = "Select lank from lankar where id ="&id
rs.Open sql1

den sista raden är rad 23.. varför får jag inget felmeddelande

Medlem sedan jan. 20032 285 inlägg
#17

Har du testat att skriva
id = CInt(Request.QueryString("id"))?

Medlem sedan aug. 2000526 inlägg
#18

japp... är det nåt fel med SQL satserna?

Medlem sedan dec. 20003 887 inlägg
#19

/R: Nu fungerar det visst :)

Medlem sedan aug. 2000526 inlägg
#20

gör det ??? hos mig funkar det inte

261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)