Avatar billede kentora Nybegynder
05. oktober 2010 - 20:43 Der er 3 kommentarer og
1 løsning

getTimezoneOffset() - skal ikke kunne snydes

Er der en måde man kan sikre js date mod at man ændrer tidszonen på computeren?
Avatar billede intenz Novice
05. oktober 2010 - 20:50 #1
Nej. Javascript er client-side, dvs. køres på brugerens computer. Du kan ikke være sikker på noget som helst i javascript.

Du er nødt til at bruge dit server-side sprog til den slags.
Avatar billede Slettet bruger
05. oktober 2010 - 20:53 #2
du kan sammenligne brugerens tid med serverens, og gemme differencen.
- hvis differencen er (væsentlig) anderledes ved næste besøg, er der ugner i mosen.
Avatar billede kentora Nybegynder
05. oktober 2010 - 20:55 #3
Det er en side der helst ikke skal kunne vises før fredag, og efter mandag. Men man kan jo snyde sig til det ved at ændre tidszonen på computeren.

Serverside scripts kan kun have 1 tidszone, og kan ikke opsnappe brugerens tidszone, da det netop er serverside.
Avatar billede intenz Novice
05. oktober 2010 - 22:07 #4
Hvis det er _meget_ vigtigt at den ikke bliver vist før, ville jeg bruge serverens tid, og så drop tidszonen og sæt et fast tidspunkt.

Hvis den bare helst ikke skal vises før, så brug javascript. Men du kan ikke få nogen garantier her.

Den helt avancerede løsning kunne være en 'IP location' database på serveren, hvor du slår brugerens IP nummer op og får deres placering (land) og udregner tidszonen herfra. Det lyder bare lidt som overkill.

En anden overkill (koster $$$), kunne f.eks. være:
http://worldtimeengine.com/api/

Der kan være der findes gratis alternativer hvis du søger lidt.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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