ziedinjsh Posted December 12, 2011 Report Share Posted December 12, 2011 ielogojoties lietotājam piešķir sesiju $_session['password']; ielogošanās, izlogošanās ir, kad bez aktivitātes kādu laiku tad iznīcina sesiju if (isset($_SESSION['last_activity']) && (time() - $_SESSION['last_activity'] > 900)) { header("location:".url."logout.php"); } $_SESSION['last_activity'] = time(); tas taka strādātu, bet lieta sekojoša.. ielogojoties tiek ievadīts datubāzē pie lietotāju tabulas online='1' un izlogojoties online='0', bet tad kad last activity iznīcina sessiju tad netiek updeitota datubāze par to ka lietotājs vairāk nav online. Tad nu es domāju, vai ir kāda iespēja online saturu uztausīt tikai no sesijām? Piem. saskaita cik ir aktīvas password sesijas un tad atiecīgi izvelk no membera tabulas informāciju Paldies jau iepriekš. Quote Link to comment Share on other sites More sharing options...
briedis Posted December 12, 2011 Report Share Posted December 12, 2011 Labāk pastāsti, kāpēc tev nepietiek ar pēdējās aktivitātes laiku.... Quote Link to comment Share on other sites More sharing options...
Kemito Posted December 13, 2011 Report Share Posted December 13, 2011 Tak logout.php daļā veic update priekš tā, lai iestata attiecīgajam lietotājam 0 datubāzē, kas tur par problēmām nesaprotu? Quote Link to comment Share on other sites More sharing options...
anonīms Posted December 13, 2011 Report Share Posted December 13, 2011 Kemito, a ja aizver vnk ciet browseri? :) Skaties uz `briedis` variantu. Papildus kollona `last_online` pēc kura arī vadamies. Ja vairāk par 10min nav bijusi aktivitāte, tad nerādam online listē Quote Link to comment Share on other sites More sharing options...
daGrevis Posted December 13, 2011 Report Share Posted December 13, 2011 Atkal tā lieta, ko apmēram pirms nedēļas izstāstīju uz trakoju par to, ka visu laiku jāstāsta tas pats. P.S. Tu taču neglabā sesijā lietotāja paroli, vai ne? Quote Link to comment Share on other sites More sharing options...
Kemito Posted December 13, 2011 Report Share Posted December 13, 2011 (edited) anonīms, liela muiža. Paližu kronu, priekš čekiem šā vai tā, un lietu esmu atrisinājis bez problēmām ne tā? Uzraksta nelielu cronjob, ar intervālu aptuveni 10 minūtes, jeb cik tur tā aktivitāte, domājams, nebūs viņam tur 10k lietotāju, lai smagi ietekmētu serveri. Joprojām nesaskatu baigāko problēmu tur. Edited December 13, 2011 by Kemito Quote Link to comment Share on other sites More sharing options...
daGrevis Posted December 13, 2011 Report Share Posted December 13, 2011 > anonīms, liela muiža. Paližu kronu, priekš čekiem šā vai tā, un lietu esmu atrisinājis bez problēmām ne tā? Āāā. Nepareiza pieeja! Quote Link to comment Share on other sites More sharing options...
Kemito Posted December 13, 2011 Report Share Posted December 13, 2011 > anonīms, liela muiža. Paližu kronu, priekš čekiem šā vai tā, un lietu esmu atrisinājis bez problēmām ne tā? Āāā. Nepareiza pieeja! Jo .... ? Quote Link to comment Share on other sites More sharing options...
ziedinjsh Posted December 13, 2011 Author Report Share Posted December 13, 2011 logout.php ir update uz onlien='0' ja es datubāzē pie members saglabāšu last_activity = 'laiks' jāievada mysql_query("update mambers set last_activity='laiks' where table='sesija' ") or die(mysql_error()); tad man online sadaļā kā jāizvada mysql_query("select * from members where last_activity > 'laiks' ") or die (mysql_error()); ?? Quote Link to comment Share on other sites More sharing options...
daGrevis Posted December 13, 2011 Report Share Posted December 13, 2011 > Jo .... ? Lieki. Nav vajadzības. **Skaidroju vēlreiz:** Lietotājs var palikt onlainā pat ja tā nemaz nav. Tas neko nemaina kamēr neviens to neredz. Tieši tāpēc nav jēgas izmantot cron'u. Tiklīdz kāds atver lapu kurā ir onlain lietotāju liste vai jebkas cits, kur tiek parādīts attiecīgā lietotāja status (online/offline) - tad tas tikai kaut ko maina. Tiklīdz attiecīga lapa tiek atvērta, tikai tad čekojam pēdējo lietotāja aktivitāti pret pašreizējo laiku. Ja aktivitāte ir notikusi pārak sen (teiksim, 10 minūtes vai vairāk) - tad uzsetojam lietotāja statusu kā offline. Gala lietotājs neredzēs nekādu starpību. Ieguvumi? Netiks izmantots cron, kas, kā zināms, izmanto resursus. Visi laimīgi! Šito es pinnoju lai nav simts un vienu reizi jāskaidro. Quote Link to comment Share on other sites More sharing options...
ziedinjsh Posted December 13, 2011 Author Report Share Posted December 13, 2011 nu tad tā sanāk ka apdeitoju datubāzi ar last aktivity un tad kur vajag izvadu last activity kur ir mazāks par piem. 15 min ja ir lielāks tad viņu nerāda! Quote Link to comment Share on other sites More sharing options...
daGrevis Posted December 13, 2011 Report Share Posted December 13, 2011 Sanāk tā kā uzrakstīju. Quote Link to comment Share on other sites More sharing options...
briedis Posted December 13, 2011 Report Share Posted December 13, 2011 Nafig vispār tas online lauks vajadzīgs? Lieka rakstīšana/lasīšana katru reizi. Galu galā, "online " ir tika viens mainīgais, ko tu aprēķini PHP pusē balstoties uz pēdējās aktivitātes laiku. Pilnīgi lieka kolonna! $is_online = time() > ($row['last_activity'] + 10*60); Quote Link to comment Share on other sites More sharing options...
daGrevis Posted December 13, 2011 Report Share Posted December 13, 2011 Jap! Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.