PHP - Quiero saber como detectar usuario conectados a mi web

   
Vista:

Quiero saber como detectar usuario conectados a mi web

Publicado por Pedro (8 intervenciones) el 31/05/2014 18:42:46
Hola:
quiero saber como saber cuando un usuario está conectado a mi website. Si un usuario ve la foto o el nombre de otro usuario, mostrar si está conectado o no. He hecho una pequeña búsqueda y he averiguado con conexiones a mysql_server pero el resultado de las query no es lo que necesito. Hasta donde pude ver el resultado de querys que utilizan "information_schema.processlist" y "show_procceslist" sólo muestran el nombre de usuario que se utiliza para conectarse a mysql, no el nombre de usuario de la tabla de mi base de datos. Si pudieran ayudarme sería de gran ayuda. Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Quiero saber como detectar usuario conectados a mi web

Publicado por xve (5516 intervenciones) el 01/06/2014 10:41:27
Hola Pedro, si quieres hacerlo con PHP, la unica manera que se me ocurre, es que guardes de alguna manera el historial de usuarios que se van conectando... Una muy buena manera de hacerlo es utilizando memcache o Redis, ya que puedes ir guardando en la memoria del servidor los usuarios conectados.

Si no puedes utilizar utilizar alguna de estas herramientas, tendrás que utilizar un archivo log que te sirva para ello.
Aquí te muestro un ejemplo que encontré por Internet.... tendrás que ponerlo en todas las páginas de tu web.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
function getIP() {
	$ip="";
	if (getenv("HTTP_CLIENT_IP")) $ip = getenv("HTTP_CLIENT_IP");
		else if(getenv("HTTP_X_FORWARDED_FOR")) $ip = getenv("HTTP_X_FORWARDED_FOR");
		else if(getenv("REMOTE_ADDR")) $ip = getenv("REMOTE_ADDR");
		else $ip = "";
	return $ip;
}
 
function howManyIps() {
	$filename = "./howmanyip.log";
	$seconds = 300;
	$yourIP = getIP();
 
	if (file_exists($filename.".lock")) $readonly = true; else $readonly=false;
 
	$count = 0;
	//lock the file
	if (!$readonly) $fpLock = fopen($filename".lock", "w");
 
	//read data ips
	$fp = fopen($filename, "r");
	$arIPS=explode ("\n", fread($fp,filesize($filename)) );
	fclose($fp);
 
	//if file is locked get out
	if ($readonly) return count($arIPS);
 
	$s = "";
	$already=false;
	//update data and search user ip
	for ($i=0;$i<count($arIPS);$i++) {
 
		$arData= explode (" ", $arIPS[$i]);
 
		//update your user timer
		if ($yourIP==$arData[0]) {
			$already=true;
			$arData[1]=time();
		}
 
		// check if user is old
		if ( time()- (integer)$arData[1] < $seconds ){
			$s.=$arData[0]." ".$arData[1]."\n";
			$count++;
		}
 
	}
 
	if (!$already) {
		//your user is new, add it to the list
		$s.=$yourIP." ".time()."\n";
		$count++;
	}
 
	//save the list
	$fp = fopen($filename, "w");
	fwrite($fp,$s);
	fclose($fp);
 
	//remove thr lock
	fclose($fpLock);
	unlink($filename.".lock");
 
	return $count;
}
 
$usuariosConectados=howManyIps();
?>

Coméntanos si te sirve, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar