Here is a really easy and lightweight way of logging the amount of downloads.
<?php # File created on 25th April 2009 by Mike Rogers (http://www.fullondesign.co.uk/).
## Start defining constants ##
define(LOG_URL, '/home/user/download_logs/'); // Put the location of where you want to put the logs. Make sure this is absolute
# $_GET['ID'] - this is the ID of the file we want. It gets the value from the URL.
## Now set the data you wish to use - this can be moved to an include if you want ##
$file[0] = 'http://www.example.com/file.pdf';
## Define the functions required to update the file.
function update_file($filename, $value){
if(is_writable($filename) && is_readable($filename)){
if(file_put_contents($filename, $value)){
return TRUE;
}
}
return NULL;
}
function pull_file($filename){
if(is_writable($filename) && is_readable($filename)){
return file_get_contents($filename);
}
return NULL;
}
function rebuild_file($filename){
if(is_writable($filename) && is_readable($filename)){
file_put_contents($filename, '1');
}
}
if(is_numeric($_GET['ID'])){ // Meaning the Data sent is safe.
// Build log file URL
$filename = LOG_URL.$_GET['ID'].'.log.txt';
$value = pull_file($filename);
header('location:'.$file[$_GET['ID']]);
// Update logs
if(is_numeric($value)){
update_file($filename, ($value+1));
} else { // Meaning the file does not exist or has been messed with.
rebuild_file($filename);
}
} else {
echo 'Sorry, there was an error.';
}
/* If you want to see how many people have downloaded a file, run something like:
# pull_file(LOG_URL.numberishere.'.log.txt');
/*
You are free to share, modify and use this code for commercial uses. Please give a link back (to http://www.fullondesign.co.uk/ ) if you can, but you don't have you.
I claim no liability for this code, you use it at your own risk.
*/
?>
You can run this by changing the URL that accesses the file. For example:
file.php?ID=0
Feel free to edit and share this code.







