login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Iets na een bepaalde tijd doen...

Offline Gamezhoek - 24/06/2006 17:05
Avatar van GamezhoekHTML interesse Ik heb op mn site gedaan dat je ieder uur op iets kan stemmen.. Je ziet dan dus een form.
Iedere keer als je stemt word jouw ip in de database opgeslagen in het veld 'ip'. De datum+tijd worden in het veld 'time' opgeslagen met als type 'datetime'.
Nu gebruik ik dit om te controleren of je weer mag stemmen:

  1. $ip = mysql_query("SELECT id FROM mood WHERE ip='".$REMOTE_ADDR."' AND time>NOW()-3600");
  2. if(mysql_num_rows($ip) < 1)
  3. {
  4. //De form
  5. }

Als hij niks selecteerd krijg je dus het form te zien.
Die form hoor je pas 1 uur na het stemmen weer te zien, maar het probleem is dat je hem al na ongeveer 2 minuten te zien krijgt.
60 seconden x 60 minuten is toch 3600? 

Waarom werkt dit niet..

3 antwoorden

Gesponsorde links
Offline marten - 24/06/2006 17:10
Avatar van marten Beheerder NOW() levert in de database 17:09:22 op

Dit kan je beter eerst even omrekenen met mktime()
Offline Rens - 24/06/2006 17:11 (laatste wijziging 24/06/2006 17:15)
Avatar van Rens Gouden medaille

Crew algemeen
Maak de query dan zo:
  1. "SELECT id FROM mood WHERE ip='".$REMOTE_ADDR."' AND time>".(time()-3600);

Is sneller als eerst met mktime een datum om te rekenen denk ik...

edit; En i.p.v. $REMOTE_ADDR moet je $_SERVER['REMOTE_ADDR'] gebruiken...
superglobals
Offline Gamezhoek - 24/06/2006 21:53
Avatar van Gamezhoek HTML interesse @ marten, ik snap niet veel van mktime...

@ Rensjuh, ik heb het geprobeerd. Maar er staat nu al een paar uur dat ik pas het volgend uur mag stemmen. Het werkt dus niet echt. 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.338s