| |
Če prav razumem, želiš doseči, da ko uporabnik pride na stran, da lahko eno uro uporablja tvojo spletno aplikacijo, potem pa se po eni uri avtomatsko ponastavijo podatki iz baze.
Če to drži, potem zastavljeni način vsekakor ni najboljši.
Primer boljše in enostavnejše rešitve je na primer, da si ob obisku uporabnika shraniš čas začetka v SESSION spremenljivko.
Nato uporabniku v spletnem brskalniku prikazuješ z Javascriptom, koliko je še do izteka ene ure.
Na strežniku pa v PHP kodi pri vsaki zahtevi vedno preveriš, če je minilo že več kot ena ura in v tem primeru ponastaviš bazo.
|
| |
| |
Glede na to, da omenja nekakšno polno uro za ponastavitev baze, vrjetno misli, da bi se stvar resetirala ob 1,2,3,4,5.... 24/7 urnem ciklu? Torej, če bi prišel 5:55 na stran uporabljati aplikacijo bi se mu ob 6:00 vse pobrisalo? Ne najdem smisla... filips raje napiši kaj dela tvoja aplikacija? Če nam tu omenjaš tehnologije in kako bi se lotil X problema nam to skoraj nič pomaga...
|
| |
| |
To bi rad imel demo stran. Tako kot je napisal podtalje, da bi se ponastavilo ob 1,2,3...torej po 24/7 urnem ciklu.
|
| |
| |
V tem primeru imaš dve možnosti.
1. možnost
- pripraviš skirpto, ki ponastavi bazo in nastaviš cron, da zažene to skripto vsako uro. Zaradi omejitve tvojega ponudnika se mora skripta zaključiti v 5 sekundah, kar pa ne bi smelo biti problem.
- uporabniku na strani z Javascriptom kažeš, koliko je še do polne ure, ko se bo ponastavila baza
2. možnost
- ob vsaki zahtevi nas strežnik preveriš, če to uro še ni bila ponastavljena baza in jo v tem primeru ponastaviš, ter si v bazo shraniš, kdaj je bila nazadnje ponastavljena
- tako kot v 1. primeru, uporabniku na strani z Javascriptom kažeš, koliko je še do polne ure, ko se bo ponastavila baza
|
| |
| |
Kako bi naredil 2. možnost, samo da čas zadnje ponastavitve zapiše v datoteko in ne v bazo?
Poskusil sem tudi prvo možnost, ampak je problem omejitev.
spremenjeno: filips (14.2.2016, 15:37)
|
| |
| |
Za prvo možnost, ko si napisal, je omejitev, da se skripta ne sme izvajati največ 5 sekund.
To pa mislim, da je več kot dovolj, da skripta ponastavi bazo. Tako da bi se tudi s prvo možnostjo dalo.
Za drugo možnost, pa v datoteko ob ponastavitvi baze vpišeš z:
file_put_contents('datoteka.txt', time());
Prebereš pa z:
$timestamp = file_get_contents('datoteka.txt' )
Nato moraš ugotoviti, kdaj je bila zadnja polna ura. To najlažje dobiš z:
$last = floor(time() / 3600) * 3600
Nato pa samo še preveriš, če je $timestamp manjši od $last in v tem primeru ponastaviš bazo.
spremenjeno: podtalje (14.2.2016, 23:03)
|
| |
| |
Kako pa bi naredil, da bi s pomočjo ajax klicev to kodo izvajal vsako sekundo? Kako bi s pomočjo javascripta prikazal odštevanje do nasljedne polne ure?
|
| |
| |
Da bi to kodo izvajal preko ajax klica, se mi zdi zelo, zelo slaba ideja.
Za to tudi ni nobene potrebe, da vsako sekundo po nepotrebnem obremenjuje klienta in še strenik.
Za ponastavitev baze naredi tako, ko sem predlagal, da preveri, če je potrebno ponastaviti bazo in to vključi v index.php. Če pa uporabljaš več strani, pa daj to v svojo datoteko in na teh straneh naredi include.
Glede prikazovanja ure in javascripta, pa je dovolj, da na klientu kaže, koliko je še do polne ure, ker takrat se bo baza vedno ponastavila.
Tu si boš moral malo ogledati, kako deluje Date objekt v Javascriptu.
Npr. nekaj podobnega:
var d = new Date();
var timeLeft = 60 - d.getMinutes(); //koliko je e do polne ure oz. do reseta
Nato pa vrednost timeLeft prikažeš v nekem div elementu.
spremenjeno: podtalje (15.2.2016, 23:05)
|
| |
Prikazujem 9 od skupno 9 strani |
|