Har jeg fået lavet mig et Ip Bannings system i ASP med slet funktion, nu skal jeg have lavet en Tilføj funktion, det kunne jeg godt selv lave, men jeg skal have lagt en expire kode på, så jeg kan sige, at han skal være bannet i en uge .. eller længere eller kortere tid .. Har prøvet at kigge på nogen andre ASP Banning systemer, og prøvet at gennemskue hvorn man gør, men det er ikke lykkedes for mig .. Så håber på i kan hjælpe mig med et Expire system ..
Det er jo bare at smide en endDate med på tabellen:
insert into banned(IP, endDate) values('aa.bb.cc.dd',date()+7)
Når du så tjekker for banned vælger du kun dem med en nyere dato
set rs = conn.execute("select * from banned where IP='aa.aa.aa.aa' and endDate<=date()")" if not rs.eof then response.write "Banned" response.end end if
Ja men hvis jeg så prøver at lave en Response.Write der hedder:
Response.Write " " & date()+7 & " "
Så kommer der til at stå 22 .. Men hvis jeg sætter den til dato den 28 foreksempel og siger han skal expire den den 4 i næste måned, så kommer der jo til at stå i date response 35 og ikk den 4 .. :S Eller hvad ?
Nej, den ved udemærket godt at date() er en dato så den bliver sat til datoen 7 dage senere. Disse to kald giver samme resultat: dato = dateadd("d",7,date()) dato = date()+7
dvs. Jeg skal lave If Statements for det antal Bannings gange jeg skal ha ? har: 1Time, 10 Timer, 1 dag, 7 dage, 1 måned, 6 måneder, 1 år og for altid .. Hvorn kommer koden så til at se ud ? altså den som skal indsætte dataerne ..
Altså hvis jeg sætter Expire til 10 timer, så skal den sætte i Expire feltet, tiden nu + 10 timer, og han kan ikk komme ind på siden før at der er gået de 10 timer .. På den måde..
Men i stedet for at lave tjekket i ASP, smider du det ind i selecten som et kriterie: set rs = conn.execute("select * from dinTabel where now()<=expire ...")
Også skal du bruge now() i stedet da date() ikke har klokkeslet med.
Hmm .. Det er jo bare tjekket til om man er bannet .. Hvorn skal det så se ud når jeg tilføjer ? Når jeg har 1 time, 10 timer, 1 døgn, 7 døgn, 1 måned, 6 måneder og 1 år og for altid ..
Få desværre nok ikke tid til at kikke på dette før efter weekenden. Hvis du ikke selv har fundet ud af noget inden da, så smid lige en kommentar herinde, så jeg får en mail, da jeg ellers nok har glemt alt om ?'et.
"from" er et reserveret ord i sql og skal omdøbes eller omkrandses med [].
Datoer i Access skal omkrandses af # og formateres til mm-dd-yyyy. Til det får du disse to funktioner. Den ene laver datoer uden klokkeslet, og den anden med klokkeslet (uden sek):
Function ConvertToSqlDate(fDato) dim SQLYear,SQLMonth,SQLDay SQLYear = Year(fDato) SQLMonth = Month(fDato) SQLDay = Day(fDato) SQLDay = right("0"&SQLDay, 2) SQLMonth = right("0"&SQLMonth, 2) ConvertToSqlDate = "#"& SQLMonth&"-"&SQLDay&"-"&SQLYear &"#" End Function
Læg mærke til at # er med i funktionen, så skifter du til MS-SQL eller MySQL engang skal du bare ændre funktionerne til den nye angivelse (' som alle andre DB bruger) og format (yyyymmdd eller yyyy-mm-dd)
Brug måned og år angivelse i din elseif på de sidste 3 i stedet for dage.
strLigeNu og strLigeNow kan angives direkte med now() og date() i stedet for de linjer du har nu.
Hele din side bliver derfor til:
Function ConvertToSqlDate(fDato) dim SQLYear,SQLMonth,SQLDay SQLYear = Year(fDato) SQLMonth = Month(fDato) SQLDay = Day(fDato) SQLDay = right("0"&SQLDay, 2) SQLMonth = right("0"&SQLMonth, 2) ConvertToSqlDate = "#"& SQLMonth&"-"&SQLDay&"-"&SQLYear &"#" End Function
Fandt ud af det .. :) heeh, Nåår, hvorn ser tjekket så ud ? det som tjekker om man er bannet .. Hvad vil være smartest ? at gøre det i Database udtrækket eller med en IF sætning .. Jeg vil foretrække noget med if sætning, for hvis ens ip er i databasen, så skal man Response.Redirect "banned.asp?ip=212.10.3.12" ...
Den har du jo allrede fordi du skal tjekke den i DB'en:
IP = "212.10.3.1" set rs = conn.execute("select * from banning where expire>now() and IP='"& IP &"'") if not rs.eof then 'Banned response.redirect("banned.asp?IP="& IP) end if
Skulle lige vende > om til < .. Før det virkede .. Selvom det jo burde være modsat .. :S Den siger jeg er bannet hvis den er sån her: < men ikk hvis den er > .. :S
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.