Jump to content
php.lv forumi

Lietotāji online


anonīms

Recommended Posts

Varētu kāds ieteikt kā veidot online listi no reģistrētajiem lietotājiem. Šeit pat forumā bija veids ar N Y (Y - ielogojas UPDATE, n - logout UPDATE), bet ar to ir gļuks, kas aprakstīts tajā pašā tematā par to, ka cilvēkiem patīk spiest nevis 'Logout', bet gan vnk uzspiest "close" pārlūkprogrammai.

 

Mēģināju šādi:

 

if($logged_in) {
$ielogosanas_laiks = time();
mysql_query("UPDATE lietotaji SET laiks_kad_iegaja='$ielogosanas_laiks' WHERE lietotajvards = $_SESSION[lietotajvards]");
}

 

Doma bija tāda, ka šis fails ir inklūdots visās lapās un biju domājis, ka, ja kāds pāriet uz citu lapu, tad automātiski atkal updeitojas laiks, bet šis kods nestrādā.

Lūdzu iesakat kādu veidu.

Link to comment
Share on other sites

Atvainojos par double post, bet gribēju šo tematu pacelt augšā, jo neesmu vēl ticis tā arī skaidrībā ar to - kā to panākt?

 

Pašlaik izmantoju

if($logged_in) {
$ielogosanas_laiks = time()+60*10;
mysql_query("UPDATE lietotaji SET laiks_kad_iegaja='$ielogosanas_laiks' WHERE lietotajvards = $_SESSION[lietotajvards]");
}
else {echo ""; }

 

// ieslēdzot error reporting kļūdu nav un db laiks arī nomainas (update), bet pie online saraksta lietotājs pēc tām ielogošanās 10 min pazūd.

 

Un izvadīšanai izmantoju

 

<?php 
$laiks = time();
$lietotaji_online = mysql_query("SELECT id,lietotajvards FROM lietotaji WHERE laiks_kad_iegaja > $laiks ");
while($lieton = mysql_fetch_array($lietotaji_online, MYSQL_NUM))
{
echo "<a href='.../lietotajs/".$lieton['0']."'>".$lieton['1']."</a><br />";
}
?>

 

AJAX man ir sveša lieta, tādēļ ar to neesmu gatavs veidot...

Edited by anonīms
Link to comment
Share on other sites

Nu lapas man ir veidotas pēc tāda tipa.

 

<?php include "tmp/augsa.php"; ?>
Te ir tā lapa, kas ir (Piemēram profils)
<?php include "tmp/apaksa.php"; ?>

 

Tas kods ir failā augsa.

 

Un tad, kad piemēram dodas uz to profila lapu biju domājis, lai ir ielogošanās laika update

Link to comment
Share on other sites

Negribi taisīt otrādi - nevis lietotāju tabulā glabāt nākotnes laiku, bet gan lietotāju saraksta kverijā prasīt par pagātni?

 

1) Lietotāju tabulā lauku nosauc par last_seen, tur pie katra requesta glabā time() (ja vispār gribi PHP laiku izmantot, nevis MySQL iebūvētos datumu tipus)

2) SELECT kverijā ievelc visus tos lietotājus, kur last_seen > $tenMinutesAgo, kur $tenMinutesAgo ir time()-60*10

 

Vienkārši būs mazliet vieglāk sekot līdzi lietotāju tabulai.

Link to comment
Share on other sites

×
×
  • Create New...