Lo más copado es que yo no se php xD
Otra cosa que encontre es para limitar las descargas por días.
Me voy a poner a aprender PHP (aguante html:P)
Gracias x el scrip y aca paso el que encontre para limitar las descargas
Paso 1: Base de Datos
En primer lugar necesitaremos una tabla con esta estructura en nuestra base de datos:
CREATE TABLE IF NOT EXISTS `descargas` (
`ruta` varchar(255) NOT NULL,
`ip` varchar(15) NOT NULL,
`ultimo_acceso` datetime NOT NULL,
UNIQUE KEY `ruta` (`ruta`,`ip`),
KEY `ip` (`ip`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
.htaccess
Neecesitamos colocar un archivo .htaccess en la carpeta a la que le queremos aplicar la limitación, por ejemplo "archivos":
RewriteEngine on
RewriteRule (.*)(pdf|zip)$ /archivos/dl.php [QSA]
Script
Esta regla rescribe cada acceso al interior de la carpeta y lo redirecciona hacia el script dl.php que es el que chequeara los datos del visitante y gestionará el acceso a los archivos a descargar:
<?php
$ip = addslashes($_SERVER[‘REMOTE_ADDR’]);
$dl = false;
$sql = sprintf(“SELECT UNIX_TIMESTAMP(ultimo_acceso) ultima_vez
FROM descargas WHERE ruta = ’%s’ AND ip = ’%s’
ORDER BY ultimo_acceso DESC”, $ruta, $ip);
$res = mysql_query($sql);
if (mysql_num_rows($res) > 0) {
$last_xs = mysql_result($res, 0, ‘ultima_vez’)+3600;
if ($last_xs < time()) {
mysql_query(sprintf(“REPLACE descargas
SET ruta = ’%s’, ip = ’%s’, ultimo_acceso = NOW()”, $ruta, $ip));
$dl = true;
}
} else {
$sql = sprintf(“REPLACE descargas
SET ruta = ’%s’, ip = ’%s’, ultimo_acceso = NOW()”, $ruta, $ip);
mysql_query($sql);
$dl = true;
}
?>
Cómo puedes ver se ofrece un intervalo de 3.600 segundos antes de permitir de nuevo una descarga al usuario.
Si la variable $dl es "true" permitiremos acceso al siguiente script:
<??php
$fullPath = $_SERVER[‘DOCUMENT_ROOT’].$ruta;
if ($fd = fopen ($fullPath, “r”)) {
$fname = basename($fullPath);
header(‘Content-type: application/octet-stream’);
header(‘Content-Disposition: filename=”‘.$fname.‘”‘);
header(‘Content-length: ’.filesize($fullPath));
header(‘Cache-control: private’);
while(!feof($fd)) {
$buffer = fread($fd, 2048);
echo $buffer;
}
fclose ($fd);
exit;
}
} else {
header(‘HTTP/1.0 503 Service Unavailable’);
die(‘Abort, you reached your download limit for this file.’);
}
?>
Ahi va el scrip completo en un rar
http://www.web-development-blog.com/tutorials/limit_file_download.zip