CriandoBits
Identifique-se Entrar Esqueceu a senha? Esqueci minha senha

PHP - Bloqueio de downloads de arquivos

Por Benedito Silva Júnior - publicado em 20/07/2016


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.

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 JavaScript 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). 

 
Voltar a pagina anteriorVoltarSubir ao topo da páginaTopo