Avatar billede hojben Novice
09. december 2004 - 16:39 Der er 37 kommentarer og
1 løsning

Tæl antal klik på link og smid i database

Hej,

Jeg har brug for noget kode som tæller antal klik på link og smider det i database. Jeg er ikke nogen haj indenfor programmering så derfor må jeg ha hjælp til det.

Takker på forhånd.

/Hojben
Avatar billede riversen Nybegynder
09. december 2004 - 16:46 #1
Først: Jeg svarer ikke fordi du har genoprettet, men fordi du lukkede lige for næsen af mig... tålmådighed ;-).

Jeg kan ikke ASP men kan hjælpe med idé.

Link kunne se sådan ud
<a href="linkhandler.asp?id=23">link</a>

Du opretter så en database over links. Fx

id      | adresse  | klik
-----------------------------
1      | side1.asp|  34
23      | side2.asp| 212

I databasen henter du så den adresse der har id 23 og inden du sender den besøgende til den side, tæller du antal klik op med 1 i databasen. Alt det foregår i linkhandler.php
Avatar billede riversen Nybegynder
09. december 2004 - 16:49 #2
linkhandler.asp selvfølgelig :-)
Avatar billede hojben Novice
09. december 2004 - 17:45 #3
HVA!!!! Riversen kan du ikke ASP?? *GG*

Ja problemet er at implementere det.. jeg er med på access delen. og har også en base jeg kan bruge til det formål da jeg bruger auto-ID i basen MEN kan *suk suk* ikke asp'e

for at du kan forstå helt hva jeg mener så skal det bruges til www.klaverportalen.dk hvor jeg vil tælle hvor mange klik hver klaverstemmer har fået.

og undskyld jeg lukkede før men troede ik jeg fik svar *G*
Avatar billede riversen Nybegynder
09. december 2004 - 17:51 #4
Jeg kan nok ikke hjælpe mere. Troede du kunne lidt ASP jvf. dit minisite.
Avatar billede hojben Novice
09. december 2004 - 17:54 #5
Jeg prøver, jeg prøver *suk suk*
Avatar billede riversen Nybegynder
09. december 2004 - 18:13 #6
ok
Avatar billede glen5000 Nybegynder
09. december 2004 - 18:45 #7
Hvis du laver databasen om riversen skriver, kan du lave det sådan

'Opret forbindelse til din database her

SQL = "Update TABLE set klik = klik + 1 where id = "& request.querystring("ID")
conn.execute(SQL)

SQL = "select adresse from TABLE where id = "& request.querystring("ID")
set rs = conn.execute(SQL)

adresse = rs("adresse")
set rs = nothing
close.conn
set conn = nothing
response.redirect adresse


Så skal du bare linke til denne side med id nummeret, så bliver klik talt en op og brugeren sendes vidre til den side linket føre hen til :)

Hilsen Glen
Avatar billede hojben Novice
09. december 2004 - 18:51 #8
Glen5000 > det lyder rigtig dejligt men jeg fatter jo minus.. :(

Som det er nu, finder brugeren en "stemmer" og får så vist stemmerens hjemmeside information med link. Det jeg så søger, er at når der klikkes på linket så skal databasen opdateres hvis der klikkes på linket. Ikke alle stemmere har link på informations siden.

Prøv at kigge på www.klaverportalen.dk og tjek en af de tilmeldte i højre side som IKKE har et link der hedder /tilmeldte/hovsa.htm
Avatar billede glen5000 Nybegynder
09. december 2004 - 18:56 #9
er det når man klikker på "Klik her for at gå til firmaets hjemmeside." at der skal tælles en op, eller er det når man klikker på navne ude til højre?
Avatar billede hojben Novice
09. december 2004 - 18:58 #10
Når man klikker på "klik her etc etc"
Avatar billede glen5000 Nybegynder
09. december 2004 - 19:07 #11
okay, men så ændre du linket

<a href = "http://www.piano-forte.dk" target = "_blank">Klik her for at gå til firmaets hjemmeside.</a>

til

<a href = "klik.asp?id=1" target = "_blank">Klik her for at gå til firmaets hjemmeside.</a>

for 1 er det id nummer i databasen hvor dette firmas hjemmeside adresse er gemt.

klik.asp

'Her skal connecter du til din database.

'Opdatere databasen ved at lægge 1 til klik i den række med det kaldte id nummer
SQL = "Update klik set klik = klik + 1 where id = "& request.querystring("ID")
conn.execute(SQL)

'Henter adresse på firmas hjemmeside
SQL = "select adresse from klik where id = "& request.querystring("ID")
set rs = conn.execute(SQL)

'Gemme adressen i en variable
adresse = rs("adresse")

'Lukker forbindelse til databasen
set rs = nothing
close.conn
set conn = nothing

'Sender brugeren til firmas hjemmeside
response.redirect adresse



I Databasen

tablenavn klik

id | adresse | klik
--------------------
1  | http:// |  1
2  | http:// |  10


Hver gang du opretter et nyt firma skal det så tildeles et nyt id nummer.

Håber du kan bruge dette :)
Avatar billede hojben Novice
09. december 2004 - 19:19 #12
Jeg forstår nogenlunde, men nu hvor fx www.piano-forte.dk er nummer 99 hvordan får jeg indhentet det nummer fra databasen?

Jeg regner med at det er noget i stil med %id% eller noget i den dur.

Hvad skal du vide for at du kan hjælpe?
Avatar billede glen5000 Nybegynder
09. december 2004 - 19:23 #13
Er de informationer der står(navn, adresse osv.) noget der bliver hentet fra en database. Eller er det et html dokument du selv har oprettet?
Avatar billede hojben Novice
09. december 2004 - 19:24 #14
html dokument som jeg selv har oprettet. (er igang med at ændre det til .asp filer)
Avatar billede hojben Novice
09. december 2004 - 19:25 #15
Felterne i databasen er:

| id | amt | by | firma | www | lokalt | tekst | sogeord | email | klik |
Avatar billede glen5000 Nybegynder
09. december 2004 - 19:27 #16
okay, men så skal du bare ændre linkte på den side hvor piano-forte står til

<a href = "klik.asp?id=99" target = "_blank">Klik her for at gå til firmaets hjemmeside.</a>

hvis altså deres link har id nummer 99 i databasen
Avatar billede hojben Novice
09. december 2004 - 19:29 #17
okay så det ID nummer skal jeg selv indtaste hver gang jeg opretter et nyt dokument?
Avatar billede glen5000 Nybegynder
09. december 2004 - 19:39 #18
ja, så lange du ikke har fået lagt informationerne om firmaerne ned i databasen. Men så snart du har fået dem lagt ned i databasen, så kan den selv finde id nummert.
Avatar billede hojben Novice
09. december 2004 - 19:40 #19
klik.asp lyder således:

'Her skal connecter du til din database.
' Skaber DSNLess forbindelse til DBen
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
Set myConn = Server.CreateObject("ADODB.Connection")
myConn.Open strDSN

'Opdatere databasen ved at lægge 1 til klik i den række med det kaldte id nummer
SQL = "Update firma set klik = klik + 1 where id = "& request.querystring("ID")
conn.execute(SQL)

'Henter adresse på firmas hjemmeside
SQL = "select www from firma where id = "& request.querystring("ID")
set rs = conn.execute(SQL)

'Gemme adressen i en variable
adresse = rs("www")

'Lukker forbindelse til databasen
set rs = nothing
close.conn
set conn = nothing

'Sender brugeren til firmas hjemmeside
response.redirect adresse
Avatar billede hojben Novice
09. december 2004 - 19:41 #20
og det vil den ikke :( viser bare hele koden.. (jaja jeg er en klovn men skal jo lære det)
Avatar billede glen5000 Nybegynder
09. december 2004 - 19:43 #21
du skal huske at sætte

<%

%>

uden om koden
Avatar billede hojben Novice
09. december 2004 - 19:47 #22
intern server error.. har givet tilladelse til at IUSR må skrive til databasen
Avatar billede hojben Novice
09. december 2004 - 19:48 #23
hvordan er det at jeg får skrevet asp fejlkoden?
Avatar billede hojben Novice
09. december 2004 - 19:52 #24
okay felterne har du ovenover. Tabellens navn er firma.
Jeg kan ikke hitte rede i hvor jeg går galt.. :(
Avatar billede glen5000 Nybegynder
09. december 2004 - 19:53 #25
funktioner -> internetindstillinger -> avanceret. Slå vis meddelser om uskedelige HTTP-fejl til
Avatar billede hojben Novice
09. december 2004 - 19:56 #26
Det har jeg.. Den skriver bare:
HTTP 500 - Internal server error
Internet Explorer

(har sat point op til 100)

mener bare at man i asp kan få den til at skrive noget mere.. fx at den ikke kan opdatere pga "fejlkode" ?
Avatar billede glen5000 Nybegynder
09. december 2004 - 20:05 #27
Den burde komme med en fejl meddelse ud over denne HTTP fejl. Skriver den ikke noget mere nede under?
Avatar billede hojben Novice
09. december 2004 - 20:07 #28
Avatar billede glen5000 Nybegynder
09. december 2004 - 20:11 #29
jeg får denne fejl:
Microsoft VBScript runtime error '800a01a8'

Object required: 'conn'

/klik.asp, line 10

Det er fordi jeg har skrevet conn og du bruger myconn
Avatar billede hojben Novice
09. december 2004 - 20:15 #30
klik.asp lyder: (efter rettelse af myconn)

<%
'Her skal connecter du til din database.
' Skaber DSNLess forbindelse til DBen
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("database.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open strDSN

'Opdatere databasen ved at lægge 1 til klik i den række med det kaldte id nummer
SQL = "Update firma set klik = klik + 1 where id = "& request.querystring("ID")
conn.execute(SQL)

'Henter adresse på firmas hjemmeside
SQL = "select www from firma where id = "& request.querystring("ID")
set rs = conn.execute(SQL)

'Gemme adressen i en variable
adresse = rs("www")

'Lukker forbindelse til databasen
set rs = nothing
close.conn
set conn = nothing

'Sender brugeren til firmas hjemmeside
response.redirect adresse
%>
Avatar billede glen5000 Nybegynder
09. december 2004 - 20:21 #31
ups det er
close.conn
Skal hedder
conn.close

min fejl :)
Avatar billede hojben Novice
09. december 2004 - 20:23 #32
hihi.
men samme fejl 500 :(
Avatar billede glen5000 Nybegynder
09. december 2004 - 20:26 #33
okay, jeg får en anden fejl. Prøv at fjern kryds i "vis meddelelse om uskadelige http-fejl"

Det kan godt være det er mig der tager fejl :) Det virker nemlig lige meget om der er kryds eller ej på min computer
Avatar billede hojben Novice
09. december 2004 - 20:30 #34
okay nu snakker vi samme sprog ;)

Microsoft VBScript compilation error '800a03f2'

Expected identifier

/klik.asp, line 21

conn.close.
-----------^

fjernede . og opdaterede.

får nu en fejl om at siden ikke eksisterer ???
smutter lige 10-15 minutter
Avatar billede glen5000 Nybegynder
09. december 2004 - 20:34 #35
Det virker da for mig. Jeg bliver sendt ind på den rigtigt side :)

Jeg kikker ind igen om 15-20 min. Hvis det stadig ikke virker :)
Avatar billede hojben Novice
09. december 2004 - 21:11 #36
DU er bare en julefidelifut!!! Takker en million gange.. Det virker jo kanont..

Skal bare lige have opdateret feltet "klik" til at være 1 frem for tomt i databasen for ellers tæller den ikke..

Juletak
Avatar billede glen5000 Nybegynder
09. december 2004 - 21:17 #37
Selv tak. Du kan sætte en default værdi, så de er 0 når du opretter den. Ved ikke om det retter de rækker du allerede har oprettet, men den vil i hvert fald automatisk sætte værdien til 0 når du opretter en ny række.

Og mange tak pointene :)

Glen
Avatar billede hojben Novice
09. december 2004 - 21:21 #38
Det vil den ikke gøre men kunne selvf. bare køre en update forespørgelse..

Du har fortjent de point :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester