bra Posted April 25, 2005 Report Share Posted April 25, 2005 vārdu sakot man ir izveidots login skripts, ar kura palīdzību tieku ielaists sitēmā uz 10 min (600 sekundēm), bet problēma rodas tajā ka netkarīgi ko es daru man pēc 10 min sitēma atslēdzas gribēju uztasīt tā lai kopš pēdējās darbības sāktu skaitīt tās 10 minūtes, bet nav ideju kā To izveidot skaidrs ka mysql db būs, bet kā to visu salikt kopā ? Link to comment Share on other sites More sharing options...
рпр Posted April 25, 2005 Report Share Posted April 25, 2005 nu ja tik taalu pats esi izdariijis, tad malacis. tagad tikai katru reizi kaa pieprasa lapu noreseto taimeri, lai saak no jauna skaitiit.. Link to comment Share on other sites More sharing options...
v3rb0 Posted April 25, 2005 Report Share Posted April 25, 2005 pieglabā vai nu mysql (ja dikti gribas) vai tāpat sessijā pēdējo darbības laiku, katru reizi pirms tiek veikta kāda darbība (te lieti noder OOP pieeja, kad visas lapas tiek extendētas no vienas abstracta containera). pirms pēdējās darbības pieglabāšanas pārbaudi iepriekšējās pēdējās darbības laiku, ja lielāks par 10min, sorry logauts. Link to comment Share on other sites More sharing options...
bra Posted April 25, 2005 Author Report Share Posted April 25, 2005 nu tik tālu man viss tapa skaidrs, bet kas notiks tajā gadījumā ja pie katras darbības es updeitoju DB ielieku laiku kad veikta kāda opcija, bet kā pateikt tā lai gadījumā ja ir pagājušas tās 10 min un piesēžas kāds cits cilvēks un izdara kādu darbību( jo nav noticis logout) tiek saglabāts pēdējās darbības laiks pa jaunu, te laikam būs vajadzīgs java scripts lai automātiski pēc 10 min neko nedaru refrešo uz logout? vai arī es ko pavisam greizi sadomāju. Link to comment Share on other sites More sharing options...
v3rb0 Posted April 25, 2005 Report Share Posted April 25, 2005 nezinu kāpēc gribi tieši iekš db glabāt, liec iekš sessijas šitādu pēdējās darbības laiku kā unix timestampu. bet ja nu iekš db tomēr, tad pie katram useri pa laukam kurā pēdējās darbības laiks. var arī ar meta tagu refreshot, lai pēc tām 10 min izmet ārā, bet metot pēc 10min ārā jāpārbauda tagadējais laiks pret pēdējās aktivitātes laiku, lai neizmet tādā gadījumā ārā, kad vienas sessijas ietvaros ir vairāki browsera logi atvērti. Link to comment Share on other sites More sharing options...
Venom Posted April 25, 2005 Report Share Posted April 25, 2005 <?php //uzsākam sessiju prims jebkāda outputta session_start(); /*pārbaudām, vai ir pēdējās pārlādes laiks, ja nav (tikko ienācis), liekam tekošo laiku */ if (!isset($_SESSION['last_action'])) $_SESSION['last_action']=time(); /* pārbaudām, cik sekunžu pagājīs no iepriekšējās pārlādes, pirmo reizi tas būs 0, jo tikko uzlikam to pašu time(), katru nākāmo reizi salīdzināsim ar laiku ielikto rindā ar ** komentārā */ if (time()-$_SESSION['last_action']>600) exit('Pagājušas vairāk nekā 10 min pēc pēdējās darbības'); /* ja mūs izlaida cauri, resp. pirms pēdējās darbības pagājis<10 min, atjaunojam/ieliekam tekošo darbības laiku */ $_SESSION['last_action']=time(); //** /*kaut kur <head> apvidū varam ielikt refrešu uz 10min+1 sekundi, lai lapa automātiski pārlādētos pēc 10 dīkstāves minūtēm */ echo '<meta http-equiv="refresh" content="601; url='.$_SERVER['PHP_SELF'].'" />'; ?> topics slēgts? Link to comment Share on other sites More sharing options...
ohmygod Posted April 25, 2005 Report Share Posted April 25, 2005 nu tik tālu man viss tapa skaidrs, bet kas notiks tajā gadījumā ja pie katras darbības es updeitoju DB ielieku laiku kad veikta kāda opcija, bet kā pateikt tā lai gadījumā ja ir pagājušas tās 10 min un piesēžas kāds cits cilvēks un izdara kādu darbību( jo nav noticis logout) tiek saglabāts pēdējās darbības laiks pa jaunu, te laikam būs vajadzīgs java scripts lai automātiski pēc 10 min neko nedaru refrešo uz logout? vai arī es ko pavisam greizi sadomāju. 16865[/snapback] Kāpēc?? visupirms pārbaudi taimautu un tikai tad, ja nav paarsniegts - updeito. else - logoff... Link to comment Share on other sites More sharing options...
bra Posted April 25, 2005 Author Report Share Posted April 25, 2005 <?phpsession_start(); if (!isset($_SESSION['last_action'])) $_SESSION['last_action']=time(); if (time()-$_SESSION['last_action']>600) exit('Pagājušas vairāk nekā 10 min pēc pēdējās darbības'); $_SESSION['last_action']=time(); echo '<meta http-equiv="refresh" content="601; url='.$_SERVER['PHP_SELF'].'" />'; ?> topics slēgts? 16868[/snapback] Paldies, bet man kautkā tik un tā nedarbojas moš es neparizās vietās { } saliku varbūt mazliet nokmentēsi kodu, jo domāju ka varbūt kādam citam arī varētu noderēt Link to comment Share on other sites More sharing options...
Venom Posted April 25, 2005 Report Share Posted April 25, 2005 sk. augstāk Link to comment Share on other sites More sharing options...
Recommended Posts