<?php // Aqui você deve fazer a conexão com o banco! :P // Caminho do arquivo que está sendo requisitado $caminho = mysql_real_escape_string($_SERVER['REQUEST_URI']); // IP do indivíduo que está requisitando o arquivo $ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']); // Está baixando? $baixando = false; // Seleciona o último acesso em formato UNIX, equivalente ao mktime() $sql = "SELECT UNIX_TIMESTAMP(ultimoacesso) AS ultimavez FROM baixando WHERE arquivo = '$caminho' AND ip = '$ip' ORDER BY ultimoacesso DESC LIMIT 1"; $rs = mysql_query($sql); if (mysql_num_rows($rs)) { $ultimaVez = mysql_result($rs, 0, 'ultimoacesso') + 1800; if ($ultimaVez < time()) { mysql_query("REPLACE baixando SET caminho = '$caminho', ip = '$ip', ultimoacesso = NOW()"); $baixando = true; } } else { $sql = "REPLACE baixando SET caminho = '$caminho', ip = '$ip', ultimoacesso = NOW()"); mysql_query($sql); $baixando = true; } ?>
<?php if ($baixar) { $caminhoCompleto = $_SERVER['DOCUMENT_ROOT'].$path; if ($fp = fopen($caminhoCompleto, 'r')) { header ('Content-disposition:attachment;filename="'.basename($caminhoCompleto).'";'); header ('Content-Length: '.filesize($caminhoCompleto)); readfile($caminhoCompleto); exit; } } else { header('HTTP/1.0 503 Service Unavailable'); print '<h1>503 Service Unavailable</h1><p>Você já baixou este arquivo demais!</p>'; exit; } ?>
Bah cara... que massa isso aí, eu fazia idéia de mais ou menos como fazer, mas não imagina que seriam somente esses passos =)
GENIAL
A ideia é boa mas o seu codigo .................
Olá Forbidencode.
Proponha uma abordagem melhor, por favor! :)
Um abraço!
Tentei executar o script funciona tudo, porém quando vou baixar, ele me retorno esse erro:
[function.fopen]: failed to open stream: No such file or directory in C:\site\baixar.php on line 35
Oq pode ser?
Valeu
Provavelmente não está encontrando o arquivo... Você pode tentar verificar se o caminho está certo no .htaccess e também nos diretórios do seu site! :)
Consegui resolver o problema, porém estou com outro hehee
Quando acesso o script diretamente pelo browser. ex:
www.site.com.br/baixar.php
Ele pede para baixar o fonte do php hehe.
Porém o server está funcionando, rodando php normal o script está acessando o banco de dados, bloquecando a cada meia hora, tudo funciona.
Oq pode estár acontecendo?
Valeu
Rafael Jaques - PHPit 2007
Site sob Creative Commons - Alguns direitos reservados