22. september 2004 - 11:45Der er
8 kommentarer og 1 løsning
begræns tilmelding konkurrence til 1 gang om dagen
Jeg skal lave en tilmeld-til-konkurrence funktion i asp hvor brugeren skal svare på 1 spørgsmål : Hvis de svarer korrekt skal navn, adresse, email + svaret lagres (i en access db) ...ellers skal de have en besked om at de har svaret forkert - nu kommer så spørgsmålet : Hver bruger må KUN svare 1 gang om dagen ... så datoen for svaret skal gemmes og checkes op mod f.eks. emailadressen ....så samme bruger ikke kan svare 100 gange samme dag ...hvordan skal asp-koden se ud ?
når du opretter en cookie hos en bruger har den en udløbstid - det vil sige et bestemt antal minutter, timer, dage m.m. som den vil eksistere hos brugeren - i det her tilfælde 24 timer. cookien (der jo er en tekstfil) vil automatisk få et tidsstempel (fx. 22-10-2004, kl. 14.19.24). Brugerens computer vil så selv løbende tjekke hvilke cookies der er udløbet og fjerne dem der er udløbet.
når brugeren fx. 20 timer efter deltagelse konkurrencen tænder for sin computer vil cookien stadig eksistere, indtil der er gået 4 timer yderligere.
Umiddelbart ville den bedste måde være altid at gemme e-mail og dato også selvom der er svaret forkert, så gem status for om svaret er rigtigt/forkert. Cookies kan nemt slettes og derved får man adgang til et nyt forsøg.
IP logging, er en anden medtode, så en IP adresse kun kan svare inden for en dag. Ulempen er at nogle ar dynamisk IP så ved at logge af og på igen kan de forsøge igen. Samt flere der sidder bag samme fireware har samme IP selvom det er flere forskellige PCer.
Ja hvis du gemme now i databasen så kan du tjekke inden nu gemmer de nye gæt om der findes et gæt forvejen:
sql "select * from tabel where dato >= dateadd('d',-1,now()) and email = '" & email & "'" set rs=Conn.Execute(sql) if rs.EOF then 'indsæt gæt sql = "insert into (dato,email,...) values(Now(),'" & email & "',...)" conn.Execute(sql= Response.Write "Tak for dit gæt else Response.Write "Du har gætte før i dag, du må først gætte igen i morgen" end if
tak for hjælpen, webbe og eagleeye... jeg har brugt din kode, eagleeye, smid et svar, så giver jeg point ....det er som altid ikke bare svar på et spørgsmål men flere man får her på eksperten. Genialt at bruge EOF på den måde. Fedt også at få argumenterne omkring cookies og IP logging. Smid svar begge to så giver jeg også gerne nogle point til dig, webbe. Det du skrev kan jeg bruge i noget andet jeg sidder og fidler med ;-)
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.