Con poche righe di script è possibile tenere traccia di chi decide di scaricare un file da un nostro sito. Interessante ad esempio nel caso in cui si dà la possibilità di scricare un progetto che richiederà aggiornamenti futuri. Ad esempio può essere utile chiedere la mail all'utente che decide di scaricare il file, con un form del genere...
HTML:
-
<form name="DownloadForm" method="post" action="download.php">
-
You Email
<input name="email_utente" type="text"><br>
-
<input type="submit" name="Submit" value="Download">
-
<input name="file" type="hidden" value="nomefile.zip">
-
</form>
... che punta al file download.php (simile a questo) il quale si occuperà di far scaricare il file ed inviare la mail dell'avvenuto download.
PHP:
-
<?php
-
// recupero i dati e definisco le variabili
-
$file=$_POST['file'];
-
$email_utente=$_POST['email_utente'];
-
$mia_email="mia@email.com";
-
$oggetto="Download File";
-
$corpo="Il File ".$file." è stato scaricato da ".$email_utente;
-
-
// mi invio la mail
-
mail($mia_email,
$oggetto,
$corpo);
-
-
// faccio scaricare il file
-
$percorso="/var/percorso/directory/download/";
-
$percorso_file=$percorso.$file;
-
$dimensione_file=
filesize($percorso_file);
-
header("Content-Type: application; name=".
$file);
-
header("Content-Transfer-Encoding: binary");
-
header("Content-Length: ".
$dimensione_file);
-
header("Content-Disposition: inline; filename=".
$file);
-
-
header("Cache-Control: no-cache, must-revalidate");
-
header("Cache-Control: private");
-
-
-
?>
Appunti: implementare eventuali controlli
La funzione che permette di inviare mail in php è mail():
mail(destinatario, oggetto, corpo, headers)
Per sfruttare questa funzione nel modo più semplice possibile è sufficente specificare destinatario, oggetto, e corpo (messaggio) della mail. Il paramentro headers è opzionale (te lo spiegherò poi)
Ecco come fare.
PHP:
-
<?php
-
$destinatario="indirizzo@destinatario.com";
-
$oggetto="Oggetto della maill";
-
$corpo="Questo è il testo che vuoi inviare";
-
mail($destinatario,
$oggetto,
$corpo);
-
?>
Ultimi Commenti