login  Naam:   Wachtwoord: 
Registreer je!
 Forum

timer?

Offline elecomte - 18/01/2007 11:07
Avatar van elecomteGrafische interesse Ik wil het volgende scripje maken.
(de beveiling verzorg ik zelf, dus hierop moet er nog niet gelet worden in het script)

als ik via een pagina een user id in de tabel members>id het level verander in 1 (komt van nul) word hij donator.
Daarnaast, moet het level dertig dagen later automatisch terug 0 worden. Welk script zorgt hier ook voor?

7 antwoorden

Gesponsorde links
Offline Kr4nKz1n - 18/01/2007 11:17 (laatste wijziging 18/01/2007 11:17)
Avatar van Kr4nKz1n Onbekend Moet je cronjobs gebruiken.

Dan maak je een aparte pagina, deze pagina wordt elke dag bezocht (door het systeem zelf). Naast de status zet je ook een tijd bij het veranderen na donateur.

Op deze pagina (die niet door gebruikers bezocht mag worden), zet je een query die alle statussen bewerkt waarvan de tijd is verstreken.

  1. <?
  2. //Bewerk naar donateur
  3. mysql_query("UPDATE members SET level=1, leveltime='".mktime(0, 0, 0, date("d"), date("m"), date("y"))."' WHERE .....");
  4.  
  5. //De pagina voor de cronjob
  6. mysql_query("UPDATE members SET level=0 WHERE leveltime<'".time()."'");
  7. ?>

Zoiets denk ik 

Kan een denkfout o.i.d. in zitten.
Offline Berten - 18/01/2007 11:18 (laatste wijziging 18/01/2007 11:22)
Avatar van Berten PHP beginner OF je gebruikt cronjobs zoals hierboven

of je controleert bij elke klik

dit moet in ieder geval:

zet in de tabel de datum waarop het level veranderd werd naar donater.
Check dan elke keer als blijkt donater=1
of de datum van toen - huidige datum > 30

mijn oplossing:
(let wel op die van hierboven is veel beter)

  1. <?
  2. function getdays($day1,$day2) // deze code komt van php.net
  3. {
  4. return round((strtotime($day2)-strtotime($day1))/(24*60*60),0);
  5. }
  6.  
  7. getdays($begin,$end);
  8.  
  9. $query = "select level from members where ID=x";
  10. $level = mysql_result(mysql_query($query),0);
  11. if ($level == 1) {
  12. $begin = mysql_result(mysql_query("select datumlevelchange from members where ID=x"),0);
  13. $end = date("Y/m/d");
  14. $dagentussen = getdays($begin,$end);
  15. if ( $dagentussen > 30) {
  16. mysql_query("update members set level=0 where ID=x") or die(mysql_error());
  17. }
  18. }
  19. ?>
Offline elecomte - 18/01/2007 11:32
Avatar van elecomte Grafische interesse kent niemand toevallig tutorials over cronjobs?
kdenk dat ik dat beter even lees, want lijkt me geen eenvoudige zaak.
Offline Kr4nKz1n - 18/01/2007 11:45 (laatste wijziging 18/01/2007 11:46)
Avatar van Kr4nKz1n Onbekend Welke administratie paneel heb je om je site te beheren?
DirectAdmin?
Plesk?
Control Panel?

Artikel:
http://www.phpfreakz.nl/artikelen.php?aid=44
Offline elecomte - 18/01/2007 19:39
Avatar van elecomte Grafische interesse ik heb control panel X
en zie daartussen inderdaad cron jobs staan, maar dat lijkt me precies een code generator.
Offline Kr4nKz1n - 18/01/2007 19:42
Avatar van Kr4nKz1n Onbekend Kijk maar even goed.
Het is best simpel.
Offline elecomte - 18/01/2007 19:46 (laatste wijziging 18/01/2007 19:58)
Avatar van elecomte Grafische interesse hoe zeg je nu aan je server, dat ie iets moet doen?

ik heb via via ondertussen door dat je via cronjobs ook bacups kan doen.
Stel dat ik telkens om een bepaald uur mijn tabel die game heet en daarin alle ondertabellen, (momenteel enkel members) wil backupen.

Om die cronjob via mijn cpanel te starten, heb ik door hoe het werkt. Maar hoe moet het script eruit zien?
Moet er ook een link in naar mijn config? is het een php bestand....
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2025 Sitemasters.be - Regels - Laadtijd: 0.214s