Bienvenid@ webmaster Acceso Directo :
ir al home
Home
Productos y Servicios
Artículos y Secciones
Foros de Discusión
Registro de Usuarios
Usuarios
Canal del Webmaster
Contactos
©2004 Blasten.com
Envía tus Articulos


ArtículoComentariosRecomendarGuardarImprimir
Usuarios en Linea con Objetos y MysqlResaltado
En esta ocasi?n no ser? un manual , es solamente una Clase en PHP , en la cual averiguaremos cuantos visitantes est?n en l?nea, la ventaja es que no acumula registros de un mismo visitante, si no que los actualiza, de esta forma si suponemos que nuestra p?gina tiene 3000 visitantes en l?nea no se colapse la base de datos por la gran cantidad de registros, esta ves no usaremos nuestro ya conocido script para conectarnos, en este caso solo cambiaremos los par?metros por los de nuestra base de datos , su configuraci?n es bastante sencilla.

Recomendaci?n : Si tu tienes un servidor Windows y no Apache ser? necesario que cambies la variable $_SERVER [REQUEST_URI] por $_SERVER [PHP_SELF] .

?Esto por que es importante?, pues por la sencilla raz?n de que si usas direcciones largas como esta pagina.php?variable=valor si usamos $_SERVER [PHP_SELF] no guardara ese registro si no que lo har? as?: pagina.php , omitiendo las variables, tambi?n debemos recordar que $_SERVER [REQUEST_URI] es una variable de APACHE y que este script funciona mejor sobre un servidor web Apache.

Esta es la estructura de nuestra tabla:


CREATE TABLE `usuariosenlinea` ( 
`timestamp` int(15) NOT NULL default '0', 
`ip` varchar(40) NOT NULL default '', 
`location` varchar(100) NOT NULL default '', 
KEY `timestamp` (`timestamp`), 
KEY `ip` (`ip`), 
KEY `location` (`location`) 
) TYPE=MyISAM; 



La configurac?on es sencilla y autoexplicativa a este script deberas guardarlo como class.online.php


<?php 
class Usuariosenlinea 

/* 
     * @param string $servidor el host para conectar, usualmente localhost 
     * @param string $basededatos el nombre de la base de datos 
     * @param string $nombredb el nombre de la tabla, preferentemente no editar 
     * @param string $usuario usuario de la base de datos 
    * @param string $pass la contrase?a de la base de datos 
*/ 

var $servidor 'localhost' 
   var 
$basededatos 'nombre_de_la_base' 
   var 
$nombredb 'usuariosenlinea' 
   var 
$usuario 'root' 
   var 
$pass 'contrase?a' 
## Fin de Conexion ## 
var $e_rror 
//Segundos para borrar de la base de datos a los usuarios inactivos 
var $segundos 120 
   var 
$ahora ;
//CONSTRUCTOR 
function Usuariosenlinea () { 
$this -> recargar (); 

     }   
function 
cuantos () { 

     return 
$this -> ahora 

     } 

     function 
enlinea () { 

         if( 
$this -> ahora == ) { 
     echo 
$this -> ahora " Usuario en linea" 
         } 
         else 
         { 
     echo 
$this -> ahora " Usuarios en linea" 
         } 

     } 

         function 
ipreal (){ 

             if ( 
$real_ip getenv 'HTTP_X_FORWARDED_FOR' )){

$explode_real_ip explode "," $real_ip ); 
                 return 
trim $explode_real_ip ]); 
             } 
             else 
             { 
             return 
getenv 'REMOTE_ADDR' ); 
             } 
         } 
         function 
error (){ 

         return 
$this -> e_rror mysql_error (); 
         } 
         function 
recargar () { 

$tiempo_actual time (); 
$tiempo_final $tiempo_actual $this -> segundos 
$ip $this -> ipreal (); 

         @ 
mysql_connect $this -> servidor $this -> usuario $this -> pass 

         or die( 
'Error al Intentar Conectar con la base de datos ' $this -> error (). '' ); 
         @ 
mysql_select_db $this -> basededatos 

         or die( 
'Error Seleccionando la base de datos ' $this -> error (). '' ); 

$result mysql_query "SELECT ip FROM $this->nombredb WHERE ip='$ip'" 
         or die( 
'Error de lectura en la base de datos ' $this -> error (). '' ); 

         if( 
mysql_num_rows $result ) == ){ 

mysql_query "INSERT INTO $this->nombredb VALUES ('$tiempo_actual','$ip','$_SERVER[REQUEST_URI]')" 
         or die( 
'Error al Insertar en la base de datos ' $this -> error (). '' ); 
        } 
         else 

         {         
mysql_query "UPDATE $this->nombredb SET timestamp='$tiempo_actual' where ip='$ip'" 
         or die( 
'Error al Insertar en la base de datos ' $this -> error (). '' ); 
         } 

mysql_query "DELETE FROM $this->nombredb WHERE timestamp < $tiempo_final" 
         or die( 
'Error al intentar borrar en la base de datos ' $this -> error (). '' ); 

$result mysql_query "SELECT ip FROM $this->nombredb" 
         or die( 
'Error de lectura en la base de datos ' $this -> error (). '' ); 

$this -> ahora mysql_num_rows $result ); 
mysql_close (); 
         } 

?> 

Forma de uso:


<?php 
//Pon esta L?neas donde quires que se visualizen los usuarios online 
include( "class.online.php" ); ///incluyo el archivo anterior 

$enlinea = new Usuariosenlinea (); 
$enlinea -> enlinea (); 
?> 





Artículos Relacionados
Clases y Objetos en Php (PHP)
Clases y Objetos (PHP)
Usuarios en l?nea (PHP)
Usuarios activos con PHP sin BD (PHP)
Mostrar la IP, de los Usuarios (PHP)
Banear Usuarios 2 (PHP)
Grafica gd de usuarios (PHP)
Estadisticas de usuarios EN 3D (PHP)
Valoraciones de los usuarios. (PHP)

Más Artículos relacionados >>
Artículo siguiente
Descargar este contenido

Autor: Webmaster
Fecha: 28/6/2004 (565 días) Lecturas : 6.042
Valoración :
Comentarios: 48

Pharmk471

Very nice site! cheap viagra ,
Valoración:
Pharmg568

Very nice site!
Valoración:
Pharmf889

Very nice site! cheap cialis http://opxaiey.com/oyyrsry/4.html
Valoración:
Pharmd483

Very nice site! [url=http://opxaiey.com/oyyrsry/2.html]cheap cialis[/url]
Valoración:
Pharmf105

Very nice site! cheap viagra
Valoración:
Pharmk64

Hello! dbeekef interesting dbeekef site!
Valoración:

Agregar a mi lista
Solicitar Ayuda


subir página
Los contenidos expuestos en blasten.com® son propiedad única de sus autores, por lo cual se prohíbe la reproducción total o parcial de los contenidos expuestos en este sitio sin previo consentimiento del autor y el editor. Para intercambios de contenidos haga clic aqui y contáctenos. El logotipo y el nombre BLASTEN así como todos los gráficos expuestos son propiedad exclusiva de este portal.
©2004-2005 blasten.com Network