Avatar billede fommy Nybegynder
10. februar 2007 - 22:40 Der er 6 kommentarer og
1 løsning

Anti flood på mail

Jeg har en formular der bruges til at sende mails.
Jeg vil gerne have den sikret så en bruger ikke bare kan trykke opdater side og så sender den igen og igen.
Der skal gå 60 sek inden man kan sende igen.
Jeg kan dog ikke lige greje hvordan det kan fixes bedst.
En der har en idé?
Avatar billede driis Nybegynder
10. februar 2007 - 22:43 #1
Registrer tid for afsendelse af mail i session.
Ved forsøg på afsendelse af mail, læs tidspunkt fra session. Hvis der er gået over 60 sekunder, tillad mail. (Og hvis elementet ikke findes i session, tillad mail).
Avatar billede fommy Nybegynder
10. februar 2007 - 22:54 #2
Yeps, det må være måden at gøre det på.
Jeg prøver lige at fabrikere noget og se om jeg kan få det til at virke..
Avatar billede fommy Nybegynder
10. februar 2007 - 23:08 #3
Når mailformen sendes afsted bliver der sat en session:

Session("check") = Round(Timer())

Når du prøver at sende formen igen, checkes der hvor lang tid der er gået:

If (Session("check") + 30) > Round(Timer()) Then
  Response.Write "Du må ikke floode!"
Else
  SendMail()
End if

I det her tilfælde har jeg sat tiden til 30 sek. Det burde være fint.

Tak for inspirationen driis. Læg lige et svar så du kan få nogle point :)
Avatar billede driis Nybegynder
10. februar 2007 - 23:55 #4
Ok, her er et svar.
Avatar billede cpufan Juniormester
11. februar 2007 - 12:27 #5
jeg tror nu ikke timer() arbejder i sekunder
Avatar billede driis Nybegynder
11. februar 2007 - 13:21 #6
cpufan > Jo, Timer() i ASP returnerer faktisk sekunder.
Avatar billede fommy Nybegynder
11. februar 2007 - 14:37 #7
Timer() tæller antal sekunder siden midnat
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