Originariamente inviata da
boots
session_start() puoi chiamarla quando vuoi, ma prima di qualunque output. session_cache_limiter dovrebbe mandare come headers alcuni controlli relativi alla cache sessione, fai riferimento al manuale per vedere cosa invia...mai capitato di usarla
Nel punto 2, non ho capito che intendi sul liberare spazio sul server: i dati del file(che resta sul filesystem) letto stanno in memoria, quando lo script finisce la memoria viene liberata.
exit() fa terminare lo script...ovviamente è inutile metterlo alla fine.
Per l'obbligo di aggiornamento...sinceramente è una cosa che ancora non capisco
Ho provato qualsiasi headers, ma alcuni browser continuavano ad usare la cache. Tuttavia tu usi come metodo POST, di conseguenza non dovrebbe essere un problema: se non ricordo male POST non dovrebbe causare l'uso della cache da parte del browser.
Per l'esempio (chrome): nella pagina dove hai il form di download, fai tasto destro->ispeziona sul form (es sul button, visto che l'input è hidden). Nella console, dove c'è il codice della pagina, cerca il tuo input con il nome del file, clicca due volte sul value (oppure tasto destro->edit as html) e sostituisce il nome del file con quello dello script php (se è il caso gioca un po con il path).
Scarica il file e dovresti avere il tuo script php e non il file originario