PHP

Como bloquear downloads de arquivos em PHP

Em certas ocasiões é útil bloquear downloads para usuários não autorizados, obrigando-os a se cadastrarem no seu site para terem acesso ao conteúdo. Isso ajuda na retenção de público e na fidelização de acessos. Neste post veja como bloquear downloads de arquivos em PHP.

Antes de qualquer linha de programação, precisamos criar uma tabela na base de dados que armazenará os links. Crie uma tabela simples, com os campos “link” e “descricao” que armazenará a URL e a descrição da mesma, respectivamente.

Os códigos abaixo impedem o download de um arquivo usando uma variável de sessão (apenas usuários logados poderão fazer o download do arquivo).

Veja:

 <?php

  if(!isset($_SESSION["autenticado"]) || $_SESSION["autenticado"] == NULL) 
    $acesso = "false"; //USUÁRIO NÃO LOGADO -- NÃO PODE FAZER O DOWNLOAD
  else
    $acesso = "true"; //USUÁRIO LOGADO -- DOWNLOAD LIBERADO   
    
	$servidor = 'servidor'; 
	$usuario = 'usuario'; 
	$senha = 'senha'; 
    
	$link = mysql_connect($servidor, $usuario, $senha)
		or die('Não foi possivel conectar: ' . mysql_error()); 
	
	$select = mysql_select_db('meu_banco');	
	
	function abreLink($descricao)
	{
    	seleciona o link com base na descrição da mesma
		$sql = "SELECT * FROM links where descricao='".$descricao."'";
		$result = mysql_query($sql);
	
		while ($tbl = mysql_fetch_array($result)) 
		{
			$link = $tbl["link"]; pega o link
		}  
		return $link; retorna o link
	}          
 ?>
 
  função simples para exibir a mensagem de bloqueio
 <script type="text/javascript">
    function msg() 
    {
      alert("Conteúdo bloqueado! \n\n\Logue-se ou crie uma conta para acessar este conteúdo."); 
    }
 </script>

//...

//configuração do link para download 
<a href="<?php if($acesso=='true') echo(abreLink('descrição-link')); ?>" 
target="<?php if($acesso=='true') echo('_blank');?>" 
onClick="<?php if($acesso=='false') echo ('msg()') ?>"> Descrição do link

No exemplo acima usei o PHP para verificar se o usuário estava logado e o Java Script para gerar a mensagem de bloqueio.

Note que com o “echo” chamamos a função PHP “abreLink()” e passamos como parâmetro a descrição do link. A target configuramos com base no valor da variável de sessão: se for “true” outra janela é aberta (_blank).

O evento “onClick” mostra a mensagem da função JavaScript caso o valor da variável da sessão seja igual a “false” (usuário não logado). 

DESEJA APRIMORAR SEUS CONHECIMENTOS EM PHP ORIENTADO A OBJETOS?

Então conheça o curso online que já ajudou milhares de pessoas a aprender a programar e desenvolver seus próprios projetos do ZERO.

CLIQUE NA IMAGEM ABAIXO E SAIBA MAIS:

Link do curso: https://go.hotmart.com/A18082772K

Dúvidas ou sugestões? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
https://youtube.com/criandobits

Bene Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *