Grazie mille oly1982
è proprio quello che cercavo!
Alla fine ho optato per la seconda possibilità (solo perché non avevo letto la tua risposta
), ma adesso ho un problema più grave...
Inviando gli header all'inizio per "forzare" il download, poi non mi esegue tutto il resto dello script! E non so proprio come risolvere... avevo pensato di usare javascript al posto degli header, ma in questo caso non mi parte neanche il download...
come posso risolvere?
grazie ancora
P.S.: ecco qui il codice per intero, se può servire a qualcuno
Codice PHP:
<?php
$download="miofile.pdf";
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=" . basename($download) );
readfile($download);
//acquisizione delle variabili
$ip = $_SERVER['REMOTE_ADDR'];
$data = DATE("Y-m-d");
$ora = DATE("H:i:s");
$time = time();
//connessione al db
include("connessione.php");
//apertura del db
$db = mysql_select_db("dbname", $connessione);
if (!$db) {
die ("apertura del database non riuscita.");
}
//lettura dell'ultimo record della tabella download
$ultimorecord = mysql_query("
SELECT IP, DATA, ORA, TIME, ID
FROM download
ORDER BY ID DESC LIMIT 1;
");
$lettura = mysql_fetch_row($ultimorecord);
$ipd = $lettura[0];
$datad = $lettura[1];
$orad = $lettura[2];
$timed = $lettura[3];
$idd = $lettura[4];
//se l'ultimo record coincide con le variabili, nega il download
if ($ip == $ipd && $data == $datad) {
$diff = $time - $timed;
if ($diff < 60) {
$popup = "Download negato.";
echo "<script type='text/javascript'>alert('$popup')</script>";
}
//altrimenti effettua il download
} else {
echo "Download effettuato con successo."; //in teoria il codice per forzare il download andrebbe qui
}
//inserimento delle variabili nel database
$inserimento = mysql_query("
INSERT INTO download(IP, DATA, ORA, TIME)
VALUES('$ip', '$data', '$ora', '$time');
");
mysql_close($connessione);
?>