26/10/2010, 05:54
|
| | 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 = 2 ; // 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: $conn= mysql_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 |