ciao a tutti.
sto cercando di realizzare un contatore di download che conti solo nel caso il download sia andato a buon fine.
al momento ho un link che rimanda ad un file php chiamato download.php ma mi scarica il file senza aumentarne il conteggio
Codice PHP:
<?php
session_start();
if(empty($_SESSION["id_USER_Logged"])){
header("Location:index.php");
}
else
{
include("funzioni/header.php");
$query=check_file($_SESSION["id_USER_Logged"],$_GET['file']);
$file=mysql_fetch_row($query);
if(!empty($file[0])&&!empty($file[1]))
{
$filename=$file[0].$file[1];
if ($filename != "")
{
$id_file =$filename;
$url= "filep/";
$total=$url.$id_file;
header("Pragma: no-cache");
header("Expires: 0");
Header("Content-Type: application/octet-stream");
Header("Content-Length: ".filesize($total));
Header("Content-Disposition: attachment; filename=".$_GET['f'].$file[1]);
//readfile($total);
if ($fp = fopen($total, 'rb')) {
while(!feof($fp)) {
$buf = fread($fp, 4096);
echo $buf;
$bytesSent+=strlen($buf); /* We know how many bytes were sent to the user */
if($bytesSent==filesize($total)) {
safe_query("UPDATE contatore SET limite =(limite-1) WHERE id='".$_GET['id_p']."' AND tipo_limite='d'");
}
}
}
}
}
}
?>
in pratica, verifica se l'utente è loggato.
recupero le informazioni del file
e tramite i comandi fopen e feof in teoria dovrei andare a leggere il file ed eseguire una istruzione se i file inviati sono gli stessi di quelli letti.
non sarebbe eprfetto perchè andrebbe fatto con i dati ricevuti ma da quello che mi hanno riferito con php e apache non è possibile farlo.
altrimenti mi basterebbe che alla fine del salvataggio mi aprisse in automatico un'ulteriore pagina. è possibile?
mi sapreste aiutare?
grazie in aticipo.