na 5 minuten script uitvoeren
Een tijd gaat lopen en daarna na 5 minuten er een script wordt uitgevoerd.
Maar ik heb geen flauw idee hoe ik dat voor elkaar moet krijgen.
Alvast hartelijk bedankt
Groeten,
Menno
sleep kan je mischien nog naar kijken zet dan wel de tijd limiet op 0 anders krijg je error na 30 seconden.
Maar dit is niet wat je wil. Vertel eens hoe je dit wil gaan toepassen? Wellicht kan je op het moment van klikken een record naar de database wegschrijven met een datetime veld daar in. Hiermee kan je later controleren of de 5 min al voorbij zijn en dus eventueel een actie ondernemen.
Maar het bouwen van dat gebouw kost 5 minuten.
Dus de server moet onthouden dat hij na 5 minuten, het script bouwgebouw.php moet uitvoeren, dan is het gebouw succesvol gebouwd.
Elke seconden dus kijken...
Edit:
Hoeft niet pressé lid is natuurlijk niet altijd online gewoon de records updaten voordat de content geladen word.
Gewijzigd op 01/01/1970 01:00:00 door Mebus Hackintosh
Je kan gewoon bij ieder gebouw in je tabel een datum zetten die 5 minuten in de toekomst ligt, bij het ophalen van je gebouwen haal je dan alleen de gebouwen op die in het verleden liggen t.o.v. nu. (<=)
Maak zoals Stefan al heeft gezegt een tabel aan waarin je de huidige tijd + 5 minuten opslaat.
Deze controleer je zodra de pagina word aangeroepen of het al voorbij is.
cronjobs zijn hier zeker niet voor nodig. Je kan toch een tool maken dat elke keer tijdens een pagina load een script controleert of er al gebouwen af zijn? Een gebouw duurt 5 minuten, een sky scraper misscien wel een dag. Dan heb je allemaal wisselende crons lopen. Een datum in de toekomst opslaan lijkt mij indd het beste. Crons echt vermijden.
kan je in de functie bouwGebouw een ajax request naar de php doen en zo dan je gebouw terugsturen of je kan ook gewoon in de functie je form versturen en je pagina helemaal laten vernieuwen.
zijn ze wel al de rest van hun ingevulde waardes kwijt natuurlijk
In javascript zijn dit soort functies (interval oa) in millisecondes. 300 is dus vrij snel na een refresh... 300000 zou beter zijn.
Ik zouw het niet via Javascript/Ajax doen.. Als je het niet goed beveiligt zouw je het zo kunnen misbruiken.
Dat niet alleen... je moet 5 min je browser venster open laten staan. Dat kan je niet verwachten. Als je 'm dan wegklikt moet je weer opnieuw beginnen... Maar wat is er mis met een datetime record naar je database wegschrijven? Kan je netjes alles loggen...
Quote:
edit: Hoeft niet pressé lid is natuurlijk niet altijd online gewoon de records updaten voordat de content geladen word.
Dat probeerde ik hier al een beetje duidelijk te maken dat die records gewoon worden geupdate wanneer de huidige tijd verder in de toekomst als die van in de DB...
mebus schreef op 13.05.2008 15:39:
Ik zouw het niet via Javascript/Ajax doen.. Als je het niet goed beveiligt zouw je het zo kunnen misbruiken.
"Omdat ik dan iets extra's aan mijn beveiliging moet doen" mag nooit een reden zijn om een keuze af te laten vallen.
Je maakt een 'huizen' tabel in je database, als een gebruiker een huis koopt dan word deze toegevoegd aan de database. Je maakt een ook veld 'tijd' en zet hier de tijd van aanschaf huis + 5 min. En als het tijdstip in de database voorbij is dan is het huis afgebouwd.
Je kunt hier ook 1 veld toevoegen aan de 'gebruiker-info' maar dan kun je maar 1 huis bouwen..
@crispijn: Achja ik dacht dat er nog geen oplossing was dus ik post het ook eens :P
Gewijzigd op 01/01/1970 01:00:00 door Kwastie
Als iemand een gebouw wilt bouwen zet je een row in je database. Hierin de tijd wanneer het gebouwd moet worden (huidige tijd + 5 minuten).
Als diezelfde gebruiker de pagina aanroept om te kijken of het gebouw al gemaakt is, check je in het database of het later (precies op tijd) dan de tijd in de tabel. Zoja, maak het gebouw (waarschijnlijk iets in je db updaten).
Hierdoor krijg je geen overkill van je server en merkt de user niks als hij bijvoorbeeld een dag erna checkt.
Het kan natuurlijk ook zijn dat het gebouw iets te maken heeft met financien oid, en invloed heeft op andere gebruikers. Dan kun je als iemand een pagina aanroept alles word geupdate (maakt dan niet uit van wie het is). Hierdoor word het gebouw gemaakt terwijl de user offline is.
Javascript kun je zo misbruiken, en cronjobs zijn hier niet echt voor bedoelt.
Pepijn.
Kwastie: die heeeeel andere oplossing is al meerdere malen geopperd toch of lees ik nou verkeerd?
had geen zin om het hele topic door te lezen & er was nog geen oplossing dus ik heb het nog eens geplaatst.