Оналйн потребител

explozen

Registered
Здравейте.
Може ли някой да ми предостави някакъв код който показва във профила на потребителя дали е онлайн.
Тоест като влезеш във профила му да показва дали е онлайн.
 
Просто проверяваш в таблицата със онлайн потребителите дали съществува въпросния потребител.. :shock:

Създаваш си таблица..
[sql]
CREATE TABLE IF NOT EXISTS `online` (
`id` int(200) NOT NULL AUTO_INCREMENT,
`time` int(200) NOT NULL,
`username` int(250) NOT NULL,
`session` varchar(100) NOT NULL,
`ip` varchar(100) NOT NULL,
`location` varchar(100) NOT NULL,
PRIMARY KEY (`id`)
)
[/sql]

Така записваш онлайн потребителите: /има малка промяна!/ слагаш го след връзката с базата данни и след session_start();
PHP:
<?php
$session_id = session_id(); 
$row = mysql_fetch_array(mysql_query("SELECT * FROM `online` WHERE `session` = '".$session_id."';"));
$username = (isSet($_SESSION['username'])) ? $_SESSION['username'] : "";
if (!$row){
	mysql_query("INSERT INTO `online` (`time`, `username`, `session`, `ip`, `location`) VALUES  (unix_timestamp(), '".$username."' , '".$session_id."' , '".$_SERVER['REMOTE_ADDR']."','".$_SERVER['REQUEST_URI']."');") or die(mysql_error());
} else {
	mysql_query("UPDATE `online` SET `username` = '".$username."', `ip` = '".$_SERVER['REMOTE_ADDR']."', `location`='".$_SERVER['REQUEST_URI']."', `time` = unix_timestamp() WHERE `session` = '".$session_id."'") or die(mysql_error());
}
mysql_query("DELETE FROM `online` WHERE `time` < unix_timestamp()-90;") or die(mysql_error());
?>

Така ги извеждаш /всичките/

PHP:
<?php
$Query = $db->query("SELECT DISTINCT `username` FROM `online` WHERE `username` != '';");
if(mysql_num_rows($Query) > 0) {
	$users = '';
	while ($uRow = mysql_fetch_array($Query)) {
		$users .= $uRow['username'];
	}
	echo $users;
} else {
    echo "Няма намерени потребители онлайн";
}
?>

Така извеждаш статуса на даден потребител:

PHP:
<?php
$username = (isSet($_SESSION['username'])) ? $_SESSION['username'] : "";
$Query = mysql_query("SELECT * FROM `online` WHERE `username`='".$username."';") or die(mysql_error());
if((mysql_num_rows($Query) > 0) && ($username != NULL)) {
	echo "Онлайн";
} else {
	echo "Офлайн";
}
?>

Това е най-елементарния вариант, за който се сещам, дано съм ти помогнал. :) Всичко най-хубаво!

ЕДИТ: Оправи си променливите да са сходни с твоите. Например , ако _SESSION['username'] при теб е _SESSION['user'] просто го поправи. Това е! :)
 

Back
Горе