Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa noite pessoal.
Tenho um script para bloquear mais de um download por vez. Ao clicar em baixar cadastro dados no banco de dados certinho, só que na hora de listar filtrar um download por vez não acontece nada, sempre libera o download.
Vejam o código para ver se alguém pode ajudar:
<?php
require_once 'php/mysql_connect.php';
set_time_limit(0);
// 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 ip = '$ip'";
$rs = mysql_query($sql);
if (mysql_num_rows($rs)) {
$ultimaVez = mysql_result($rs, 0, 'ultimoacesso') + 300;
if ($ultimaVez < time()) {
mysql_query("REPLACE baixando SET caminho = '$caminho', ip = '$ip', ultimoacesso = NOW()");
$baixando = true;
} $sql = "REPLACE baixando SET caminho = '$caminho', ip = '$ip', ultimoacesso = NOW()";
mysql_query($sql);
$baixando = true;
}
if ($baixando) {
$id_arquivo = base64_decode($_GET['id_arquivo']);
$sql = "SELECT * FROM arquivos WHERE id=" . $id_arquivo;
$qr = mysql_query($sql);
$rs = mysql_fetch_object($qr);
$diretorio = "deposit/uploads/" . $rs->id_usuario . "/";
$path = $rs->arquivo;
$caminhoCompleto = $_SERVER['DOCUMENT_ROOT'] . $diretorio . $path;
if (is_file($caminhoCompleto)) {
$data = date("Y-m-d H:i:s");
$inserir = "INSERT INTO baixando VALUES (NULL, '$path', '$ip', '$data')";
mysql_query($inserir);
header('Pragma: public');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($caminhoCompleto)) . ' GMT');
header('Cache-Control: private', false);
header('Content-Type: application/force-download');
header('Content-Disposition: attachment; filename="' . basename($caminhoCompleto) . '"');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($caminhoCompleto));
header('Connection: close');
readfile($caminhoCompleto);
exit;
} header('HTTP/1.0 503 Service Unavailable');
print '<h1>503 Service Unavailable</h1><p>Você só pode fazer outro download em 5 minutos</p>';
exit;
}
?>
Obrigado pela atenção.
Carregando comentários...