Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/10/2010, 05:54
Jony11111
 
Fecha de Ingreso: marzo-2010
Mensajes: 12
Antigüedad: 14 años, 8 meses
Puntos: 0
[Aporte] Sistema de usuarios online y total de visitas en Php y Mysql

Buenas gente.. antes que nada perdon si lo estoy posteando en la seccion incorrecta. Hace tiempo leo este foro y la gran mayoria de veces me ha ayudado bastante, asique quiero devolver eso con un pequeño aporte

es un script basico que funciona con PHP y MYSQL que muestra cuantos usuarios hay en linea y un total de visitas....


antes que nada, creen una base de datos y ejecuten estas consultas

Código:
CREATE TABLE IF NOT EXISTS `gente_online` (
  `date` int(11) NOT NULL,
  `ip` varchar(40) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Código:
CREATE TABLE IF NOT EXISTS `visitas` (
  `date` int(11) NOT NULL,
  `ip` varchar(40) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

consta de 3 archivos, que se los paso a mostrar:

users.php: este se encarga de tomar los usuarios en linea y guardarlos en la base de datos
Código PHP:
<?php 
// nos conectamos a la BD
require_once('config.php'); 
// Tiempo mximo de espera
$time ;
// Momento que entra en lnea
$date time() ;
// Recuperamos su IP
$ip $_SERVER['REMOTE_ADDR'] ;
// Tiempo Limite de espera 
$limite $date-$time*60 ;
// si se supera el tiempo limite (1 minutos) lo borramos
mysql_query("delete from gente_online where date < $limite") ;
//recogemos todo y lo copiamos al campo visitas
mysql_query("update INTO visitas (ip) SELECT gente_online.ip FROM gente_online");



// tomamos todos los usuarios en linea
$resp mysql_query("select * from gente_online where ip='$ip'") ;
// Si son los mismo actualizamos la tabla gente_online
if(mysql_num_rows($resp) != 0) {
mysql_query("update gente_online set date='$date' where ip='$ip'") ;
}
// de lo contrario insertamos los nuevos
else {
mysql_query("insert into gente_online (date,ip) values ('$date','$ip')") ;
}
// Seleccionamos toda la tabla
$query "SELECT * FROM gente_online";
// Ocultamos algn mensaje de error con @
$resp = @mysql_query($query) or die(mysql_error());
// almacenamos la consulta en la variable $usuarios
$usuarios mysql_num_rows($resp);

?>

visitas.php, es casi lo mismo que el users.php nomas que este cuenta las visitas

Código PHP:
<?php 

// nos conectamos a la BD
require_once('config.php');

// tomamos todos los usuarios en linea
$resp mysql_query("select * from visitas where ip='$ip'") ;
// Si son los mismo actualizamos la tabla visitas
if(mysql_num_rows($resp) != 0) {
mysql_query("update visitas set where ip='$ip'") ;
}
// de lo contrario insertamos los nuevos
else {
mysql_query("insert into visitas (ip) values ('$ip')") ;
}
// Seleccionamos toda la tabla
$query "SELECT * FROM visitas";
// Ocultamos algn mensaje de error con @
$resp = @mysql_query($query) or die(mysql_error());
// almacenamos la consulta en la variable $usuarios
$usuarios mysql_num_rows($resp);


?>
config.php, se encarga de la conexion a la base de datos
Código PHP:
$connmysql_connect("servidorsql""nombredeusersql""contrasenia");
     
mysql_select_db("nombredelabasededatos"$conn); 

ya con todo esto hecho, solo falta que funcione, para eso solo deben colocar este codigo en donde mas lo deseen

Código PHP:
<div>Usuarios online: <b>
<?php include('users.php');
echo 
$usuarios?></b></div>
<div>Total de visitas: <b>
<?php include('visitas.php');
echo 
$usuarios?></b></div>
creo que esta todo, lo hice uin poco a las apuradas, cualquier duda pregunten..

saludos!


pd: les dejo la demo, espero no lo tomen como spam, es solo para mostrar el resultado final :D
http://mulrehost.com.ar/u.php

Última edición por Jony11111; 26/10/2010 a las 06:10