Tidus 0 Denunciar post Postado Outubro 12, 2003 Eu ja tentei inumeras vezes fazer um script de usarios online que mostre o record de acesso..mas não consigo algume pode me ensiar ou fazer um para eu ter uma ideiaagradeço desde já...... :) Compartilhar este post Link para o post Compartilhar em outros sites
ZehOliveira 0 Denunciar post Postado Outubro 12, 2003 Pq você não posta uma de suas tentativas pra que agente trabalhe encima dela? =) Compartilhar este post Link para o post Compartilhar em outros sites
Tidus 0 Denunciar post Postado Outubro 12, 2003 e que o script esta na minha casa, e eu estou na casa da minha mãe.....a parte de mostar os user on e este aqui so falta a do record<?php$Timeout = "20"; // Time out em minutos$Files['UsersOnline'] = "usersonline.txt";$FileName = $Files['UsersOnline'];if (!file_exists($FileName)) {$File = @fopen("$FileName", "w"); if($File) {if (!eregi("win32", $GLOBALS['SERVER_SOFTWARE'])) {flock($File, 2); } fputs($File, ""); fclose($File); } }// Atualiza a lista$UserOk = false; $NewLines = ""; $Timeout *= 60;$File = file($FileName);foreach ($File as $Line) { list($IP, $LastHit) = explode("|", $Line); if ($IP == $REMOTE_ADDR) {$NewLines .= "$REMOTE_ADDR|". time() ."|\n"; $UserOk = true; } else if ($LastHit + $Timeout > time()) {$NewLines .= $Line; }}if (!$UserOk) {$NewLines .= "$REMOTE_ADDR|". time() ."|\n"; }$File = "";// Salva a lista e ve o numero de usuarios online$File = @fopen("$FileName", "w");if ($File) { if (!eregi("win32", $GLOBALS['SERVER_SOFTWARE'])) {flock($File, 2); } fputs($File, $NewLines); fclose($File); $File = file($FileName); $UsersOnLine = count($File);}else {$UsersOnLine = 0; }$File = "";echo "$UsersOnLine";?> Compartilhar este post Link para o post Compartilhar em outros sites
ZehOliveira 0 Denunciar post Postado Outubro 12, 2003 Caramba.. nunca tinha implementado lock de arquivo no php não, legalll essa! B) :D :D Como a função flock() não funciona em partições FAT num dá pra eu testar aqui (to no windows no momento), mas qual teu problema em relação a esse script? Compartilhar este post Link para o post Compartilhar em outros sites
Tidus 0 Denunciar post Postado Outubro 13, 2003 e que eu queria colocar o "record de usuarios online" e não estou conseguindo.você pode me ajudar Compartilhar este post Link para o post Compartilhar em outros sites
ZehOliveira 0 Denunciar post Postado Outubro 13, 2003 Pode fazer usando uma logica simples... toda vez que ler a contagem atual de usuários on-line você comparar com o conteudo de um arquivo (esse arquivo vai contar apenas o numero maximo de users online) caso seja maior você grava ele denovo com o novo total. Caso não seja não faça nada! Compartilhar este post Link para o post Compartilhar em outros sites
Tidus 0 Denunciar post Postado Outubro 13, 2003 não entendi você pode me dar um exemplo?vlw Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Outubro 13, 2003 Por exemplo, você vai registrar o recorde em um coluna x do mysql, você ve quantos usuarios estão online no momento, se for maior que o valor do campo x ele vai atualizar para a quantidade que tem agora, caso seja menor que o do campo x não vai acontecer nada, é simples. Compartilhar este post Link para o post Compartilhar em outros sites
Tidus 0 Denunciar post Postado Outubro 18, 2003 tem como você criar o script para eu ter uma ideia de como funciona, e q sou novo e estou começando agora..pode ser Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Outubro 18, 2003 Depois desse seu código ficaria assim: $sql = "SELECT * FROM tabela"$q = mysql_query($sql);while ($s = mysql_fetch_array($q);$recorde = $s['recorde']; // Esse campo ['recorde'] é o campo do bd que marca o recorde.if ($quantidade_de_usuarios > $recorde) {$d = mysql_query("UPDATE tabela SET recorde='$quantidade_de_usuarios'");// Isso não precisa, mas é melhor pra saber se foi gravado corretamente:if (!$d) {echo "Erro ao atualizar bd";} else {echo "Informação atualizada com sucesso";} Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Outubro 18, 2003 Hehe, faltou algo: $sql2 = "SELECT * FROM tabela"$q2 = mysql_query($sql2);while ($s2 = mysql_fetch_array($q2);$recorde2 = $s2['recorde'];//E pra aparecer a quantidade de pessoas:echo "O recorde de usuários online é de $recorde2 pessoas";echo "Estão online agora $quantidade_de_usuarios pessoas";Valew? Compartilhar este post Link para o post Compartilhar em outros sites
Tidus 0 Denunciar post Postado Outubro 18, 2003 esta dando erro você sabe onde é?<?php$Timeout = "20"; // Timeout em minutos$Files['UsersOnline'] = "usersonline.txt";$FileName = $Files['UsersOnline'];if (!file_exists($FileName)) {$File = @fopen("$FileName", "w"); if($File) {if (!eregi("win32", $GLOBALS['SERVER_SOFTWARE'])) {flock($File, 2); } fputs($File, ""); fclose($File); } }// Atualiza a lista$UserOk = false; $NewLines = ""; $Timeout *= 60;$File = file($FileName);foreach ($File as $Line) { list($IP, $LastHit) = explode("|", $Line); if ($IP == $REMOTE_ADDR) {$NewLines .= "$REMOTE_ADDR|". time() ."|\n"; $UserOk = true; } else if ($LastHit + $Timeout > time()) {$NewLines .= $Line; }}if (!$UserOk) {$NewLines .= "$REMOTE_ADDR|". time() ."|\n"; }$File = "";// Salva a lista e ve o numero de usuarios online$File = @fopen("$FileName", "w");if ($File) { if (!eregi("win32", $GLOBALS['SERVER_SOFTWARE'])) {flock($File, 2); } fputs($File, $NewLines); fclose($File); $File = file($FileName); $UsersOnLine = count($File);}else {$UsersOnLine = 0; }$File = "";echo "$UsersOnLine";$sql = "SELECT * FROM tabela"$q = mysql_query($sql);while ($s = mysql_fetch_array($q);$recorde = $s['recorde']; // Esse campo ['recorde'] é o campo do bd que marca o recorde.if ($quantidade_de_usuarios > $recorde) {$d = mysql_query("UPDATE tabela SET recorde='$quantidade_de_usuarios'");// Isso não precisa, mas é melhor pra saber se foi gravado corretamente:if (!$d) {echo "Erro ao atualizar bd";} else {echo "Informação atualizada com sucesso";}$sql2 = "SELECT * FROM tabela"$q2 = mysql_query($sql2);while ($s2 = mysql_fetch_array($q2);$recorde2 = $s2['recorde'];//E pra aparecer a quantidade de pessoas:echo "O recorde de usuários online é de $recorde2 pessoas";echo "Estão online agora $quantidade_de_usuarios pessoas";?> Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Outubro 19, 2003 Qual o erro? Compartilhar este post Link para o post Compartilhar em outros sites
Tidus 0 Denunciar post Postado Outubro 19, 2003 erro na linha 52.eu coloco um include no site para o useronlie.tenho que criar um useronline.txttb tenho q reicar um recorde.rxt? Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Outubro 19, 2003 Hehe, agora que eu vi, você pegou o código que eu postei e colocou inteirinho do jeito que tava, você tem que mudar a variavel $quantidade_de_usuarios para a que tem a quantidade de usuarios no momento, quanto ao erro: A linha 52 é a que fecha o bloco de comandos php, você deve ter esquecido de fechar algum comando como o if ( {} ), procura aí. Compartilhar este post Link para o post Compartilhar em outros sites
Tidus 0 Denunciar post Postado Outubro 20, 2003 tem como você monar o code e me passar ele?vlw Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Outubro 20, 2003 O que a pressa não faz hehe, eu passei algumas coisas erradas (o que estiver em vermelho): <?php $Timeout = "20"; // Timeout em minutos $Files['UsersOnline'] = "usersonline.txt"; $FileName = $Files['UsersOnline']; if (!file_exists($FileName)) {$File = @fopen("$FileName", "w"); if($File) {if (!eregi("win32", $GLOBALS['SERVER_SOFTWARE'])) {flock($File, 2); } fputs($File, ""); fclose($File); } } // Atualiza a lista $UserOk = false; $NewLines = ""; $Timeout *= 60; $File = file($FileName); foreach ($File as $Line) { list($IP, $LastHit) = explode("|", $Line); if ($IP == $REMOTE_ADDR) {$NewLines .= "$REMOTE_ADDR|". time() ."|\n"; $UserOk = true; } else if ($LastHit + $Timeout > time()) {$NewLines .= $Line; } } if (!$UserOk) {$NewLines .= "$REMOTE_ADDR|". time() ."|\n"; } $File = ""; // Salva a lista e ve o numero de usuarios online $File = @fopen("$FileName", "w"); if ($File) { if (!eregi("win32", $GLOBALS['SERVER_SOFTWARE'])) {flock($File, 2); } fputs($File, $NewLines); fclose($File); $File = file($FileName); $UsersOnLine = count($File); } else {$UsersOnLine = 0; } $File = ""; echo "$UsersOnLine"; $sql = "SELECT * FROM tabela" $q = mysql_query($sql); while ($s = mysql_fetch_array($q) { // Tinha esquecido de abrir o while hehe $recorde = $s['recorde']; // Esse campo ['recorde'] é o campo do bd que marca o recorde. if ($quantidade_de_usuarios > $recorde) { $d = mysql_query("UPDATE tabela SET recorde='$quantidade_de_usuarios'"); } // Faltava fechar um if // Isso não precisa, mas é melhor pra saber se foi gravado corretamente: if (!$d) { echo "Erro ao atualizar bd"; } else { echo "Informação atualizada com sucesso"; } } //e Fechar o while hehe $sql2 = "SELECT * FROM tabela" $q2 = mysql_query($sql2); while ($s2 = mysql_fetch_array($q2); $recorde2 = $s2['recorde']; //E pra aparecer a quantidade de pessoas: echo "O recorde de usuários online é de $recorde2 pessoas"; echo "Estão online agora $quantidade_de_usuarios pessoas"; ?> Acho que é isso, testa aí, :huh: . Compartilhar este post Link para o post Compartilhar em outros sites
Tidus 0 Denunciar post Postado Outubro 20, 2003 esta dando ente erroParse error: parse error in /home/otex/public_html/online.php on line 32 Compartilhar este post Link para o post Compartilhar em outros sites
Tidus 0 Denunciar post Postado Outubro 25, 2003 pq esta dando este erro alguém pode me ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Alisson Rodrigues 3 Denunciar post Postado Outubro 25, 2003 Coloca um ; (ponto e vírgula) na final da linha 31:tava assim: $sql = "SELECT * FROM tabela"Fica assim:$sql = "SELECT * FROM tabela"; Compartilhar este post Link para o post Compartilhar em outros sites