Ir para conteúdo
Fórum Script Brasil
  • 0

Dúvida


Guest Mc Bolacha

Pergunta

3 respostass a esta questão

Posts Recomendados

  • 0

Segue um script que utiliza um arquivo *.txt que nesse caso deve-se chamar online.txt e estar no mesmo diretório do script, caso você queira modificar o nome do arquivo *.txt, modifique a variável em vermelho:

<?php

class UsersOnline{

var $StrPatch;

var $TimeOut;

    //Verifica se o ip consta na lista

    function Verifica($IpNow){

        $Arquivo = @file($this->StrPatch);

        $Reg = count($Arquivo);

        for($i=0;$i<$Reg;$i++){

            list($Ip,,) = explode("|",$Arquivo[$i]);

            if($Ip!=$IpNow)

                continue;

                return $i;

        }

    }

   

    //Limpa ips com data expirada

    function Limpar(){

        $DataAgora = date("YmdHis");

        $Arquivo = @file($this->StrPatch);

        $Arquivo2 = @fopen($this->StrPatch,"w+");

        $Reg = count($Arquivo);

        for($i=0;$i<$Reg;$i++){

            list($Ip,$Data) = explode("|",$Arquivo[$i]);

            if($Data>$DataAgora){

                fwrite($Arquivo2,"$Ip|$Data");

            }

        }

        fclose($Arquivo2); 

    }

   

    //Cadastra o novo ip na lista

    function Salva(){

        $IpAgora = $_SERVER['REMOTE_ADDR'];

        $DataAgora = (date("YmdHis")+$this->TimeOut);

        $Arquivo = fopen($this->StrPatch,"a");

        fwrite($Arquivo,"$IpAgora|$DataAgora\n");

        fclose($Arquivo);

    }

   

    //Atualiza o ip na lista

    function Update($Linha){

        $IpAgora = $_SERVER['REMOTE_ADDR'];

        $DataAgora = (date("YmdHis")+$this->TimeOut);

        $Arquivo = @file($this->StrPatch);

        $Arquivo2 = @fopen($this->StrPatch,"w+");

        $Reg = count($Arquivo);

        for($i=0;$i<$Reg;$i++){

            list($Ip,$Data) = explode("|",$Arquivo[$i]);

            if($i == $Linha)

                fwrite($Arquivo2,"$IpAgora|$DataAgora\n");

            else

                fwrite($Arquivo2,"$Ip|$Data");

        }

        fclose($Arquivo2);

    }

   

    //Verifica quantos estão online

    function Online(){

        $Arquivo = @file($this->StrPatch);

        $Reg = count($Arquivo);

        return $Reg;

    }

}

//Inicio

$online = new UsersOnline();

$online->StrPatch = 'online.txt';

$online->TimeOut = 200;

$Linha = $online->Verifica($_SERVER['REMOTE_ADDR]);

if(is_null($Linha)){

    $online->Limpar();

    $online->Salva();

    $On = $online->Online();

}

else{

    $online->Update($Linha);

    $online->Limpar();

    $On = $online->Online();

}

echo($On." usuário online!");

?>

espero que ajude!!!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,7k
×
×
  • Criar Novo...