Originariamente inviato da knifekiller
allora non hai capito niente ..ma pr niente...

[cut]
cioè, ti ho spiegato cosa devi fare, ti ho linkato una funzione bella che pronta da utilizzare, sei tu che devi adattarlo allo scopo, cosa devo fare, te lo devo scrivere io lo script?

Ti ho spiegato tutto per filo e per segno.. anche se non usi un database, basta che invii il sorgente via POST alla pagina che contiene la funzione che ti ho linkato precedentemente passandoci come $data il sorgente e come nome "sorgentepagina.html" o una cosa simile (l'importante è che finisca per .html o .htm).
Esempio:
Codice PHP:
$sorgente 'METTI QUI IL SORGENTE, SENZA FARE NESSUN ECHO';

echo 
'<form name="sorgente" action="scarica_sorgente.php" method="POST">
<input name="sorgente" type="hidden" value="'
.$sorgente.'">
<input name="submit" type="submit" value="Scarica il sorgente">
</form>'

Poi crea una pagina "scarica_sorgente.php", e mettici dentro (ho modificato un pò la funzione precedente che aveva un ciclo inutile che succhiava risorse):
Codice PHP:
<?php 
ob_start
();

if(isset(
$_POST['sorgente'])) force_download($_POST['sorgente'],'sorgente.html','text/html',strlen($_POST['sorgente']));

function 
force_download ($data$name$mimetype=''$filesize=false) { 
    
// File size not set? 
    
if ($filesize == false || !is_numeric($filesize)) { 
        
$filesize strlen($data); 
    } 

    
// Mimetype not set? 
    
if (empty($mimetype)) { 
        
$mimetype 'application/octet-stream'
    } 

    
// Eliminiamo qualsiasi cosa mostrata precendemente 
    
ob_end_clean(); 
    
    
header("Pragma: public"); // required 
    
header("Expires: 0"); 
    
header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
    
header("Cache-Control: private",false); // required for certain browsers 
    
header("Content-Transfer-Encoding: binary"); 
    
header("Content-Type: " $mimetype); 
    
header("Content-Length: " $filesize); 
    
header("Content-Disposition: attachment; filename=\"" $name "\";" ); 

    
// Vai col rock n' roll! 
    
echo $data
    exit(); 

?>
ricorda che qualsiasi altro codice devi inserirlo dopo l'ob_start();

La prossima volta evita di trattare di merda chi cerca di aiutarti perchè c'è gente che già ti avrebbe mandato a quel paese.

Ciao.

P.S. Alla fine te l'ho scritto pure il codice, anche se non lo meritavi per niente.