Jump to content


Photo

Usuários On-line...


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

#1 andreylefkum

andreylefkum

    Andrey José

  • Usuários
  • 145 posts
  • Sexo:Não informado

Posted 05/08/2005, 08:46

Pessoal é o seguinte... estou com um problema!!! Abaixo esta um código que achei na net e implementei para aparecer os usuários que estao logados e para usuários que nao estao logados... mas tem um problema... se eu pegar por ip pra verificar quantos usuários estao on-line... Se por um acaso tiver dois usuários em uma lan... vai aparecer somente um usuário...

Tentei fazer por sessão... mas já existe uma sessão para a área restrita... entao o que farei???

da um please ai... valeu...

<?
$usuario_sessao_agora = $_SESSION['nomedousuario'];

$nick = $usuario_sessao_agora;

if($nick == ""){
$nick = 13;
}
include "conecta.php";
//DEFINE HORÁRIO DE AGORA...
$ts = time();
//HORÁRIO DE AGORA MENOS 60...
$to = time()-60;
//VERIFICA SE EXISTE ALGUM REGISTRO DO IP DA MÁQUINA QUE ESTÁ ACESSANDO
$sql = @mysql_query("SELECT count(*) FROM usuarios_online WHERE ip = '$REMOTE_ADDR'");
//QUANTIDADE DE RESULTADOS?? ...
$sqlt = @mysql_result($sql,0,0);
//CASO HAJA ALGUM REGISTRO COM O IP DA MÁQUINA QUE ESTÁ ACESSANDO DA UM UPDATE DE INFORMAÇÕES...
if ($sqlt) @mysql_query("UPDATE usuarios_online
                         SET timestamp = '$ts'
                            ,local = '$PHP_SELF'
                            ,nick = '$nick'
                            WHERE ip = '$REMOTE_ADDR'");
//SE NÃO INSERE NOVOS DADOS...
else @mysql_query("INSERT INTO usuarios_online (timestamp,ip,local,nick) VALUES ('$ts','$REMOTE_ADDR','$PHP_SELF','$nick')");
//DELETA TODOS REGISTROS DE USUÁRIOS QUE ESTIVEREM A MAIS DE 60 SEGUNDOS SEM ACESSO...
$sql = @mysql_query("DELETE FROM usuarios_online WHERE timestamp < $to");
//SELECIONA A TABELA DE USUARIOS_ONLINE...

$sql = "SELECT ip, nick FROM usuarios_online ORDER BY nick";
        $resultado = mysql_query($sql);
        //CONTA QUANTOS REGISTROS VOLTARAM DA BASE DE DADOS...
$cont = mysql_num_rows($resultado);


$sql1 = "SELECT ip, nick FROM usuarios_online WHERE nick <> 13 ORDER BY nick";
        $resultado1 = mysql_query($sql1);
        //CONTA QUANTOS REGISTROS VOLTARAM DA BASE DE DADOS...
$cont1 = mysql_num_rows($resultado1);

if($cont1 <= 1){
$s = "";
}else{
$s = "s";
}
$online_usu = "$cont1 usuário$s";


$sql2 = "SELECT ip, nick FROM usuarios_online WHERE nick = 13 ORDER BY nick";
        $resultado2 = mysql_query($sql2);
        //CONTA QUANTOS REGISTROS VOLTARAM DA BASE DE DADOS...
        $cont2 = mysql_num_rows($resultado2);

if($cont2 <= 1){
$s = "";
}else{
$s = "s";
}
$online_ano = "$cont2 usuário$s";


//SE HOUVER MAIS QUE UM USUARIO ADICIONA UM 's'...
if($cont <= 1){
$s = "";
}else{
$s = "s";
}
$online_num = "$cont usuário$s";

$online_usu_cad = "";

$num = 1;
while($linha1 = mysql_fetch_array($resultado1)){
               $usuario = $linha1['nick'];
               if($num < $cont1){
               $ponto = ", ";
               }else{
               $ponto = "";
               }
               $online_usu_cad .= $usuario.$ponto;
               $num = $num + 1;
}
?>


#2 Stormbringer

Stormbringer

    I'd love to stay with you all

  • Ex-Admins
  • 2927 posts
  • Sexo:Não informado
  • Localidade:Goiânia - GO
  • Interesses:Atualmente: pesquisa e desenvolvimento de web-games

Posted 05/08/2005, 11:06

alem do ip remote_addr, grave tambem o forwarded_for, assim vc fica com o ip principal E o ip da rede interna, pra poder diferencia-los ;)

๑۩۞۩๑Let the Carnage Begin!!๑۩۞۩๑


#3 andreylefkum

andreylefkum

    Andrey José

  • Usuários
  • 145 posts
  • Sexo:Não informado

Posted 05/08/2005, 13:44

Cara... voce poderia me dar um auxilio para este problema... nunca fiz este tipo de verificação... (y)

Ei poderia me dar um please cara

Edição feita por: andreylefkum, 06/08/2005, 18:48.


#4 -=Evil.ReNaN=-

-=Evil.ReNaN=-

    Novato no fórum

  • Usuários
  • 7 posts
  • Sexo:Não informado

Posted 15/08/2005, 09:26

Ae também estou interessado em pegar o ip da rede pq to com o mesmo problema, mais tipo, eu naum uso cadastro e login de usuários naum!! :o

Se alguém puder me dá uma ajuda ae, meu MSN evilrenan@hotmail.com
Meu website: http://www.clanbsk.com.br B)

Edição feita por: -=Evil.ReNaN=-, 15/08/2005, 09:31.

Aff³...




1 user(s) are reading this topic

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

IPB Skin By Virteq