ver usuarios conectados

hola!!

he seguido el tutorial para hacer un chat profesional y ha quedado bastante bien. Ahora me gustaría poder poner una ventanita en la q ver a los q estén conectados. El chat es de cbox. Alguien sabe como hacerlo?
Graciassss
No lo he usado nunca, pero creo recordar que habia algo bueno por ahí para eso, pero necesitas que tu servidor admita php. Puedes comprobarlo?

pon "php usuarios on line" en google y encontratas cosas como esta:
http://php.elmultiusos.com/doc.php?op=contingut&id=631&g=php&tit=Co…

Si lo logras te agradeceriamos que nos dieras instrucciones detalladas de como hacerlo. Si necesitas cualquier ayuda cuenta con nosotros.

Un saludo!
He encontrado un código q supuestamente muestra los usuarios online, hace un log de accesos y un contador:

CREATE TABLE `useronline` (
`timestamp` int(15) NOT NULL default ´0´,
`username` varchar(40) NOT NULL default ´´,
`file` varchar(100) NOT NULL default ´´,
`ip` varchar(255) NOT NULL default ´´,
PRIMARY KEY (`timestamp`),
KEY `username` (`username`),
KEY `file` (`file`)
) TYPE=MyISAM;



//------online.php
<?php
// Configuration
$dbhost = "localhost";
$dbuser = "user"; // MySQL Username
$dbpass = "pass"; // MySQL Password
$dbname = "dbname"; // Database Name
$timeoutseconds = 900;

$timestamp=time();
$timeout=$timestamp-$timeoutseconds;
$ip = substr($REMOTE_ADDR, 0, strrpos($REMOTE_ADDR,"."));
$today=date("n-j-y");
$now1=date("n/j/y ");
$hour=date("h");
$other=date(":i:s a");
$now=$now1.$hour.$other;

if ($uname)
{
$username=$uname;
}
else
{
$username="Guest";
}

//adds .1 to the end of a guests ip to make it easier for you to tell from their ip they are a guest
if ($username == Guest)
{
$add=".1";
$ip=$ip.$add;
}

// Connect to MySQL Database
@mysql_connect($dbhost,$dbuser,$dbpass);
@mysql_select_db($dbname) or die("No db");

// makes the log for today
$visitor_content="$now -- $username -- $url -- IP Hidden ";
$extra1="logs/";
$extra2="-visitor_log.txt";
$file=$extra1.$today.$extra2;

// Add this user to database
$loopcap = 0;
while ($loopcap<3 && @mysql_query("insert into useronline values(´$timestamp´,´$username´,´$url´,´$ip´)"))
{ // in case of collision
$log = fopen ("$file", "a");
fwrite($log, $visitor_content);
$timestamp = $timestamp+$username{0}; $loopcap++;
}

// Delete users that have been online for more then "$timeoutseconds" seconds
@mysql_query("delete from useronline where timestamp<$timeout");

// Select users online

$result1 = @mysql_query("select distinct username from useronline WHERE username != ´Guest´");
$members = @mysql_num_rows($result1);
mysql_free_result($result1);

$result = @mysql_query("select distinct ip from useronline");
$user = @mysql_num_rows($result);

mysql_free_result($result);
@mysql_close();

$guests=$user-$members;

// Show all users online

$lines = file($file);

// Loop through our array, show HTML source as HTML source; and line numbers too.
foreach ($lines as $line_num => $line) {
$hits++;
}

$maxload=300;
if ($user > $maxload)
{
echo "<script language=javascript> window.location=´http://yoursite.com/busy.php´ </script>";
}
?>


Para ver los visitantes y los miembros por separado usar:

Guests: $guests
Members: $members
Total: $user

No sé muy bien q tento q hacer :(
La primera parte en una tabla y el resto es código para la web?
primer problema....
intento crear la tabla, xo hay cosas en hostingcctw q no se con q se corresponden tales como: cotejamiento, atributos, predeterminado y extra. Y del mismo modo cosas como defaulto o asignarle el valro 0 a alguna variable no sé como ponerlo.
Puff, no tengo mucha idea de php y bases de datos, aunque me suena bastante por haber instalado ya muchos foros, directorios, etc.

Te puedo decir que para esto necesitas para empezar tener una base de datos MySQL en tu servidor.

Debes crearla y defnir una tabla con los datos que te he señalado en rojo en tu mensaje.

Luego tienes que colocar los datos de tu base de datos (username, contraseña y nombre de la base de datos) en los huecos que te he señalado en color verde.

Despues, el codigo que te queda (creo que sin la parte de color rojo) es la que tienes que pegar en la página web en la que quieras ver el contador.

Pero ya te digo, es resto de instrucciones... no domino este tema.

Bueno, pero si te interesa aprender el manejo de php y bases de datos creamos rapidamente una seccion en este foro para eso. Así todos pueden contribuir con lo que descubran y poco a poco aprendemos entre todos. La verdad es que con php y bases de datos se pueden hacer maravillas, ni te lo imaginas.

Te animas? Os animais? Creamos la sección e investigamos? Si sacamos algo en claro lo pasamos a lecciones de CCTW y todo!

Qué decís? :wink:
Jejeje por mí perfecto, una pena q no esté todo explicadito ya xD

Sigo sin saber como rellenar bien la tabla...hay cosas q no sé donde van y otros campos en los q si no pongo nada me da error.
Yo tambien me apunto, aunque no engo mucho tiempo para aprender.
CREATE TABLE `useronline` (
`timestamp` int(15) NOT NULL default ´0´,
`username` varchar(40) NOT NULL default ´´,
`file` varchar(100) NOT NULL default ´´,
`ip` varchar(255) NOT NULL default ´´,
PRIMARY KEY (`timestamp`),
KEY `username` (`username`),
KEY `file` (`file`)
) TYPE=MyISAM;

Esa es la tabla que debemos crear, hasta q llego a PRIMARY KEY no hay ningún problema xo a partir de ahí ni idea de como seguir... En phpMyADmin sería por ejemplo para el caso de `timestamp` int(15) NOT NULL default ´0´

campo -> timestamp
tipo-> int
longitud/valores -> 15
nulo -> not null
predeterminado -> 0

Sin embargo para estos tres campos
PRIMARY KEY (`timestamp`),
KEY `username` (`username`),
KEY `file` (`file`)
no consigo q se corresponda con los atributos q hay q completar. Alguna idea?
Quizás sea una locura lo que digo, pero ... no será quizás que pegando ese trozo de codigo en alguna consola o ventana del phpMyadmin se cree esa tabla automaticamente? Alguna ventana donde se pegue el codigo y se pulse en ejecutar o algo así...?? Me suena que en el phpmyadmin habia algo asi, pero no se si será para esto o no...

Luego entro en mi phpmyadmin y lo miro.

Un saludo! Vamos avanzando algo! je je. :wink: