Jump to content
php.lv forumi

sessijas


snach15

Recommended Posts

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 by snach15
Link to comment
Share on other sites

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 ...

Link to comment
Share on other sites

@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".

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...