Originariamente inviato da cubalibre810
Se ti serve per fare un contatore mi pare di ricordare che se utilizzi header per far scaricare il file e incrementi il contatore dopo il readfile(), questo si incrementa solo se il file è stato inviato tutto, se il download è stato interrotto non incrementa.
questa è interessante, potresti spenderci due parole in più


io ho creato un'area riservata e vorrei sapere chi, quando, come scarica uno qualsiasi dei files, ora io sono riuscito a farlo, ma senza tener conto che il download potrebbe anche fallire, o a metà l'utente potrebbe rendersi conto di aver sbagliato file e quindi interrompere il download.

in questi casi io salvo lo stesso il log dell'utente, ma è un qualcosa di fasullo perché alla fine il download non è stato completato.

la funzione che utilizzo per il download è quella presa dal sito di andr3a:
codice:
function forceDownload($file) {
	/**
	 * Function forceDownload:
	 *	download any type of file if it exists and is readable
	 * -------------------------------------
	 * @author		Andrea Giammarchi
	 * @date		18/01/2005 [17/05/2006]
	 * @compatibility	PHP >= 4.3.0
	 */
	if(file_exists($file) && is_readable($file)) {
		$filename = basename($file);
		if(strpos(strtoupper($_SERVER['HTTP_USER_AGENT']), 'MSIE') !== false && strpos($filename, '.') !== false) {
			$parsename = explode('.', $filename);
			$last = count($parsename) - 1;
			$filename = implode('%2E', array_slice($parsename, 0, $last));
			$filename .= '.'.$parsename[$last];
		}
		header('Content-Type: application/octet-stream');
		header('Content-Disposition: attachment; filename="'.$filename.'"');
		header('Content-Length:'.filesize($file));
		header('Content-Transfer-Encoding: binary');
		if(@$file = fopen($file, "rb")) {
			while(!feof($file))
				echo fread($file, 8192);
			fclose($file);
		}
		exit(0);
	}
}

se riesci a dirmi qualcosa in più te ne sarei davvero grato