login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Per uur, cronjobs of php?

Offline lasdesigner - 27/01/2007 15:45
Avatar van lasdesignerPHP beginner Dag,

Ik wil dat er per uur een databasetabel word geupdate met 1200. Maar kan dit enkel met cronjobs of kan je ook kijken of date() gelijk is aan 11, 12, 13 etc etc? Ik denk het niet hè, maar ik wil het even zeker weten. Want mijn localhost ondersteunt geen cronjobs dus kan ik niet testen.

7 antwoorden

Gesponsorde links
Offline Rik - 27/01/2007 15:51 (laatste wijziging 27/01/2007 15:53)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Dat kun je doen met een bestandje lastupdated.txt met daarin een timestamp van de laatste update. Elke keer dat een pagina wordt opgevraagd vergelijk je de tijd in dat bestand met de huidige tijd. Als de tijd in het bestand + 3600 seconden minder is dan de huidige tijd is er dat uur nog niet geupdate, anders wel.

Edit:
Voorbeeldje (niet getest):
  1. <?php
  2. $last_update = file_get_contents('lastupdated.txt');
  3. $now = time();
  4.  
  5. $update_time = 3600; // Elk uur = 3600 seconden
  6.  
  7. if ($last_update + $update_time < $now) {
  8. // Update
  9. file_put_contents('lastupdated.txt', $now);
  10. } else {
  11. // Er is dit uur al geupdated
  12. }
  13.  
  14. ?>
Offline lasdesigner - 27/01/2007 15:52
Avatar van lasdesigner PHP beginner Hmm.. Dat vind ik teveel werk xD haha, dan is cronjobs denk ik toch makkelijker? Want ik ga het hierna toch hosten op een andere 'server'. Is er trouwens wel een mogelijkheid om cronjobs op je locale host te zetten?
Offline Rik - 27/01/2007 15:55 (laatste wijziging 27/01/2007 15:57)
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Ik heb even een voorbeeldje gemaakt, het valt best mee hoor.  

Cronjobs kan je volgens mij alleen op linux, maar met windows heb je wel geplande taken. Als je op je host geen cronjobs hebt kun je ook http://cronjob.de/ gebruiken.

Edit:
Als je met een cronjob normaal een bestand laat uitvoeren, kan je ook dat bestand gewoon laten staan, mijn stukje script ergens in je index.php zetten, en als er moet worden geupdate dat cronjob bestand includen.
Offline lasdesigner - 27/01/2007 15:57
Avatar van lasdesigner PHP beginner Je voorbeeld ziet er goed uit boekefalos, maar het ziet eruit als of het snel en simpel gehacked/veranderd kan worden van buitenaf de server? Of is dit niet het geval?

En stel er klikken 20 mensen op, gaat die 20x checken of die geupdate is? Dat is beetje onnuttig lijkt me? Daarom is cronjobs handiger te gebruiken denk ik. of heb ik ongelijk?
Offline Rik - 27/01/2007 16:03
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Als iemand dit wil gaan hacken zou diegene dat txt bestand moeten veranderen. Maar die zou je ook "boven" je document root kunnen zetten.

Je hebt gelijk dat hij dan elke keer gaat checken en cronjobs werken dan ook efficiënter. Maar dit kost bijna geen laadtijd op een pagina waar bijvoorbeeld met databasen wordt gewerkt. Het verschil zal je denk ik amper merken.

Ik zou niet zo snel een andere oplossing weten.  
Offline lasdesigner - 27/01/2007 16:08
Avatar van lasdesigner PHP beginner Hij werkt goed, dank je! Hij gaat nog snel ook! :d
Offline Wim - 27/01/2007 17:12
Avatar van Wim Crew algemeen
Citaat:
Is er trouwens wel een mogelijkheid om cronjobs op je locale host te zetten?


standaard geinstalleerd.

"Geplande taken" / "Sheduled tasks" onder windows, crontab onder linux
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.241s