PHP Download
Publicado por Fábio Berbert de Paula 14/11/2002
[ Hits: 9.586 ]
Homepage: https://mestrefabio.com
Contador de downloads em PHP, que armazena o número de downloads de um arquivo do seu site numa tabela do banco de dados MySQL.
<? /* Criando ambiente no MySQL: mysql> create database phpdownload; mysql> connect phpdownload; mysql> CREATE TABLE contador ( -> arquivo VARCHAR(100) PRIMARY KEY NOT NULL, -> hits INT DEFAULT 1 -> ); mysql> GRANT ALL PRIVILEGES ON phpdownload.* TO phpdown@localhost -> IDENTIFIED BY 'uaubaby' WITH GRANT OPTION; mysql> flush privileges; */ chdir('./publico'); // entrar no diretório público if (!is_file($arquivo)) { // se o arquivo não é arquivo ... echo "Erro: arquivo $file não encontrado !"; exit; // ... aborte o programa } $con = mysql_connect('localhost','phpdown','uaubaby'); mysql_select_db('phpdownload'); $consulta = "SELECT arquivo,hits FROM contador WHERE arquivo='$arquivo'"; $res = mysql_query($consulta,$con); /* certificar se o arquivo já foi clicado alguma vez. Se o arquivo ainda não consta em nossa tabela, vamos inserir um novo registro, caso contrário vamos somar um hit ao registro existente */ if ($saida = mysql_fetch_array($res)) { // registro existe $hit = ++$saida[1]; // some 1 (um) ao número de cliques $update = "UPDATE contador SET hits=$hit WHERE arquivo='$arquivo'"; mysql_query($update,$con); // atualize o registro } else { $insert = "INSERT INTO contador (arquivo) VALUES ('$arquivo')"; mysql_query($insert,$con); // insira o novo arquivo na tabela. O valor padrão // de hit é 1 (um) } $tamanho = filesize($arquivo); // pega o tamanho do arquivo em bytes // enviar os cabeçalhos HTTP para o browser header("Content-Type: application/save"); header("Content-Length: $tamanho"); header("Content-Disposition: attachment; filename=$arquivo"); header("Content-Transfer-Encoding: binary"); // abrir e enviar o arquivo $fp = fopen("$arquivo", "r"); fpassthru($fp); fclose($fp); ?>
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Flatpak: remover runtimes não usados e pacotes
Mudar o gerenciador de login (GDM para SDDM e vice-versa) - parte 2
Como atualizar o Debian 8 para o 10 (10)
Dica sobre iptables ACCEPT e DROP (6)
NGNIX - Aplicar SNAT para evitar roteamento assimetrico (29)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta