Gerenciador De Ficheiros E Documentos – Parte 2

Seríe de 2 artigos > Artigo Anterior: Gerenciador De Ficheiros E Documentos – Parte 1

Na matéria anterior falamos sobre o Gerenciador de Ficheiros e demos algumas explicações. Hoje vamos falar um pouco mais sobre este assunto!

Anteriormente estavamos analisando ficheiro por ficheiro. Hoje, vamos focar em cima da funcionalidade, ok?

No final desta matéria estará disponível o link para os ficheiros deste sistema que estaremos lhe fornecendo gratuitamente.

Utilizando O Gerenciador

Acesso ao Sistema:

TELA DE ACESSO AO SISTEMA

Como você pode ver acima, trata-se de um script de login normal, porém, até para que aumente a segurança de quem usa o sistema, gravamos todos os acessos (após confirmação do login na pasta LOG).

Veja o código fonte da página autenticacao.php:


<?php
//******************************************************************************************
//DEFININDO O PATH ABSOLUTO E RELATIVO

$sysarray ['sistema'] ['path_relativo'] = "/porta_arquivos";
$sysarray ['sistema'] ['root_sistema'] = "{$_SERVER['DOCUMENT_ROOT']}{$sysarray ['sistema'] ['path_relativo']}";
//******************************************************************************************

include_once $sysarray ['sistema'] ['root_sistema']."/config.all.include.php";

$flag_cliente = iPOST('cliente');
$HTTP_SESSION_VARS['cliente_flag'] = $flag_cliente;

if ( $flag_cliente == 'T' )
{

$HTTP_SESSION_VARS['cliente_username'] = iPOST('cliente_user');
$HTTP_SESSION_VARS['cliente_password'] = iPOST('cliente_pass');

include_once $sysarray ['sistema'] ['root_sistema'].'/inc/autenticacao.rotinas.php';

  if (! $_SESSION['logado'])
  {    
    $erro = "Preenchimento incorreto dos campos. Por favor, tente novamente.";
  }
  else
  {
    javascript_alert ($_SESSION ['pagina']);
    javascript_location ($_SESSION ['pagina']);
  }
  
}
else
{
  $redir = $_GET['redir'];
  if (! empty($redir))
  {
    $erro = "Autenticação exigida.";
  }
  
  $enviado = iPOST('enviado');
  if ($enviado == 'posted')
  {
    include_once $sysarray ['sistema'] ['root_sistema'].'/inc/autenticacao.rotinas.php';
        
    if (! $_SESSION['logado'])
    {      
      $erro = "Preenchimento incorreto dos campos. Por favor, tente novamente.";
    }
    else
    {      
      javascript_location ($_SESSION ['pagina']);
    }
  }
}

?>

<br><br>

<table width="326" cellpadding="0" align="center" border="0" cellspacing="0">
  <tr>
    <td colspan="3"><img src="img/autenticacao_topo.gif" width='330' usemap="#mapa" border="0"></td>
  </tr>
  <tr><td bgcolor="#2844D0"><img src="img/autenticacao_baixo.gif" width='3'></td>
    <td bgcolor="#EBEBEB" align="center">
      <div align="center">
        <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
          <br>
          <table width="85%" border="0" cellspacing="0" cellpadding="4" align="center">
            <?php
           if (!empty ($erro))
           {
            echo "<tr>
                  <td height='12' colspan='2'><table width='100%' border='0' cellspacing='0' cellpadding='3'>
                    <tr>
                      <td width='20%' valign='top'><img src='img/img_alert.gif' width='38' height='37'></td>
                      <td><font face='Trebuchet MS' size=2 color='red'><b>$erro</b></td>
                    </tr>
                   </table></td>
                </tr>
                
                <tr>
                  <td height='12' colspan='2'><hr></td>
                </tr>";
           }
       ?>
            <tr>
              <td height="12" colspan="2"><center>
                  <span class='TextoPretoMedio'><b><b>Controle de acesso seguro</b>
                  </span>
                </center></td>
            </tr>
        
            <tr>
              <td colspan="2">&nbsp;</td>
            </tr>
        
            <tr>
              <td height="34" width="33%">
                  <div align="right"><span class='TextoPretoMedio'><b>Usuário:</b></span></div></td>
              <td height="34" width="67%"> <input type="text" name="usuario" size="25">
              </td>
            </tr>
        
            <tr>
              <td height="34" width="33%">
              <div align="right"><span class='TextoPretoMedio'><b>Senha:</b></span></div>
        </td>
          
              <td height="29" width="67%">
              <input type="password" name="senha" size="25">
              </td>
            </tr>
        
            <tr>
              <td colspan="2"><center>
                  <span class='TextoPretoPequeno'><br>
                  Seu IP / HOST foi identificado como: <br>
                  
                  <?
            
            
            $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
            
            if($host=='')
            {
              $host = $_SERVER['REMOTE_ADDR'];
            echo "$ip";
            }
            else
            {
              $ip = $_SERVER['REMOTE_ADDR'];
            echo "$ip / $host";
            }
                        
            
            
             ?>
                  </span>
                </center></td>
            </tr>
        
            <tr>
              <td colspan="2">
             <div align="right">
                <input type='hidden' name="enviado" value="posted">
                <input type="image" border="0" src="img/btn_ok.gif" width="75" height="23">
             </div>
           </td>
            </tr>
          </table>
      
        </form>
      </div></td>
   <td bgcolor="#2844D0"><img src="img/autenticacao_baixo.gif" width='2'></td>
  </tr>
  <tr bgcolor="#2844D0">
    <td colspan="3" valign="top"><img src="imagens/baixo.gif" width="1" height="3"></td>
  </tr>
</table>
<map name="mapa">
  <area shape="rect" coords="303,4,326,27" href="Javascript:window.close();" alt="Clique aqui para fechar esta janela.">
  <area shape="rect" coords="280,4,303,27" href="Javascript:alert('Por favor, entre em contato com o suporte técnico.')">
</map>

OBS.: Para efetuar seu acesso, você terá 3 níveis:

ADMINISTRADOR:

Login: admin | Senha: 123mudar

SUBADMIN:

Login 1: subadmin01 | Senha: 123mudar
Login 2: subadmin02 | Senha: 123mudar

USUÁRIO:

Usuário 1: usuario01 | Senha: 123mudar
Usuário 2: usuario02 | Senha: 123mudar

Para esta matéria, vamos apenas falar como funciona a área do Administrador! As demais funcionam da mesma forma (porém, com acesso limitado).

Área Do Administrador

Após acessar a área restrita, você terá acesso à uma área completa, prática e bem distribuída (conforme imagem a seguir).

TELA PRINCIPAL DO ADMIN

Na área de Gerenciamento, você terá acesso a algumas telinhas:

  • Alterar Senha (você poderá alterar a senha de acesso);
  • Verbose (Você poderá verificar o LOG de acesso e execuções no Sistema);
  • Logout (saída do sistema);
  • Inserir Arquivo (Você poderá selecionar o ficheiro a ser enviado);
  • Cadastrar Usuário (Você poderá cadastrar um novo Usuário);
  • Cadastrar Subadmin (Você poderá cadastrar um subadministrador).

Abaixo, teremos a área onde o Administrador poderá verificar seus Arquivos, assim como todo o conteúdo enviado aos Usuários e SubAdmins.

OBS.: Ao acessar o Verbose, você poderá visualizar todos os Logs do Sistema.

LOGS DOS REGISTROS

A função que grava esses dados é a função abaixo (que pode ser encontrada no ficheiro “global.functions.php”, que está dentro de LIB).


function grava_verbose ($string)
{
  global $sysarray;
  
  $data = date ("l, d/m/Y G:i:s");
  $host = gethostbyaddr($_SERVER['REMOTE_ADDR']);
  $ip = $_SERVER['REMOTE_ADDR'];
//  $efetuado = "Efetuado por";
  
  
  //gravando arquivo em array
  $array_arquivo = file ($sysarray ['sistema'] ['root_sistema']."/log/verbose.plaintext.log.txt");
  
  //adicionando elemento no começo do array
  
  array_unshift ($array_arquivo,"$data - $string  | IP: $ip , HOST: $host \r\n");
  
  //transformando elementos do array em string para gravar
  foreach ($array_arquivo as $chave => $valor)
  {
    $conteudo .= $valor;
  }
  
  //gravando a string no array
  $handle = @fopen ($sysarray ['sistema'] ['root_sistema']."/log/verbose.plaintext.log.txt","w+");
  @fwrite ($handle, $conteudo);  
}

O diferencial deste sistema é a inserção de registros personalizada que está em grande parte do Sistema (conforme o trecho abaixo):


    if ($resultado = sql_executa ($_CONEXAO,$query))
    {
      $acao = "Cadastro do Usuário [ $usuarios_nome ] efetuado por [ Administrador ].";
      grava_verbose ($acao);  

Uma outra área interessante (claro, é a principal – já que o sistema funciona para enviar ficheiros) é a de Upload.

Através desta área você seleciona o nome do Usuário que receberá o conteúdo, além de colocar uma pequena descrição!

OBS.: Pedimos apenas que os ficheiros não ultrapassem 8 MB, para não haver erro na hora do envio de conteúdo.

Veja abaixo a tela de upload e como ficará o sistema após o envio desses dados.

UPLOAD DE CONTEÚDO

TELA PRINCIPAL MODIFICADA

OBS.: Veja que na tela acima o conteúdo (que enviei para o próprio Administrador) aparecerá os dados do ficheiro, assim como seu tamanho, data e hora de envio.

Bem… este é apenas um exemplo, para que você possa conhecer melhor o sistema!

Mais a frente estaremos falando detalhadamente sobre esta e outras estruturas, baseando nossas matérias em CRM e WorkFlow.

Fique ligado em nossas matérias! Com certeza você vai gostar das demais matérias!

Em caso de dúvidas ou maiores informações, estamos a sua inteira disposição!

Download Do Script: Gerenciador De Ficheiros E Documentos

Be Sociable, Share!

38 Comentários

  1. Felipe

    ola. boa noite muito bom o script. mas fui instalar e da o seguinte erro.

  2. Olá Felipe,

    Em resposta a mensagem que você enviou ao meu email…

    Você está usando o Apache 2.xx, PHP Versão 5.2.13 e o mysql 5.1.45. Conforme lhe expliquei por email: Acesse o site do Apache e o PHP e verifique uma versão que dê suporte tanto à versão 4 do PHP e à 5 sem bugs.

    Qualquer outra dúvida, estou a disposição.

    Att,

    Quemuel Aquino

  3. Paulo Kampus

    Olá…baixei os scripts e instalei tudo direitinho…mas na hora de rodar via localhost/porta_arquivos….não aparece nada….somente uma pagina em branco….

  4. Paulo Kampus

    Ou melhor aparece isso na barra de endereço : http://www.localhost.com.br/porta_arquivos/

    e na tela aparece :
    Ainda não está pronto
    Estamos trabalhando por enquanto so temos uma idéia na cabeça e um projeto em andamento.
    Tomara que tudo funcione.
    O site ainda nao ficou pronto
    Criado em um Mac

    • Olá Paulo! Experimente efectuar o download da nova versão. Só tem que criar a base de dados e importar o SQL. E editar o ficheiro conexao.php que está na pasta config. Testei num servidor linux, com cpanel, PHP e MySQL5 e funciona direitinho, sem qualquer erro. Funcionou? Um Abraço Rui Soares

      • Paulo Kampus

        Grande Rui….agora funcionou….mas quando coloco as senhas do tutorial não consigo acessar o sistema …qual é mesmo a senha….?

        So lembrando que teu site foi um achado para mim…valeu…muito bom…

      • Paulo Kampus

        Rui….irmão peço perdão….pelos dois últimos comentários que fiz…por falta de atenção…estava colocando o nome da base de dados errada….quando fiz essa correção funcionou perfeito…grato pela atençã….desculpas mais uma vez….

        Funcionando Perfeitamente..vc é iluminado….vleu…..

  5. Olá, boas !

    Algum de vocês tem este script com a opção de criar e enviar o(s) arquivos para uma pasta ( diretorio ?

  6. Tihago Reis

    O script tem que ser revisado.. Em alguns lugares de declaração da tag php esta na forma antiga ex.:( <?, <?= passar para <?php ) e outros erro de codificação

    • Olá Thiago! Obrigado pela informação. Um plugin foi atualizado e ficou inativo causando esse problema. Já foi resolvido o problema. Mas, agradeço muito o seu alerta. Um Abraço! Rui Soares

  7. Luis Antonio

    Ola… Eu instalei e esta quase tudo OK, mas para excluir arquivos e usuarios, 'não funciona, e nao apresenta nenhum erro, só nao apaga, alguem pode me ajudar ????

  8. Renato Silva

    Primeiro gostaria de parabenizá-lo pelo excelente artigo. Segundo, estou desenvolvendo um site pessoal e estava precisando de um sistema desse tipo, gostaria de saber se posso fazer as modificações necessárias e usá-lo sem problemas… Abraços

  9. Cristiano

    Ola… Eu tive o mesmo problema, instalei e esta quase tudo OK, mas para excluir arquivos e usuarios, 'não funciona, e nao apresenta nenhum erro, só nao apaga, alguem pode me ajudar ????

  10. Joao Dutra

    Gostei muito do sistema. Instalei no meu computador num servidor local e tudo esta funcionando muito bem. Gostaria de saber se é possivel e como se faz para colocar os arquivos para download por categorias.

  11. Maximiller Comaccio

    Olá… Belo trabalho

    Já tem alguma novidade nos scripts. Tenho necessidade de um sistema como este, porém com algumas mais possibilidades. Existe alguma versão com mais opções mesmo que paga? Grato

  12. Andrew

    Aqui o "Visualizar ficheiros deste Cliente" não está a funcionar. De resto funciona. Nota máxima para o sistema.

    Como colocar o "Visualizar ficheiros deste Cliente" a funcionar?

    Obrigado.

    Cumprimentos,
    Andrew

  13. Andrew

    Já consegui resolver. Reparei que o display estava a none, por isso não aparecia.

    Outra dúvida… Ambos os botões de eliminar não estão a funcionar, o que se poderá passar?

    Obrigado.

    Cumprimentos,
    Andrew

  14. Vanessa

    Como eu faço para ter acesso ao codigo do Banco de Dados???

  15. Willian

    onde está o código do sql do banco de dados?

  16. wagner carvalho

    o meu da o seguinte erro autorização inexistente ou senha inválida ou expirada isso com usuário admin senha 123mudar

  17. renan

    O meu e o mesmo problema Wilian e do wagner nao encontrei o aqui .sql e da senha invalida quando fui entrar a primeira vez

  18. jjr

    Onde se encontra o , sql script? Pode me enviar? 

  19. Ulisses

    o meu sistema esta 100% mas não tem o link do log conforme publicação e não tem a opção do logo conforme os prints da tela… no lugar do link Verbose aparece o link "Alterar dados do ADMINISTRADOR " alguem pode me ajudar… meu email ulissesps84@gmail.com

  20. Roger

    Não consegui criar as tabelas, o arquivo script-sql.txt não veio no download.

  21. Ewerton

    Pode arrumar o script-sql.txt?? Não veio junto do arquivo e não consigo conectar ao banco de dados sem ele…. Tem como upar ele novamente?? 

    Abs

Participa! Comenta... para Paulo Kampus