PHP скрипт - кто онлайн?

Создавая свой сайт, думаю ты задумывался над тем, как показать на сайте кто сейчас online? На социальных проектах и сайтах где ведется активное общение без этого ни как. На своём проекте можешь создать отдельную страничку и там отображать имена или иконки пользователей, около которых будет стоять онлайн\оффлайн. Или еще вариант, создай на jQuery табличку, при нажатии будет выезжать панель с онлайн пользователями. Предлагаю ознакомиться с методом определения онлайн пользователя. Ну, обо всем по порядку.

Разберу наши действия по частям:
  • Создаем базу данных в MySQL
  • Вставляем код в нашу страничку, где будем смотреть онлайн пользователей.


Запускаем сценарий SQL в нашей базе данных MySQL.


CREATE TABLE Totalonline (
timestamp int(15) DEFAULT '0' NOT NULL,
ip varchar(40) NOT NULL,
file varchar(100) NOT NULL,
PRIMARY KEY (timestamp),
KEY ip (ip),
KEY file (file)
);

Этот код ставим на саму страничку, где появятся онлайн пользователи.

<?php
//Укажите доступ к базам
$server = "localhost" ;
$db_user = "username" ;
$db_pass = "password" ;
$database = "users" ;
$timeoutseconds = 300 ;

//Получение времени
$timestamp = time ();
$timeout = $timestamp - $timeoutseconds ;

//Соединение с базой
mysql_connect ( $server , $db_user , $db_pass );

//insert the values
$insert = mysql_db_query ( $database , "INSERT INTO totalonline VALUES
('$timestamp','$REMOTE_ADDR','$PHP_SELF')" );
if(!( $insert )) {
print "totalonline Insert Failed > " ;
}

//delete values when they leave
$delete = mysql_db_query ( $database , "DELETE FROM totalonline WHERE timestamp<$timeout" );
if(!( $delete )) {
print "totalonline Delete Failed > " ;
}

//grab the results
$result = mysql_db_query ( $database , "SELECT DISTINCT ip FROM totalonline WHERE file='$PHP_SELF'" );
if(!( $result )) {
print "totalonline Select Error > " ;
}

//number of rows = the number of people online
$user = mysql_num_rows ( $result );

//Показывает кто On-Line
mysql_close ();
if( $user == 1 ) {
print( "$user User onlinen" );
} else {
print( "$user Users onlinen" );
}
?>

Надеюсь, этот урок был тебе полезен. Развивай и вкладывай душу в свои проекты.