Vraag & Antwoord

Webprogrammeren & scripting

Cookies plaatsen op computer met verkeerde tijd of tijdsvers

12 antwoorden
  • Stel ik plaats een cookie dat een half uur geldig is op een computer waarvan de tijd een uurlater staat dan die van de server. Dan wordt het cookie dus nooit geplaatst, omdat deze geldig is tot een half uur geleden (bekeken vanuit de gene die de pagina opvraagt). Maar toch wil ik dat daar een cookie komt, dat een half uur blijft.. Hoe is dit op te lossen? Alvast bedankt.. Sander <font size=-1>[ Dit Bericht is bewerkt door: veles op 2002-01-29 20:57 ]</font>
  • Dan moet je de verloopdatum uitrekenen op de client en dus het koekje met een javascriptje aanbrengen: [code:1:a919876243]&lt;script&gt; var today = new Date() var expires = new Date() expires.setTime(today.getTime() + 1000*60*30) document.cookie = &quot;krakeling=&quot; + value) + &quot;; expires=&quot; + expires.toGMTString() &lt;/script&gt;[/code:1:a919876243]
  • En wat nou als ik het koekje met PHP wil plaatsen? (server-sided dus)
  • Nou, gewoon dat javascript echoën. Het is niet zo dat je server-sided een cookie plaatst. In jouw geval wordt aan de serverkant de expire-tijd vastgesteld en in de header van de pagina meegestuurd om door de client in de cookiejar te zetten. Die expire-tijd moet echter pas op de client worden bepaald.
  • Ja inderdaad, maar het is raar dat de browser dat koekje niet verrekent met de tijd van de server (die wordt ook in de header meegestuurd). Naja, tanx..
  • Ik weet niet precies hoe je in PHP een koekje maakt, maar zal wel zoiets zijn als: header(&quot;cookie&quot;, &quot;naam&quot;, &quot;waarde&quot;, expires) bij expires zet je dan Now of Date of new Date en dan wordt op de server eerst de tijd ingevoegd en die wordt hard naar de gebruiker gestuurd om de ontvangende browser te vertellen welke houdbaarheid hij op het koekje moet zetten. In dat javascript wordt de functienaam new Date() gestuurd en wordt dus pas op de client bepaald wanneer bederf intreedt. Ik zie daar niks raars aan... er staat trouwens nog een ) teveel in mijn voorbeeldje.
  • Ik had ook al een script gemaakt met PHP, maar dat werkt dus alleen bij mensen waarbij de tijd hetzelfde staat als de tijd van de Server. Het is raar dat de browser dat niet omrekent, want daardoor ben je niet in staat met PHP koekjes te plaatsen die bijvoorbeeld een uur geldig zijn. In veel gevallen zal het wel werken, maar in veel meer gevallen niet.
  • Je hoeft in PHP een cookie niet per sé te schrijven via de header, het kan ook gewoon met de functie [b:761050ddc5]setcookie()[/b:761050ddc5]. Voor meer info: - [url=http://www.php.net/manual/en/function.setcookie.php]http://www.php.net/setcookie[/url] - Basje.
  • Dat is totaal niet van belang, hij komt hoe dan ook in de header. Het kan op meerdere manieren ja..
  • Dit is wel van belang, want setcookie() accepteert voor de expire-parameter alleen een Unix Timestamp. Het voordeel hiervan is dat de browser &quot;weet&quot; voor welke tijdzone het cookie is bedoeld en de expire zo zal omzetten dat deze op de juiste manier werkt. [edit] Dit is dus zodat je jezelf kan controleren... [/edit] - Basje. _________________ [i:fffb7106e7]When all else fails, read the manual.[/i:fffb7106e7] <font size=-1>[ Dit Bericht is bewerkt door: BasHamar op 2002-01-30 18:25 ]</font>
  • Hmm, ik gebruik wel degelijk setcookie(), maar toch weet de browser het niet.. Rare shit, die cookies
  • Ik heb mijn buik vol van al die cookie's :grin:

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.