| |
define("ura_sek",60*60);
define("datoteka","cas" );
function poracunaj_polno_uro() : int
{
$cas_s = time();
$ostanek_od_polne_s = $cas_s%(ura_sek);
$polna_ura_s = $cas_s + ura_sek - $ostanek_od_polne_s;
return $polna_ura_s;
}
function preberi_cas():int
{
if(!file_exists(datoteka))
{
$polna_ura_s = poracunaj_polno_uro();
file_put_contents(datoteka,$polna_ura_s,LOCK_EX);
}
return file_get_contents(datoteka);
}
function izvedi_logiko()
{
echo "<h1>moja logika se sedaj izvede!</h1><hr/>";
}
$zapisan_s = preberi_cas();
$trenutno_s = time();
$razlika_s = $trenutno_s - $zapisan_s;
if($razlika_s >= 0)
{
$nova_ura = poracunaj_polno_uro();
file_put_contents(datoteka,$nova_ura,LOCK_EX);
izvedi_logiko();
}
else
{
echo "Cakam na termin:".date('jS F Y h:i:s A (T)', $zapisan_s)."<hr/>Se: ".-$razlika_s." sekund! ";
}
?>
//Tukaj sem ti napisal en primer, je dokaj samoumeven...
spremenjeno: MC++ (12.2.2016, 1:56)
|
| |
| |
Ampak kaj narediš, da vedno preverja koliko je ura in koliko časa je ostalo?
|
| |
| |
Saj si rekel, da bi se ta koda izvajala vedno, ko je kak uporabnik na strani, sicer pa ne? Torej vse kar moraš narediti je, da se ob zagonu strani (php skripte) izvede ta koda.
|
| |
| |
Sicer pa bi lahko imel kakšno cron opravilo, ki se vsako uro aktivira in zažene neko php skripto. Ta pa bi preverila, če je bil v npr. zadnjih 5 minutah kak prisoten uporabnik in bi pognala tvojo logiko.
To, da preveriš prisotnost uporanika bi z lahkoto izvedel tako: Vedno, ko se aktivira neka dejavnost na strani (uporabniku se naloži stran) se vpiše čas v neko datoteko. Skripta more samo primerjati čas v datoteki s trenutnim časom... če je razlika v razponu 5 minut -> izvedeš tvojo logiko
|
| |
| |
Cron opravil ne morem nastavljati
Mislil sem, da bi se skripta osveževala in i lahko uporabnik videl odštevanje do polne ure, ko bi se moja koda avtomatsko izvedla
spremenjeno: filips (13.2.2016, 11:44)
|
| |
| |
Potem pa imej ajax klice na to php kodo, nazaj pa mu vrnes cas? Koliko imas sploh nadzora na strezniku? Imas na voljo samo nek interface? Al lahko dostopas preko ssha?
|
| |
| |
Kako naj nastavim ajax klice?
|
| |
| |
Ko je uporabnik na strani, gredo klici npr vsakih 30 sekund na to skripto? Ta pa lahko vrne cas do polne ure, ob polni uri ura pa bo itak skripta izvedla tvojo logiko... To pa bo delalo ko bo kaksen uporabnik na strani
|
| |
| |
Pri vsem skupaj je malo problem, ker je želja, da se določena koda izvaja na strežniku, določena koda pa v brskalniku uporabnika, kar sta dve povsem neodvisni stvari.
Če želiš neko kodo izvajati na strežniku glede na čas, potem je edini način, da to izvedeš preko cron opravila. Ker ob običajnem nalaganju strani bo strežniku vsako skripto, ki teče dlje kot minuto, sam ustavil.
Kaj pa naj bi izvedla ta koda na strežniku?
Ker moje mnenje je, da izbrani način, kako želiš to rešiti, ni najboljši in bi se dalo to narediti bolje.
Če poveš celotno zgodbo, kaj je sploh namen vsega, potem lahko predlagam kakšno bolj pametno rešitev.
|
| |
| |
Rad bi naredil kodo, da vi bilo v navadni txt datoteki čas zadnje ponastavitve v obliki Unixovega časovnega žiga (polna ura) in da bi php koda prebrala to datoteko in ji dodala eno uro. Potem pa bi odštevalo, dokler ne bi bil trenutni čas polna ura in takrat izvedlo kodo, da ponastavi vse podatke iz baze. Koda bi se izvajala samo takrat ko bi bil kak uporabnik na strani. Koda bi se avtomatsko osveževala in bi lahko uporabnik videl odštevanje do polne ure, ko bi se moja koda avtomatsko izvedla.
Cron opravilo sem že poskušal dodati, ampak ko ga hočem dodati mi napiše: On free hosting any cron jobs added here MUST complete in 5 seconds or the job will be removed automatically. If you need long running cron jobs please Upgrade. Če ga pa dodam, da se koda za ponastavitev baze izvede vsako polno uro, pa mi cron opravilo izbriše in ga ne izvede.
Gostovanja trenutno ne mislim nadgraditi.
spremenjeno: filips (13.2.2016, 19:52)
|
| |
Prikazujem 8 od skupno 9 strani |
|