php: al download di un file scrivere il log su file esterno.

coccodrillo

Nuovo Utente
17 Mag 2007
2
0
0
Buongiorno cari amici! Vorrei sapere se avete una soluzione per il mio problema!

Senza perdermi in chiacchiere:

Attraverso una pagina PHP dove viene visualizzata la lista dei file da scaricare (solo gli utenti registrati possono vedere la lista) ho inserito una funzione che scrive su di un file txt il contenuto di una variabile.

Lo script funziona, ma non come dovrebbe.
Il problema è che il file di log (log.txt) viene scritto ogni qual volta viene aggiornata la lista dei file, invece deve essere aggiornato soltanto dopo il click sul documento (insomma..quando viene effettuato il download)...

spero di essere stato chiaro... intanto..vi posto il codice che ho inserito..

(P.s. sto modificando un CMS PHPNUKE..ma è la funzione che nn va..quindi ho pensato che la discussione era giusta!)

_________________________________________________

PHP:
// Start the form.
echo("<form action=\"modules.php?name=".$module_name."\" method=post enctype=\"multipart/form-data\"><tr><td><b><b>"._FILENAME."</b></td><td><b><b>"._FILESIZE."</b></td><td><b><b></b></td><td><b><b></b></td>");

// Read the files from the directory.
$Open = opendir ("$filedir");
while ($Files = readdir ($Open)) {
	$Filename = "$filedir/" . $Files;
	if (is_file ($Filename)) {
	
////////////
$data_server = date("d/m/Y"); 
$ora_server = date("H:i:s"); 
///////////
	$down = "$Files scaricato il $data_server alle ore $ora_server da $username";
	$filesize = filesize ("$filedir/$Files");
    $Size = round($filesize/1024)." KB";

/////<----Inizio Log
$filename = '../../public/log.txt';
$somecontent = "$down\n";
if (is_writable($filename)) {
    if (!$handle = fopen($filename, 'a')) {
         echo "Impossibile aprire ($filename)";
         exit;
    }

if (fwrite($handle, $somecontent) === false) {
        echo "Impossibile scrivere su ($filename)";
        exit;
    }
    fclose($handle);
} else {
    echo "Il file $filename non è scrivibile";
}
//////<---- Fine Log

print "<tr><td><a href=\"$filedir/$Files\" target=\"new\" onclick=\"alert('$down');\"onmouseout=\"window.status='';return true\" onmouseover=\"window.status='View $Files';return true\">$Files</a></td><td>$Size</td></tr>";

	}
}
closedir ($Open);

_________________________________________________
 
mmm

vediamo...

lo script funziona ma arte quando non dovrebbe partire, giusto?

beh allora non va messo dove sta ora ma in una paginetta differente...

ESEMPIO:

PAGINA CON LISTA DEI LINK PER IL DOWNLOAD
scrivi sul file di testo
elenco dei download
FINE PAGINA

se vado sulla pagina parte lo script per scrivere sul log...no no

ESEMPIO ALTERNATIVO
PAGINA CON LISTA DEI LINK PER IL DOWNLOAD
# togliamolo... scrivi sul file di testo
elenco dei download > i link vanno ad una nuova pagina >
FINE PAGINA

LA nuova pagina contiene lo script per scrivere sul file di log + una header (Location) verso il file...

così prima viene scritto il tutto POI si va a scaricare il file...

prova così e vedi se va meglio :)

ciauz
 

Discussioni simili