Kliknite tukaj, da si ogledate profil, kot ga vidijo drugi
 
Domov > Forum > Računalništvo

Težave s PHP-jem

 
 
13.2.2016, 22:40
Č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.



 
 
 
13.2.2016, 22:54
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...
 
 
 
14.2.2016, 9:31
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.
 
 
 
14.2.2016, 15:04
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
 
 
 
14.2.2016, 15:32
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)
 
 
 
14.2.2016, 23:03
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)
 
 
 
15.2.2016, 10:13
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?
 
 
 
15.2.2016, 18:31
http://pastebin.com/LWLdwsNe

Tukaj maš osnoven primer, ostalo pa se sam malo poigraj

 
 
 
15.2.2016, 23:03
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)
 
 
Prijava in registracija
 
 
 
Zmaga.com ponuja brezplačno in razumljivo učenje računalniških programov, vas na enkraten način spozna z različnimi svetovnimi jeziki, s podrobno obrazloženimi recepti prikaže čare kulinarike in vam prežene strahove pred domačimi opravili.
 
 
Poleg tega lahko prebirate poučne članke, ki so namenjene širjenju naše splošne razgledanosti ter preverite svoje znanje z priljubljenim in enostavnim sistemom za preverjanje znanja. Če med vsebinami, ki se dodajajo vsak dan, ne najdete želenega znanja, je za vaša vprašanja na voljo dobro obiskan forum, kjer lahko tudi aktivno sodelujete. V primeru, da bi radi svoje praktično znanje delili z ostalimi, pa to lahko storite preko preprostega vmesnika za dodajanje vsebin. Zmagajte z znanjem z Zmaga.com!