I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
CREATE TABLE clicks (id INT(6) NOT NULL auto_increment, sessionid INT(11), linkid INT(6), PRIMARY KEY(id));
1. Når siden loades checker du om der i en cookie findes et sessionid, hvis ikke sætter du Response.Cookies(\"sessid\") = Session.SessionID
2. Du checker i DB\'en:
sql = \"SELECT id FROM clicks WHERE sessionid=\" & Request.Cookies(\"sessid\") & \" AND linkid=\" & id\'et_på_linket
If Rs.BOF Then opdater_din_hits_tabel sql = \"INSERT INTO clicks (sessionid,linkid) VALUES (\" & Request.Cookies(\"sessid\") & \",\" & linkid 6 \");\" end if
En QUICK AND DIRTY. Du kan lave en mellemside som bliver kaldt med en parameter og redirecter til den side brugeren har kilkket på.
Mellemsiden laver så noget i stilen med if instr(1,session(\"RedirectedPages\"),URL) > 0 then response.redirect (\"www.whereever.com\") session(\"RedirectedPages\")=session(\"RedirectedPages\") & URL response.redirect URL
Du kan også lave en mellemting mellem denne og tdaugaard\'s svar.
tdaugaard:> Og den mest elegante, indrømmet. Men du skal huske at SessionID ikke er unikt, så det ville være bedre at bruge en anden counter. Jeg går ud fra at du vil kører din kode på en mellemside.
tdaugaard:> sådan er det officielt, men en bug i iss\'en gør at den counter der bruges til SessionID først bliver opdateret når sessionen timer ud. Jeg har selv haft det problem med et statestik system.
set links= session(\"links\") if links=\"\" then set links= createObject(\"scripting.dictionary\") end if if not links.exist(linkid) then links.add linkid, 1 end if set session(\"links\")
set links= session(\"links\") if links=\"\" then set links= createObject(\"scripting.dictionary\") end if if not links.exist(linkid) then links.add linkid, 1 \'tæl hit op her end if set session(\"links\")
tdaugaard:> Jeps. Et godt kompromi :) Jeg ville måske tilføje en lille komando der fjernede alle oplysninger om sessionen fra databasen når sessionen timede ud og en funktion der fjernede data om alle sessions når webserveren genstartede.
Hvorfor vil i absolut have sessionsoplysningerne ind i en tabel i databasen. Hold dog dog sessions oplysningerne i sessionsvariable. Det må sgu være hurtigere at rode lidt med et dictionary end det er at lave et ekstra kald i databasen.
oswald:> se det er her \"problemet\" ligger. Grunden til at jeg gemmer ID\'et i en cookie er jo netop at de vil beholde deres \"gamle\" SessionID hver gang de besøger siden og på den måde kan jeg checke om de har besøgt en side, et link or so før.
Så hvis jeg tømmer tabellen once in a while så vil det se ud som om at de ikke har stemt f.eks. som det er i mit tilfælde.
hey, hey. Nu begynder i at rode med funktionaliteten i scriptet.
Det kan selvfølgeligt godt være at det er det er meningen, men så får man jo ikke et hit fra en der kommer ind igen lidt senere på siden. Det kan da ikke have sin rigtighed
det kommer an på hvad jamal_s skal bruge sin hitcount til, men der bliver ikke så meget man kan konkludere statistisk udfra det hitcount man får. Andet end hvor mange unikke brugere der nogensinde har været på sitet. (og der er en unøjagtighed når brugerne sidder ved andre maskiner)
tdaugaard:> du har ret, den anden løsning vil betyde at de kunne stemme forfra hver gang de fik et nyt SessionID. Men desværre forhindre en cookie ikke \'ondsindede\' personer i at stemme flere gange, den gør det bare mere besværligt. ;)
forøvrigt jamal_s:> Et ip nummer identificerer ikke nødvendigvis en specifik maskine, da proxy servere og visse firewall\'s giver alle udgående kald samme ip nummer.
Jeg har lige snakket analogt med Rune (runesoft), og han har forstået spørgsmålet på en anden måde. Kan vi ikke lige få beskrevet hvad kravspekken til funktionen helt nøjaktigt er?
jamal_s:> kender dem ikke, men dette site har ikke gjordt det godt nok. (Jeg bliver ved med at skulle logge ind selv om jeg beder sitet om at huske mig) ;)
runesoft:> smid et DATETIME felt på, check med DateDiff() om der f.eks. er gået en time, if so, opdater recorden med now() og tæl et hit mere. Hvis ikke lav intet.
oswald:> det ved jeg, men det er risikoen. Der er ingen måde hvorpå du kan sikre dig 100% at brugeren kun kan stemme een gang.
jamal_s:> Sådan som jeg ser det fundamentale problem er det at du vil have et anonymt site, hvor du vil gemme information om brugeren. Så det er et Logisk problem ikke er praktisk ;). Har du overvejet at lade folk logge ind?
når der klikkes på et link bliver siden out.asp kaldt med et Link ID. Out.asp tjekker om der findes en cookie(\"sessid\") og hvis ikke så laves den med et fortløbende nummer. databasen opdateres hvis den pågældende sessid ikke allerede har været der out.asp redirecter til linken.
jamal_s:> Hvis det er dig selv der betaler så er det for dyrt. Køb en god bog og spar differancen. Desuden er dette problem ikke så meget ASP relateret, men mere gennerelt programmerings teknisk og det er noget der kommer med tiden. Er i ikke enige tdaugaard og runesoft? fortvivl ikke, der er kommet mange godt forslag, tyg på dem og så vend tilbage :)
tdaugaard:> Ja det kan være ;), men et par års blod, sved og tåre bag skærmen gør også underværker. Det lyder i det hele taget som om det er en større mundfuld.
Jeg kan varmt anbefale at snuse lidt rundt på eksperten. Og se hvad folk har lavet. Til ASP kan jeg ikke forestille mig at et kursus kan gøre nogen nytte, så vil jeg foretrække en god bog. Med SQL og programmerings teknik (og her er det jo faktisk ikke programmeringsteknik, men mere web teknik), tror jeg at kurserne vil gøre godt:-)
tak for de mange forslag :) *s* nu er det tid til at lukke...
Synes godt om
Ny brugerNybegynder
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.