Jump to content


Usuarios Online


  • Faça o login para participar
8 replies to this topic

#1 Miranda

Miranda
  • Visitantes

Posted 02/10/2004, 22:45

bom decidi que essa vai ser a ultima vez que tentarei fazer um sistema de usuarios online. O que está errado, não ta adicionando nada no campo IP.

<?
$host = "localhost";
$login = "miranda";
$senha = "******";
$db = "uol";
$tabela = "uol";

mysql_connect($host, $login, $senha) or die (mysql_error());
mysql_select_db($db);

$timestamp = "time()";
$timeout = "time()-1";
$ip = "$REMOTE_ADDR";

$sql = mysql_query("INSERT INTO $tabela (timestamp, ip) VALUES ('$timestamp','$ip')");
$sql = mysql_query("DELETE FROM $tabela WHERE timestamp<$timeout");
$sql = mysql_query("SELECT DISTINCT ip FROM $tabela") or die(mysql_error());

$usuarios = mysql_num_rows($sql);
mysql_close();

if ($usuarios == 1)
{
echo"Há $usuarios usúario online ";
}
else
{
echo"Há $usuarios usúarios online ";
}
?>

Pra que serve a linha KEY `ip`?

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


Edição feita por: Miranda, 02/10/2004, 22:45.


#2 magnum

magnum

    Eu chego lá! (12h)

  • Usuários
  • 271 posts
  • Sexo:Não informado
  • Localidade:Campina Grande - PB

Posted 03/10/2004, 00:00

faz assim:
$ip = $_SERVER['REMOTE_ADDR'];


a linha key, cria uma chave na sua tabela, no seu caso é uma chave secundária
Álvaro Magnum Barbosa Neto
WAM WebMedia
magnum@wamwebmedia.com.br

#3 Without a Nick

Without a Nick

    Sem culpa no cartório

  • Usuários
  • 2378 posts
  • Sexo:Não informado
  • Localidade:Guarulhos

Posted 03/10/2004, 02:45

evite tentar colocar funções como strings.

Tente fazer isso:

PHP
<?
$host
= "localhost";
$login = "miranda";
$senha = "******";
$db = "uol";
$tabela = "uol";

@
mysql_connect($host, $login, $senha) or die (mysql_error());
@
mysql_select_db($db);

$timestamp = time();
$timeout = time()-1;
$ip = $_SERVER["REMOTE_ADDR"];

$sql = mysql_query("INSERT INTO $tabela (timestamp, ip) VALUES ('$timestamp','$ip')");
$sql = mysql_query("DELETE FROM $tabela WHERE timestamp<$timeout");
$sql = mysql_query("SELECT DISTINCT ip FROM $tabela") or die(mysql_error());

$usuarios = mysql_num_rows($sql);
mysql_close();

if (
$usuarios == 1)
{
echo
"Há $usuarios usúario online ";
}
else
{
echo
"Há $usuarios usúarios online ";
}
?>



Acredito que funcionará

#4 apolo

apolo

    Php my life...

  • Usuários
  • 227 posts
  • Sexo:Masculino
  • Localidade:Rio das Ostras - RJ
  • Interesses:PHP e MYSQL

Posted 03/10/2004, 08:18

com certeza é a variável $REMOTE_ADDR, seu php.ini não deve estar com on em globais..

ajeite, ou faça igual o amigo em cima disse..

[]'s
Apolo
QUE DEUS ABENÇOE TODOS !!!!
---------------
Espero ter Ajudado alguém,
----------------------
Antes de postar, veja se realmente não tem outro jeito..

#5 Miranda

Miranda
  • Visitantes

Posted 03/10/2004, 10:13

blz consegui. + olha só a tabela, criou varios com o mesmo IP (dei Atualizar)

1096808912 200.217.146.110
1096808907 200.217.146.110
1096808854 200.217.146.110
1096808913 200.217.146.110
1096808914 200.217.146.110

como eu faria para no INSERT ter algo do tipo WHERE IP distinct IP sei que tem algo desse tipo + nao sei fazer :(

#6 Klaus

Klaus

    @ ubuntu jaunty

  • Ex-Admins
  • 7924 posts
  • Sexo:Masculino
  • Localidade:127.0.0.1

Posted 03/10/2004, 10:24

Coloca o IP como chave-primária ou faz uma consulta (SELECT) antes de inserir (INSERT).
Klaus Paiva
Conheça também: Taperás

#7 Miranda

Miranda
  • Visitantes

Posted 03/10/2004, 10:38

blz funcionou, tem como incrementar o sistema? uhm.. colocar um sistema de recorde junto?
criaria uma nova tabela (recorde) a logica seria:
if $usuarios(da tabela uol)<$usuarios(da tabela recorde) {
insert ...
?
como eu faria :rolleyes:

#8 rodrigo_kouti

rodrigo_kouti

    www.todosaqui.net

  • Usuários
  • 222 posts
  • Sexo:Não informado
  • Interesses:gosto de mulher e quero aprender PHP mysql

Posted 31/10/2004, 05:21

queria saber pq no meu ele nw qr funcionar so aparece 1 usuario mesmo qndo tem mais de 30 pq sera???
Vende dominios .com ou .net a R$30,00 reais, sem nenhuma taxa extra, compre já o seu pelo preço mais barato do brasil

interessados mande MP

#9 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 31/10/2004, 07:29

Assim Miranda..

PHP
<?php

$sql
= mysql_query("SELECT DISTINCT ip FROM $tabela") or die(mysql_error());
$online = mysql_num_rows($sql);

$Crecord = mysql_query("SELECT * FROM record") or die (mysql_error());
$x = mysql_fetch_array($Crecord);

if (
$x['record'] < $online ) {
//faz o update
}

?>

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq