Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/01/2009, 13:06
Avatar de MasterXNicoX
MasterXNicoX
 
Fecha de Ingreso: junio-2008
Ubicación: ../Arg/SanLuis.city
Mensajes: 943
Antigüedad: 16 años, 5 meses
Puntos: 28
Respuesta: [Contador] Pregunta..

Buenas a todos, estube buscando sobre este tema de los contadores y encontré esto:

Cita:
Sesiones (Sessions) de PHP

La alternativa es utilizar sesiones de PHP (sessions), una solución viable pero tiene algunos incovenientes, como es el de contabilizar sesiones que no son propias de nuestro sitio, si estas en un host compartido.

El código es sumamente sencillo y se de puede adaptar a nuestras necesidades.

Código PHP para desplegar visitantes activos, tomando en cuenta solo sesiones activas en los 2 últimos minutos (120 segundos).

function getUsersOnline() {
$count = 0;

$handle = opendir(session_save_path());

if ($handle == false) return -1;

while (($file = readdir($handle)) != false) {
if (ereg(”^sess”, $file)) {

if(time()- fileatime(session_save_path() . ‘/’ . $file) < 120) { // 120 secs = 2 minutes session
$count++;
}

}
}
closedir($handle);

return $count;
}

Paso 2, debes poner una sentencia para iniciar una sesión de php en el inicio de cada página antes de desplegar contenido html. Esta función registra una sessión, que no es más que un archivo indicando que se ha iniciado una sesión web.

session_start();

Para llamar la función getUsersOnline lo puedes hacer así:

echo ‘Usuarios en línea: ‘.getUsersOnline();

Separando las sesiones propias del host compartido

Si utilizas un servidor compartido, debes separar los archivos de sesiones de tu sitio en un directorio particular, asi solo contar sesiones de usuarios propias.

Definir un archivo de sesiones al inicio del script, claro debes crear antes el directorio y permitir la escritura. (Debes establecer la ruta apropiada).

session_save_path(”/ruta/usuario/completa”);

Implementación de la solución

Está solución fue puesta con la salvedad de que el contador no se renueva inmediatamente, algunas veces, ya que el directorio utiliza un sistema de cache para aliviar la carga del mysql durante las horas de mayor tráfico.
Yo no se casi nada de PHP, alguien me podria explicar de una mejor forma como se haria esto por favor??.

Creo que está re bien explicado para alguien que sabe sobre el tema..

Bueno, espero sus respuestas!.
__________________
Adivino del Foro y Admirador de Sabios