[PHP] Cookie time-out > 1 uur..?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Obi
  • Registratie: Januari 2000
  • Laatst online: 02-09 07:57
Yo Tweakers en tweakerinnen...

Ben bezig met het maken van een polletje, hierin schrijf ik een cookie die ervoor zorgt dat je per week maar één keer kunt stemmen.. Cookie wordt alsvolgt geschreven (bij het submitten van een stem):

PHP:
1
2
setcookie ('Qdancepoll', $poll_id, time()+604800, '/');
header("Location:" . $HTTP_SERVER_VARS['HTTP_REFERER']);



En bij het polletje wordt gekeken hoe het met je koekje zit, om te checken of de vragen of de resultaten weergegeven moeten worden:

PHP:
1
2
3
4
5
<?
if ($HTTP_COOKIE_VARS['Qdancepoll'] == $poll_id)
   {
       $total_votes = array_sum($vote_data);
?>



Het is allemaal leuk & aardig, het lijkt ook te werken, als je gested hebt en je komt terug zijn de resultaten te zien, het koekje wordt gewoon geschreven.. Alleen het gekke is dat je na een uur weer gewoon kunt stemmen... Mis ik iets..? Klopt er iets niet..? Ben niet een vreselijke held in de wereld van de PHP, maar ik zie écht niet waar 'ie nou dat uur vandaan haalt :?

Acties:
  • 0 Henk 'm!

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 16-09 09:15

Janoz

Moderator Devschuur®

!litemod

Om het koekje ook werkelijk te laten zetten moeten je argumenten zich tegenwoordig aan wat strengere regels houden. Nu ken ik de volgorde niet precies, maar iig IE6 verwacht ook een servernaam.

Controleer daarnaast ook ff of de tijd in seconde of in miliseconde meegegeven moet worden. In het laatste geval je tijd nog ff vermenigvuldigen met 1000.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Acties:
  • 0 Henk 'm!

  • T.T.
  • Registratie: April 2000
  • Laatst online: 15-07 15:34

T.T.

Sowieso

http://www.php.net/manual/en/function.setcookie.php

ik weet niet of dit helpt, maar probeer het volgende eens:
Problem with cookie and IE 5.x?
Not consitent?
It look like IE as stop accepting a timestamp "time() + 3600"
in setcookie ("TestCookie", "TEST", time() + 3600);// an hour in the future

strftime("%A, %d-%b-%Y %H:%M:%S MST", time()+3600)
instead and it will work
of:
I Noticed that some versions of IE 6.0 do not hande cookies correctlly. The solution is to quote the expire time.

SetCookie("visitor",$cookievar,"time()+3600");

I havn't heard of this a lot so I am assuming it is not all releases of IE6, but in attempt to program for everyone it is a good idea to add the quotes. It can't hurt

Acties:
  • 0 Henk 'm!

  • Obi
  • Registratie: Januari 2000
  • Laatst online: 02-09 07:57
Janoz: Het koekje wordt wel gezet (IE6), dat lijkt het niet te zijn.. Inhoud van het opgebakken deeg:

Qdancepoll
3
www.q-dance.nl/
1536
3648722432
29527083
286796208
29527077
*

Bij "time()+3600" is het ook een uur, dus milliseconden zijn het niet... Tjeempie; vind het maar vaag :)


T.T.: Thanx, ik ga het even proberen, tot over een uur ;) (kijken of het werkt :P)

Acties:
  • 0 Henk 'm!

Verwijderd

Hmms ik heb ook gisteren een poll-systeem gemaakt.. maar ik zie nu ook dat mijn koekjes (onbeperkte lifetime) zijn verdwenen. Opslaan in een database kan een optie zijn... zo heb ik het maar opgelost

:) Leuk trouwens om je hier weer eens te zien Obi! :)

Acties:
  • 0 Henk 'm!

  • Obi
  • Registratie: Januari 2000
  • Laatst online: 02-09 07:57
Yo Delta :)


T.T., met de tweede optie werkt het koekje helemaal niet meer (de aanhalingstekens).. De eerste moet ik nog ff proberen....
Pagina: 1