- Como Criar Um Site, Blog – WebMaster.pt - http://www.webmaster.pt -

Gerenciador De Ficheiros E Documentos – Parte 2

Tweet [3]

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

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:

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 [5]

Tweet [3]
Be Sociable, Share!
  • [6]
  • [7]
  • [8]
  • [9]
  • [10]