snach15 Posted April 17, 2011 Report Share Posted April 17, 2011 (edited) webā uzpiežot uz logout tātad dzēšu sessiju un cookieju + kvērijs online uzliek 0 , bet kā lai panāku to pašu kad piemeram sessija tiek pazaudēta? kā lai iedarbina kvēriju ? Edited April 17, 2011 by snach15 Quote Link to comment Share on other sites More sharing options...
daGrevis Posted April 17, 2011 Report Share Posted April 17, 2011 if( !isSet( $_SESSION['user'] ) ) { // Kverijs. } Quote Link to comment Share on other sites More sharing options...
gta1151 Posted April 18, 2011 Report Share Posted April 18, 2011 Īsti nesapratu ko tu domāji Cookie Tā var uzlikt setcookie("username",$user,+9700000) Bet noņemt setcookie("username",$user,-9700000) Seesion var izdzēst session_destroy(); . Quote Link to comment Share on other sites More sharing options...
snach15 Posted April 18, 2011 Author Report Share Posted April 18, 2011 tas bija domāts tā .. piemeram es ielagojos portālā , un vnk aizveru browseri ... pēc kāda laika sessija vnk pazudīs ... bet man vajg tā kad ja pazūd sessija tad notiek arī kvērijs .. citādi tie kas aizver portālu un pazaudē sessiju vienalga rādas itkā viņi būtu online bet patiesībā nav ... Quote Link to comment Share on other sites More sharing options...
daGrevis Posted April 18, 2011 Report Share Posted April 18, 2011 @gta1151 Cik sapratu, tad Viņam datubāzē glabājās 0 vai 1, attiecīgi - "offline" vai "online". Kad lietotājs aizver pārlūku, sesijas nozūd. Bet ne jau datubāzē! Vieninieks joprojām ir vieninieks. Viņam vajag kaut kā izdarīt tā, ka tiklīdz tiek aizvērts pārlūks - datubāzes info tiek mainīta. Kā? Nu Es devu variantu, ka tiklīdz Viņš atkal atvērs lapu - sesija tiks izdzēsta. Protams, šāds variants nekam neder, jo var sanākt, ka Viņš vairs TO lapu neatvērs nekad, tātad sanāks, ka Viņš "online" būs mūžīgi......... un vēl drusciņ. Variants #2: Ik pēc piecām minūtēm, piemēram, vai arī - ja ir pagājis vairāk par piecām minūtēm, bet joprojām lapa nav apmeklēta (sanāk - tāpat neviens to neuzzinās)... palaižam pieprasījumu, kas attiecīgi maina vieniniekus par nullītēm. Kā? Nu to pats izdomā. Es jau jūtu, ka esmu pārāk daudz "uzdrukājis". Quote Link to comment Share on other sites More sharing options...
briedis Posted April 18, 2011 Report Share Posted April 18, 2011 snach, pakustini smadzenes. Vai nevarētu darīt tā, ka tu paskaties, pirms cik ilga laika pēdējo reizi lietotājs ir reģistrēts datubāzē? Un ja tas laiks ir lielāks par, teiksim, 5 minūtēm, tad pieņemam, ka lietotājs ir izlogojies? Quote Link to comment Share on other sites More sharing options...
wintermute Posted April 18, 2011 Report Share Posted April 18, 2011 Vai arī uzliec JS, kas reizi minūtē ( 2ās , 5ās , whatever ) "pingo" serveri + tas ko briedis teica. Tad tu redzēsi kā online arī tos cilvēkus, kuri vienkārši lapu tur tab'ā atvērtu. Quote Link to comment Share on other sites More sharing options...
mad182 Posted April 19, 2011 Report Share Posted April 19, 2011 Glabā nevis online statusu, bet pēdējās aktivitātes laiku... Pēc tā tad arī var izdomāt, ir viņš online vai nē. Quote Link to comment Share on other sites More sharing options...
spainis Posted April 19, 2011 Report Share Posted April 19, 2011 custom session handleris(glabājam sesijas DB vai kādā kešošanas mehānismā) un pie sesijas iznīcināšanas izpildām vajadzīgo DB vaicājumu Quote Link to comment Share on other sites More sharing options...
gta1151 Posted April 19, 2011 Report Share Posted April 19, 2011 Paskaties manu skriptu Saglabā $online = time(); mysql_query("UPDATE lietotaji SET online = 1 AND pedojo_reizi_bijis = $online WHERE id = {$_SESSION['id']}") or die(mysql_error()): Tagad Dzēsīs ārā $dzest = time() - 300; //5minūtes mysql_query("UPDATE lietotaji SET online = 0 WHERE online_laiks < $dzest") or die(mysql_error()); Tu precīzāk nedabūsi. Quote Link to comment Share on other sites More sharing options...
wintermute Posted April 20, 2011 Report Share Posted April 20, 2011 gta1151, liekas ka tu nezini par tādu SQL funkciju kā NOW() ( pieņemu, ka zini tikai mysql ). Quote Link to comment Share on other sites More sharing options...
gta1151 Posted April 21, 2011 Report Share Posted April 21, 2011 (edited) gta1151, liekas ka tu nezini par tādu SQL funkciju kā NOW() ( pieņemu, ka zini tikai mysql ). Es tikai vel mācos,paldies zināšu. Edited April 21, 2011 by gta1151 Quote Link to comment Share on other sites More sharing options...
snach15 Posted April 22, 2011 Author Report Share Posted April 22, 2011 paldies visiem 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.