online потребители

cmivanov

Registered
Как да видя колко потребители и кои са логнати в сайта, ако при логин се изпълнява session_register("myusername");
 
записваш ли при логин на потребителя че е онлайн в базата или кога е бил логнат последно..?
 
да това е кода при логин

Код:
$uplastip=getenv('REMOTE_ADDR');
$uplastdate = date('d.m.20y');

mysql_query("UPDATE users SET `lastip` = usedip,`lastdate` = `useddate`,`usedip` = '$uplastip',`useddate` = '$uplastdate' WHERE email='$myusername'")or die(mysql_error());


session_register("myusername");
header("location:index.php");
 
направи си още едно поле в users `online` и кода го направи така:
Код:
$uplastip=getenv('REMOTE_ADDR'); 
$uplastdate = date('d.m.20y'); 

mysql_query("UPDATE users SET `lastip` = usedip,`lastdate` = `useddate`,`usedip` = '$uplastip',`online` = 'yes',`useddate` = '$uplastdate' WHERE email='$myusername'")or die(mysql_error()); 


session_register("myusername"); 
header("location:index.php");
на logout.php или или както ти е файла за логаут записваш online = no
а кода с който вадиш кои са онлайн:
Код:
<?php
$select = mysql_query("SELECT * FROM `users` WHERE `online` ='yes' ORDER by id DESC");
echo"Онлайн:";
while($s = mysql_fetch_array($select)){
echo$row['username'].'<br />';
}
?>
 
а някой потреибтел ако директно затвори сайта без да използва ИЗХОД няма ли да ми се показва, че е online ?
 
не ми трябва такива сложни скриптови за държави, пък и не мога да го редактирам да ми върши на мен работа.
Просто искам да знам кой се е логнал в сайта ми.
 
добре ето начин:
правиш поле в което записваш часът и минутите на логване после като вадиш кои са онлайн правиш променлива за часът и минутите в момента и от тях вадиш тези от базата и ако се получава по малко от 15 го показваш
и инклудваш файла който обновява това поле навсякъде
сега нямам време да ти го напиша дано си ме разбрал :)
 
Ако потребителя е логнат добавяш в базата на полето му time()+3*60 и така проверяваш и ако сегашният time е по-голям на този от полето му значи е офлайн, ако не - онлайн.
 
<?php
if($row['timestamp'] >= time()-60)
{

echo 'Статус <br/> В момента е в сайта ;
}
else
{
echo "Статус <br/> В момента е извън сайта ";
}
?>

това го добави в твоя config.php или там каквото е
Код:
$csuser = $_SESSION['username']; \\ тук сложи твоята сесия :) на логнатия потребител
$time = time(); 
$query = "UPDATE users SET timestamp='$time' WHERE user='$csuser'"; 
$result = mysql_query($query); 
$time=time()-60; 
$query1 = "SELECT * FROM users WHERE timestamp>'$timestamp'"; 
$result1 = mysql_query($query1); 
$timenow = $row['timestamp'];
създай в таблица users (или каквато е твоята) поле с име timestamp varchar(255) и виж дали ще тръгне при мен върви с дизел :?:

забравих не съм сигурен дали е задължително но добави в началото най-отгоре
в страницата която изкарваш дали потребителя е онлайн офлайн
Код:
<?
define('IN_VALID', true);
include("config.php");
session_start();
$csuser=$_SESSION['username'];
?>
 

Back
Горе