Trucos y Tutoriales - Tutoriales PHP y APACHE

Con esta Clase PHP:

1.- Primero necesitamos usar una tabla que sera la que guarde los registros y esta debe ser su estructura:

 

Código:

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;

 

Ahora el script, llamalo class.online.php:

 

Código PHP:

<?php

 

class Usuariosenlinea

{

/*

    * @autor: victor simental

    * @uri: http://phpwebmasters.com

    * @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 = 0;

 

    //CONSTRUCTOR

    function Usuariosenlinea() {

 

    $this->recargar();

 

    }

                    

    function cuantos() {

 

    return $this->ahora;

 

    }

                    

    function enlinea() {

 

        if($this->ahora == 1) {

 

    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[0]);

            }

            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) == 0){

         

        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();

              

        }

 

}

 

?>

 

 

Y ahora la forma de uso:

 

 

Código PHP:

<?php

//Pon esta Líneas donde quires que se visualizen los usuarios online

include("class.online.php");

 

$enlinea = new Usuariosenlinea();

$enlinea->enlinea();

?>


La electrónica promete un e-hogar 2006

News image

Feria mundial en Las Vegas,El jueves parte el Consumer Electronic Show, el espacio gigante donde empresas clave aprovechan para lanzar sus productos.Crecerán los televisores planos y chatos, se empequeñecerán los ... Ver mas....

Estudio: La felicidad tiene precio, hasta cierto punto

WASHINGTON -- El dinero sí puede comprar la felicidad, al menos hasta cierto punto, según los resultados de un nuevo estudio. El bienestar emocional de los estadounidenses, su felicidad, aumenta a ... Ver mas....

Ver Hulu sin estar en USA

News image

  Hulu es una ‘nueva’ red social de publicación de videos en alta calidad donde están involucradas las principales cadenas de television norteamericanas, y cuyo propósito principal es ofrecer las series ... Ver mas....

Una joven lleva 12 años riéndose

                    La joven de la imagen es Xu Pinghui, una adolescente de nacionalidad china que tiene 13 años de edad. Desde que tenía ocho meses de vida padece una extraña enfermedad, ... Ver mas....

"O adelgazas o no asciendes"

Los policías nepaleses deben perder peso o abandonar toda esperanza de ascenso, según una nueva directiva de las autoridades que tratan de luchar contra la obesidad de los funcionarios que ... Ver mas....

Llegan los Wikibooks: libros digitales de licencia libre

News image

El proyecto Wikibooks nació como una forma de contribuir a la libre circulación de textos escolares, académicos, y de cualquier publicación que pueda ser utilizada en un aula o como ... Ver mas....

MANUAL PARA DETECTAR FALSOS MENDIGOS

La Oficina de Asuntos Públicos de Shangai, China, lanzó una "Guía de Estafadores" para que la gente "no caiga en las trampas de mendigos que fingen ... Ver mas....

Secretos tecnológicos que no quieren que sepas

                               Hay realidades que permanecen ocultas bajo falsas creencias o el interés de empresas y corporaciones como Google, los fabricantes de gadgets… e incluso tu propio tu jefe. Son ... Ver mas....

BitDefender detecta Zotob sin las firmas de virus

News image

Según el test independiente realizado por AV-Test, el antivirus BitDefender es capaz de detectar seis de las seis variantes del virus Zotob sin ser necesaria la actualización con firma de ... Ver mas....

Intel refrigera los núcleos de sus procesadores

News image

Con un desarrollo previo a lo agendado, Intel Corporation anunció que está acelerando la disponibilidad de procesadores Intel® Xeon™ dual-core con Hyper-Threading y procesadores Intel Xeon MP ... Ver mas....

Todos dejamos un rastro de bits

News image

Las comunicaciones telefónicas, las búsquedas en el ordenador o los datos en las redes sociales aportan datos sobre nuestra intimidad que llegan a empresas e instituciones. Eso, sin contar que la... Ver mas....

Les prohiben tomar cerveza y se fueron a huelga ¡

Un grupo de trabajadores está en huelga como protesta contra la decisión de la empresa de limitar el consumo de cerveza únicamente a la hora del almuerzo. El pe... Ver mas....

Toshiba presenta sus más recientes avances en CES 2006 (HD-DVD)

News image

Las Vegas, Nevada, Enero de 2006.- Toshiba Corporation tendrá una amplia línea de tecnologías y sistemas que la compañía presentará en el Consumer Electronics Show, CES 2006, de Las Vegas. ... Ver mas....

Diferencias entre un psicólogo y un psiquiatra

En ocasiones, muchísimas personas tienden a confundir la labor y especialidad llevada a cabo por un psicólogo y por un psiquiatra. De hecho, se trata de algo más ... Ver mas....

Llamadas gratis entre usuarios de iPhone o Android gracias a Vonage

News image

Una de las empresas que compiten con Skype en el campo de las llamadas VoIP es Vonage  y acaba de lanzar su aplicación para dispositivos con Android y iOS (... Ver mas....

-
+
6

Twitter 

Subscribete a Diginota