PHP: Kako mogu napraviti skriptu koja će se izvršavati na serveru i odbrojavati minute(5) i sekunde do nule?
- +/- sve poruke
- ravni prikaz
- starije poruke gore
Nije mi baš jasno što točno želiš. Neko slično pitanje sam postavio pred koji mjesec i dobio odgovor:
Možda sa primjerom bude jasnije: Na facebooku postoji dosta multiplayer igara(CityVille, FarmVille) i one imaju funkciju da korisnik svakih pet minuta dobije +1 poen energije. To isto želim napraviti ali nemam ideje. Skripta se stalno odbrojava bio prijavljen ili ne tako da mislim da se automatski izvršava na samom serveru...
Pa piše ti sve to u temi za koju sam dao link. Cron jobs. Malo pažljivije pročitaj. Samo je pitanje dopušta li ti hoster pokretanje skripte svakih 5 min.
Ako ne dopušta, možeš i na druge načine to riješiti. Naime, zašto bi trebao imati refresh svakih pet minuta, pa da ti štanca po jedan bod, ako znaš da će ti se u sat vremena naštancati 12 bodova? Ili u jednomd danu 288 bodova? Možeš napraviti to da čim se netko ulogira, da skripta prvo obavi sve zaostale poslove.
Pravim neku browser igru s ciljem učenja i napredovanja i koristim localhost tako da sam sam sebi hoster i valjda si dopuštam pokretanje skripte. Možda to učinim preko baze podataka. Samo napišem algoritam koji će računati vrijeme među prijavama i kada se sve podijeli sa pet minuta, rezultat je energija, tako nešto... Hvala budem pročitao detaljnije gore navedenu temu.
Nakon sat vremena mozganja i ubijanja dosade u školi na papir sam napisao proceduru skripte koja izračunava razliku trenutnog datuma i vremena sa datumom i vremenom zadnjeg uzimanja energije. Skripta je napravljena da korisiti bazu podataka, ali kod koji ću vam dati, ako vam zatreba, morat ćete sami prilagoditi bazi podataka. Pomoću ove skripte mozete korisniku dodati 1 $energije svakih 5 minuta ako je u pitanju browser igra. Ako imate pitanja i nešto vam nije jasno samo napišite jer sada nemam vremena objašnjavati u detalje...
<?php
//vremenske varijable
$last = strtotime("2011-01-01 00:04:18");
$now = strtotime("2011-01-01 00:18:21");
//koliko energije treba dodati?! 0.o
$energyAdd = $now - $last;
if($energyAdd >= 300){
$energyAdd /= 300;
$energyAdd = floor($energyAdd);
//Sljedeća energija dolazi u ovo vrijeme
$addThis = $now - $last - $energyAdd*300;
$addThis = 300 - $addThis;
$newTime = $now + $addThis;
$newTime = date("Y-m-d H:i:s", $newTime);
echo "Sada ste dobili " . $energyAdd . " energije!<br/><br/>";
echo "Sljedeća energija: " . $newTime;
}
else {
echo "Nema energije! Proslo je manje od 5 minuta!";
}
?>