Originariamente inviato da Toniello
..
Vorrei chiedervi come potrei fare, in PHP, per far scaricare un file all'utente, senza che esso scopra l'url.
.......................................
Antonio
allora hai una pagina dove c'č un form e chiamata form_down.php con il codice
codice:
<?php
session_start();
$_SESSION['parola'] = "ecco";
?>
<form action="zip.php" method="post">
<input type="submit" value="scarica zip" />
</form>
dal sorgente della pagina si legge a quale file (zip.php) vengono passati i dati. Ma non viene letto
nč il nome della sessione, nč il valore.
Nella pagina zip.php
codice:
<?php
session_start(); //viene passata la sessione
// se arrivano a questa pagina avendo copiato ed incollato l'indirizzo vengono reindirizzati
// se non arrivi tramite un form con method post
// se non c'č la sessione chiamata parola ed il cui valore č ecco
// vieni reindirizzato
if($_SERVER['REQUEST_METHOD'] != 'POST' OR !$_SESSION['parola'] OR $_SESSION['parola'] !="ecco" ) {
header("location: form_down.php");
exit();
}
// la sessione resta attiva ed allora .....
$_SESSION = array(); // la sessione diventa un array vuoto;
$_SESSION['parola'] = FALSE; //ulteriore cautela
session_regenerate_id("delete_old_session"); // per paranoici
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header('Content-type: application/zip');
header('Content-Disposition: attachment; filename="NOME.zip"');
header("Content-Transfer-Encoding: binary\n");
header('Pragma: public');
readfile('original.zip');
exit();
?>
ciao