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

Não consigo fazer validação usando getimagesize


marcus.guarani

Pergunta

//INFORMAÇÕES VINDO VIA POST        
    $tar_pro_id             = $_POST['tar_pro_id'];
    $tar_pro_nome_pt        = trim(addslashes($_POST['tar_pro_nome_pt']));        
    $tar_pro_nome_us        = trim(addslashes($_POST['tar_pro_nome_us']));
    $tar_pro_descricao_pt    = trim(addslashes($_POST['tar_pro_descricao_pt']));
    $tar_pro_descricao_us    = trim(addslashes($_POST['tar_pro_descricao_us']));;    
    $tar_pro_imagem         = $_FILES['tar_pro_imagem'];
    $tar_pro_imagem_antigo     = $_POST['tar_pro_imagem_antigo'];

    
    // Lista de tipos de arquivos permitidos
    $tiposPermitidos= array('image/jpg','image/jpeg','image/png','image/gif');
    // Tamanho máximo (em bytes)
    $tamanhoPermitido = 1024 * 1000; // 1024 Kb

    // O nome original do arquivo no computador do usuário
    $arqName = $_FILES['tar_pro_imagem']['name'];
    // O tipo mime do arquivo. Um exemplo pode ser "image/gif"
    $arqType = $_FILES['tar_pro_imagem']['type'];
    // O tamanho, em bytes, do arquivo
    $arqSize = $_FILES['tar_pro_imagem']['size'];
    // O nome temporário do arquivo, como foi guardado no servidor
    $arqTemp = $_FILES['tar_pro_imagem']['tmp_name'];
    // O código de erro associado a este upload de arquivo
    $arqError = $_FILES['tar_pro_imagem']['error'];    
    // O código de dimensões associado a este upload de arquivo
    list($largura, $altura) = getimagesize($_FILES['tar_pro_imagem']['tmp_name']);


    if($arqError == 4){

        // Atualizando informações no BD
        $sql = "UPDATE t_produto SET tar_pro_nome_pt ='$tar_pro_nome_pt', tar_pro_nome_us ='$tar_pro_nome_us', tar_pro_descricao_pt ='$tar_pro_descricao_pt',
                tar_pro_descricao_us ='$tar_pro_descricao_us' WHERE tar_pro_id ='$tar_pro_id'";
        // Executa a consulta
        $query = mysqli_query($conn,$sql);

        if ($query == true) {
                    
            echo "<script type='text/javascript'>";        
            echo "alert('AVISO: O Titulo ".$tar_pro_nome_pt." foi atualizado com sucesso!');";
            echo "</script>";
            echo "<meta http-equiv='refresh' content='0;URL=gerenciador_produtos.php'>";     
        }

    }else{    
        

    if ($arqError == 0){
        /// Verifica o tipo de arquivo enviado
        if (array_search($arqType, $tiposPermitidos) === false) {
            echo "<script type='text/javascript'>";
            echo "alert('AVISO: O tipo de arquivo enviado é inválido!');";
            echo "</script>";
            echo "<meta http-equiv='refresh' content='0;URL=gerenciador_produtos.php'>";
        
        // Verifica o tamanho do arquivo enviado
        } else if ($arqSize > $tamanhoPermitido) {
            echo "<script type='text/javascript'>";
            echo "alert('AVISO: O tamanho do arquivo enviado é maior que o limite!');";
            echo "</script>";
            echo "<meta http-equiv='refresh' content='0;URL=gerenciador_produtos.php'>";
                    
        // Verifica as dimensões do arquivo enviado
        } else if ($largura != '560' || $altura != '350') {
            echo "<script type='text/javascript'>";
            echo "alert('AVISO: Tamanho da Imagem enviada deve ser: " . $largura . " x " . $altura  . " px.');";
            echo "</script>";
            echo "<meta http-equiv='refresh' content='0;URL=gerenciador_produtos.php'>";            
            
        // Não houveram erros, move o arquivo
        } else {
            $pasta = 'foto_produto/';
            
            // Pega a extensão do arquivo enviado
            $extensao = strtolower(end(explode('.', $arqName)));
            
            // Define o novo nome do arquivo usando um UNIX TIMESTAMP
            $nome = time() . '.' . $extensao;

            // Escapa os caracteres protegidos do MySQL (para o nome do usuário)
            $nomeMySQL = mysqli_real_escape_string($conn,$_POST['tar_pro_nome_pt']);

            $upload = move_uploaded_file($arqTemp, $pasta . $nome);

                // Verifica se o arquivo foi movido com sucesso
                if ($upload == true){                
                
                        // Atualizando informações no BD
                        $sql = "UPDATE t_produto SET tar_pro_nome_pt ='$tar_pro_nome_pt', tar_pro_nome_us ='$tar_pro_nome_us', tar_pro_descricao_pt ='$tar_pro_descricao_pt',
                                tar_pro_descricao_us ='$tar_pro_descricao_us', tar_pro_imagem='$nome' WHERE tar_pro_id ='$tar_pro_id'";
                        // Executa a consulta
                        $query = mysqli_query($conn,$sql);
                    
                        unlink('foto_produto/'.$tar_pro_imagem_antigo);            

                    
                    if ($query == true){
                        
                        echo "<script type='text/javascript'>";        
                        echo "alert('AVISO: O titulo ".$tar_pro_nome_pt." foi atualizado com sucesso!');";
                        echo "</script>";
                        echo "<meta http-equiv='refresh' content='0;URL=gerenciador_produtos.php'>";     
                    }
                }
        }
    
    }else{

        echo "<script type='text/javascript'>";
        echo "alert('AVISO: Ocorreu algum erro com o upload, por favor tente novamente!');";
        echo "</script>";
        echo "<meta http-equiv='refresh' content='0;URL=gerenciador_produtos.php'>";
    }
}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,8k
×
×
  • Criar Novo...