10. august 2008 - 15:31Der er
6 kommentarer og 1 løsning
Session / Cookie asp hjælp tak
Lidt hjælp tak
Jeg har en side som tæller hits og opdatere dem i databasen. Mit problem er at disse hits, som bliver talt op i databasen, kun skal tælles op hver 20 min ca. sådan at folk ikke bare opdatere siden flere gang, og så opdatere databasen sig også derefter. Kun 1 post registering pr. 20 min. pr. person.
Når der bliver klikket på dette link, skal det kun tælles som en visning. hver 20 min. ------------------------------------------------- <a href="side.asp?id=<%=rs("id")%>" -------------------------------------------------
Her har jeg update delen, som jeg gerne vil have en if session på. Og evetuelt cookie afhængig af hvad der er den bedste løsning ------------------------------------------------- <% strSQL = "UPDATE tabel SET hits = hits +1 where id = " & request.querystring("id") conn.execute(strSQL) %> -------------------------------------------------
Sådan som jeg lige forstod det, så burde du være i stand til at bruge sessions til dette.
Du skal have din "Session.Timeout = 20" for 20 minutter
if not session("tid") = true then if request.querystring("id") <> "" then session("tid") = true session.timeout = 20 end if response.write "du har nu set en side" end if
if session("tid") = true then response.write "du har allerede set siden engang inden for de sidste 20 minutter" else strSQL = "UPDATE tabel SET hits = hits +1 where id = " & request.querystring("id") conn.execute(strSQL) end if
Jeg ville nok prøve noget i den stil, er ikke helt sikker om det gør hvad du skal bruge, kan være andre lige kan se lyset hehe
Jeg synes bare ikke det fungere som ønsket. Jeg forklarer lige nærmere.
Hvor gang folk har været inde, og læse et post indlæg fra databasen. Vil jeg gerne have at det bliver talt 1 gang. Men hvis så samme person hopper ind og læser post indlægget igen indenfor 20 min. skal dette ikke registeres i databasen. Så vi skal have fat i nået id=<%=rs("id")%> på hver enkelte post.
Ah ok, ja så skal det laves på en lidt anden måde, jeg kan lige kigge lidt videre på koden i morgen når jeg lige har bedre tid, men det er muligt at bruge session stadig
Når man så går ind og læser en post sætter man 2 sessions, en med id'et på den post man har læst og så en dato og så kan man tjekke på de 2. Dato formatet i session skal nok formateres til kun at gemme time og minutter så det kan være lidt nemmere at tjekke på.
og så er det bare at lave noget
if session("klokken") - now(minutter) <= 0 then 'opdater tabel, tæl op else 'ikke tæl op end if
Jeg har lige kigget problemet igennem igen, og du skal lave din session lidt om, (jeg ved ikke om det er er teknisk muligt dog) men i stedet bare for at sætte en alm session så skal du have 2 værdier i den.
noget i den stil, så har du tidspunktet for hver post du læser, jeg ved ikke om man kan gøre det på den måde og i så fald hvordan man nemmest kan få fat på de 2 værdier der ligger i sessionen.
Hvis man ikke kan gøre det sådan så tror jeg at du er nødt til at gemme det i en cookie, og der kan jeg egentligt ikke hjælpe dig.
Men så har du et udgangspunkt at gå efter, med at gemme et post id og et tidspunkt og så hente de ting ud fra cookien igen.
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.