Jump to content


Photo

Usuarios


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

#31 MastersRoX

MastersRoX

    EDITADO

  • Banidos
  • PipPipPipPipPipPipPipPip
  • 774 posts
  • Sexo:Não informado

Posted 09/07/2004, 01:28

a soh ...

mas eu to com umas dúvidas ....
qual campo que mostra o nick do usuario online ?

alguem pode me explicar para q q serve cada campo da tabela ?
vlw ...

#32 Goku Jr

Goku Jr

    Nilson

  • Usuários
  • 3757 posts
  • Sexo:Masculino

Posted 09/07/2004, 11:17

campo dos USUARIOS ( id_usersonline )

putz e só ler o codigo ! e ir vendo o que contém em cada campo armazedado !

até + !!!
-----------------------------------------------------------------------
PALMEIRAS - Primeiro campeão do mundo em 1951

#33 MastersRoX

MastersRoX

    EDITADO

  • Banidos
  • PipPipPipPipPipPipPipPip
  • 774 posts
  • Sexo:Não informado

Posted 13/07/2004, 20:20

eu nao to conseguindo fazer funfar ...

tenho uma tabela membros, com os campos:
login|senha|

como eu adapto pra esse sistema ?

#34 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 03/08/2004, 13:00

//- ESCREVENDO -//
echo "<b>Usuários online:</b><br>";
//- USUARIOS -//
while($usersonline=mysql_fetch_array($usersonline2))
{
echo
$usersonline["id_usersonline"]
."<br>";
}



troca id_usersonline por login... :):):)
PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual

#35 Edmar

Edmar

    12 Horas

  • Usuários
  • 125 posts
  • Sexo:Não informado
  • Localidade:Curitiba-PR

Posted 20/08/2004, 19:58

Show de bola este código.. funcionou direitinho.

Eu fiz algumas alterações nele aqui para que atendesse as minhas necessidades.
No meu sistema ele funciona assim:

O usuário faz o login no site, mas ele não vê quais os outros usuários estão online.
Apenas o administrador consegue ver quem está online.

Até aí tudo bem... quando o usuário faz o logoff do site, automaticamente ele sai da lista dos online.

Agora vem o problema: se o usuário não fazer o logoff, e sim fechar a tela do browser direto, ele continua como online para o administrador, uma vez que o código na página do administrador apenas faz um SELECT pegando quem está online na tabela USERSONLINE.

Como fazer para que ao consultar quem está online, o sistema elimine aqueles que já estão offline?

Aqui está o código que eu utilizei nas páginas dos usuários:
PHP
<?php

$db
="nome_do_banco";

$data = date("YmdHis",time());

function
usersonline($db,$quem,$timestamp,$PHP_SELF,$REMOTE_ADDR){
  $timeout=$timestamp;
  $timestamp+=400;

  $usersonline=mysql_db_query($db, "DELETE FROM usersonline WHERE timestamp_usersonline < '$timeout'");
  $usersonline=mysql_db_query($db, "INSERT INTO usersonline VALUES('$quem','$timestamp','$PHP_SELF','$REMOTE_ADDR')");
  $usersonline=mysql_db_query($db, "SELECT DISTINCT remoteaddr_usersonline FROM usersonline") or die(mysql_error());
  $usuarios=mysql_num_rows($usersonline);

}
usersonline($db,$_SESSION[id],$data,$PHP_SELF,$REMOTE_ADDR);


?>


E aqui está o código que eu utulizei na página do administrador:
PHP
<?php

sql_useronline
= "SELECT * FROM usersonline";
$rs_useronline = mysql_query($sql_useronline);
$rows_useronline = mysql_num_rows($rs_useronline);            

if($rows_useronline > 0){
  while($usersonline = mysql_fetch_array($rs_useronline)){
    echo $usersonline['id_usersonline'];                
  
}
} else {
  echo "Nenhum usuário online";
}


?>


Valeu galera!!

Edição feita por: Edmar, 20/08/2004, 20:49.

Edmar

#36 Deyvidy Mateus

Deyvidy Mateus

    .."Ainda chego lá"..

  • Usuários
  • 108 posts
  • Sexo:Masculino
  • Localidade:Leopoldina/MG
  • Interesses:Banco de dados, Criação de Websites, Delphi, photoshop e Corel Dral.

Posted 21/08/2004, 04:45

Show de bola este código.. funcionou direitinho.

Eu fiz algumas alterações nele aqui para que atendesse as minhas necessidades.
No meu sistema ele funciona assim:

O usuário faz o login no site, mas ele não vê quais os outros usuários estão online.
Apenas o administrador consegue ver quem está online.

Até aí tudo bem... quando o usuário faz o logoff do site, automaticamente ele sai da lista dos online.

Agora vem o problema: se o usuário não fazer o logoff, e sim fechar a tela do browser direto, ele continua como online para o administrador, uma vez que o código na página do administrador apenas faz um SELECT pegando quem está online na tabela USERSONLINE.

Como fazer para que ao consultar quem está online, o sistema elimine aqueles que já estão offline?

Aqui está o código que eu utilizei nas páginas dos usuários:

PHP
<?php

$db
="nome_do_banco";

$data = date("YmdHis",time());

function
usersonline($db,$quem,$timestamp,$PHP_SELF,$REMOTE_ADDR){
  $timeout=$timestamp;
  $timestamp+=400;

  $usersonline=mysql_db_query($db, "DELETE FROM usersonline WHERE timestamp_usersonline < '$timeout'");
  $usersonline=mysql_db_query($db, "INSERT INTO usersonline VALUES('$quem','$timestamp','$PHP_SELF','$REMOTE_ADDR')");
  $usersonline=mysql_db_query($db, "SELECT DISTINCT remoteaddr_usersonline FROM usersonline") or die(mysql_error());
  $usuarios=mysql_num_rows($usersonline);

}
usersonline($db,$_SESSION[id],$data,$PHP_SELF,$REMOTE_ADDR);


?>


E aqui está o código que eu utulizei na página do administrador:
PHP
<?php

sql_useronline
= "SELECT * FROM usersonline";
$rs_useronline = mysql_query($sql_useronline);
$rows_useronline = mysql_num_rows($rs_useronline);            

if($rows_useronline > 0){
  while($usersonline = mysql_fetch_array($rs_useronline)){
    echo $usersonline['id_usersonline'];                
  
}
} else {
  echo "Nenhum usuário online";
}


?>


Valeu galera!!

aih cara.. teria jeito de vc postar tudo ae.. completo...?? pra dar uma olhada...???
faz o favor.. ae.. abracaoo :lol:
Venda de um Sistema Boletim Online
Múltiplas áreas:
ÁREA DA MANUTENÇÃO
ÁREA DO PROFESSOR
ÁREA DO ALUNO


MSN: deyvidy20@hotmail.com

#37 Edmar

Edmar

    12 Horas

  • Usuários
  • 125 posts
  • Sexo:Não informado
  • Localidade:Curitiba-PR

Posted 21/08/2004, 10:10

Esqueci de mensionar: fui testar o código conectando de dois micros diferentes, cada um com seu ip, para testar se apareceria todos os usuários online e percebi que sempre o último que entra no site apaga os demais usuários online ficando apenas ele como online.

Não sei se fiz certo mas este código é inserido em todas as páginas do site, para que o Administrador possa acompanhar e saber em qual página ele está navegando.

Abraços...
Edmar

#38 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 08/09/2004, 22:21

isso mesmo !!!! o último q entra apaga os q ja vazaram...

então a cada clique novo na página!!! tã nã.... só estão os usuários online!!!

$usersonline=mysql_db_query($db, "DELETE FROM usersonline WHERE timestamp_usersonline < '$timeout'");

PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual

#39 Naruto

Naruto

    12 Horas

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

Posted 14/09/2004, 18:59

ateh agora eu não consegui entender este código.. tem como explicar + detelhadamente?

kd a parte q faz inserir o nick do usuario na tabela.. o q eh essa variavel $quem? :huh:

Edição feita por: Naruto, 14/09/2004, 19:01.

uzumaki.naruto
-----------------------------------------------
"Eu não vou contra minhas palavras. Este é meu estilo ninja."
» Uzumaki Naruto

#40 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 15/09/2004, 17:55

Ae, ja vi que vc deve ser iniciante... olhe isso:

//$row["Apelido"]: isso é um mysql_fetch_array com o apelido do user cadastrado e logado


sintaxe mais básica do mysql:
INSERT = inserir
DELETE = deletar
FROM = de
WHERE = condição: onde
PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual

#41 ivanrolim

ivanrolim

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Não informado
  • Localidade:RJ - Brazil
  • Interesses:Xadrex 8x8 e 10x10, C, ASM, PDF´s, livros de ficção cientifica.

Posted 24/09/2004, 00:56

Mas é preciso instalar o APACHE para esses codigos funcionarem?

O internet explorer ou o opera já suportam processamento de ´PHP´ e mesmo mysql? grato :D

Edição feita por: ivanrolim, 24/09/2004, 00:59.

Otimizando..... minha meta constante :D

#42 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 27/09/2004, 19:59

amigo... definitivamente... precisa mesmo do apache instalado!
PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual

#43 goiaba2000

goiaba2000

    Tô com sono!

  • Usuários
  • 1118 posts
  • Sexo:Não informado
  • Localidade:Sobradinho-DF

Posted 27/09/2004, 20:32

ja vi que a procura por este tópico aumentou... então resolvi melhorar o codigo, ta mais compreensivel e lógico. (não testado).
///// ANTES DE TUDO INFORME AS INFORMAÇÕES ABAIXO /////
$db  	="NOME_DO_BANCO";
$tabela_de_usuarios	="TABELA_REFERENTE_AOS_USUÁRIOS_CADASTRADOS";
$campo_do_apelido	="CAMPO_REFERENTE_AO_APELIDO";
$campo_do_id  ="CAMPO_REFERENTE_A_SENHA";

///// FAÇA UMA QUERY PARA PEGAR O USUÁRIO ATUAL /////
/* - EXEMPLO:
$query= mysql_db_query($db,"SELECT * FROM $tabela_de_usuarios WHERE $campo_do_apelido='$confere_com_isso'");
$row=mysql_fetch_array($query);
*/

///// COMEÇÃNDO /////
$data= date("YmdHis",time());

class users_online
{
	function usersonline($quem,$timestamp)
	{
  global $db, $PHP_SELF, $REMOTE_ADDR;
  
  $timeout=$timestamp;
  $timestamp+=200;
  
  $query=mysql_db_query($db, "DELETE FROM usersonline WHERE timestamp_usersonline < '$timeout'");
  $query=mysql_db_query($db, "INSERT INTO usersonline VALUES('$quem','$timestamp','$PHP_SELF','$REMOTE_ADDR')");
  $query=mysql_db_query($db, "SELECT DISTINCT remoteaddr_usersonline FROM usersonline") or die(mysql_error());
  $n_users_registrados=mysql_num_rows($query);
  $users_registrados=mysql_db_query($db, "SELECT DISTINCT id_usersonline FROM usersonline WHERE id_usersonline!=''");
  
  $query=mysql_db_query($db, "SELECT DISTINCT id_usersonline,remoteaddr_usersonline FROM usersonline WHERE id_usersonline=''");
  $n_vizitantes=mysql_num_rows($query);
  
  ///// ESCREVENDO /////
  echo "<b>Usuários online:</b><br>\r\n";
  //- USUARIOS -//
  while($users_online=mysql_fetch_array($users_registrados))
  {
  	$this->escreve_usuario($users_online["id_users_online"])
  }
  //- VIZITANTES -//
  echo "<b>vizitantes:</b> ".$usersonline;
	}

	function escreve_usuario($quem)
	{
  global $db, $tabela_de_usuarios, $campo_do_id, $campo_do_apelido;
  $query=mysql_db_query($db, "SELECT * FROM $tabela_de_usuarios WHERE $campo_do_id = '$quem'");
  $usuario=mysql_fetch_array($query);
  echo "<a href=\"LINK\">".$usuario["$campo_do_apelido"]."</a>\r\n";
	}
}
$users_online = new users_online;

///// AGORA CHAME A CLASSE AONDE VOCÊ QUEISER QUE SEJAM LISTADOS OS USUARIOS /////
$users_online->usersonline($row["$campo_do_apelido"],$date);

a estrutura da tabela permanece a mesma.

Edição feita por: goiaba2000, 27/09/2004, 20:37.

PHP + UML + OO + Flash + MySQL = IMBATIVEL

http://www.guilardi.com.br
- portifólio
http://www.deusehmais.com.br
- projeto atual




0 user(s) are reading this topic

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

IPB Skin By Virteq