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

Upload (resolvido)


Felipedcb

Pergunta

Olá galera, estou desenvolvendo um painel de controle para os usuários do meu server (coisa simples), e o sistema de upload que eu fiz não está funcionando como deveria.

O objetivo é não permitir que seja enviados arquivos com as extenções (.exe, .php, .bat e por ai vai...).

Fiz o código da seguinte maneira:

<?
include 'security.php';

    $diretorio1 = $_POST['diretorio1'];
    $arquivo1   = $_POST['file1'];
    $arquivo2   = $_POST['file2'];
    $arquivo3   = $_POST['file3'];

    $valida1 = (strtolower(substr($_FILES["file1"]["tmp_name"],-4)));
    $valida2 = (strtolower(substr($_FILES["file2"]["tmp_name"],-4)));
    $valida3 = (strtolower(substr($_FILES["file3"]["tmp_name"],-4)));

    If ($arquivo1 == ("") && $arquivo2 && ("") && $arquivo3 == (""))
    {
      ?>
      <script>
          window.alert('Erro ao tentar carregar arquivo!');
      </script>
      <?
    echo ("<script>location.href='cp1.php'</script>");
    break;
    }

    If ($valida1 == (".exe") or $valida1 == (".php"))
    {
      ?>
      <script>
          window.alert('Erro ao tentar carregar arquivo!');
      </script>
      <?
    echo ("<script>location.href='cp1.php'</script>");
    break;
    }
   
    If ($diretorio1 == ('uploads'))
    {
       $diretorio1 = ('../htdocs');
    }

    @ move_uploaded_file($_FILES["file1"]["tmp_name"], "../user/user - root/user - $user/htdocs/$diretorio1/{$_FILES["file1"]["name"]}");
    @ move_uploaded_file($_FILES["file2"]["tmp_name"], "../user/user - root/user - $user/htdocs/$diretorio1/{$_FILES["file2"]["name"]}");
    @ move_uploaded_file($_FILES["file3"]["tmp_name"], "../user/user - root/user - $user/htdocs/$diretorio1/{$_FILES["file3"]["name"]}");
    
    ?>
      <script>
          window.alert('O arquivo foi carregado com sucesso!');
      </script>
    <?

    echo ("<script>location.href='cp1.php'</script>");

?>

O arquivo está sendo enviado com qualquer extenção, ele está ignorando a verificação... uq eu fiz errado?

[]'s

Felipe

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Resolvi o problema!!!

Muito simples

Para pegar os 4 ultimos caracteres do nome do arquivo:

$valida1 = (strtolower(substr($_FILES["file1"]["name"],-4)));

Para pegar os 4 ultimos caracteres do nome do arquivo temporário:

$valida1 = (strtolower(substr($_FILES["file1"]["tmp_name"],-4)));

que será ".tmp"

por isso não estava dando certo! =D

vlws de qualquer forma!

Link para o comentário
Compartilhar em outros sites

  • 0

e aih beleza? sei q já ta resolvido o problema aí...

mas esse tipo q tais pegando a extensão, não sei como tais fazendo depois, mas pode dar problema se a extensão for por exemplo .html

já vão ser 5 caracteres com o "." e não 4... eu utilizo esse tipo aqui.. que bem bom!!

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,3k
    • Posts
      652,6k
×
×
  • Criar Novo...