Contabiizando o número de usuários online na página


A lógica é que o programa verifique na hora os IPs dos usuários que estão visitando o site no momento via ajax e que os IPs antigos sejam deletados.

Vamos criar um banco de dados com a tabela chamada 'usersonline'. Ela vai ter as colunas 'ip' e 'last_time'.

  
	$expired = 5; //minutos para inatividade de um usuário
	$ip= $_SERVER["REMOTE_ADDR"]; //pega o IP do visitante

	if(mysql_num_rows(mysql_query("SELECT * FROM usersonline WHERE ip = '".$ip."'")) > 0) { //se ip ja visitou, atualizo o tempo	
		mysql_query('UPDATE usersonline SET last_time = "'.time().'" WHERE ip = "'.$ip.'"');
	} else { // caso contrario, adiciono ele na tabela-lo
		mysql_query('INSERT INTO usersonline (ip, last_time) VALUES ("'.$ip.'", "'.time().'")');
	}

	//deletamos os ips com mais de 5 minutos de inatividade
	mysql_query('DELETE FROM usersonline WHERE last_time < '.(time()-($expired*60)));

	//retornamos o numero de usuarios online
	echo mysql_num_rows(mysql_query("SELECT * FROM usersonline")).' usuários online';





Comentários

Copyright © 2018 Anderson Bravo
www.andersonbravo.com.br
anderson@andersonbravo.com.br