- Home
- Categorie
- Coding e Sistemistica
- Coding
- Ebook autorizzazione allo scarico
- 
							
							
							
							
							Ebook autorizzazione allo scaricoCaro Giorgio, per prima cosa ti ringrazio per il simpatico e caloroso 
 benvenuto, poi ti spiego brevemente come mi sono imbattuto nel tuo
 sito.
 Dovendo supportare un' amica che vorrebbe creare un sito per
 commercializzare un suo libro e magari estendere la
 commercializzazione ad altre pubblicazioni,
 (eBook per capirci) mi sono imbattuto nel
 problema delle chiavi da inviare via mail per autorizzare lo
 scaricamento del file e, cerca che ti ricerca ho trovato, seguendo il
 profumino di soluzione, voi.
 Ora, penso che il problema possa essere di
 comune interesse e se lo ritieni, lo si potrebbe mettere in
 discussione
 in modo che più teste potrebbero approdare alla soluzione piu'
 consona.
 Ti prego per questo di suggerirmi come fare per impostare
 l'argomento ( non ci crederai ma non mi sono mai inserito in blog o
 simili).
 In attesa di tue nuove ti anticipo i miei ringraziamemnti
 complimentandomi ancora una volta per il tuo utilissimo sito, Carlo
 
- 
							
							
							
							
							Ciao CarloGiuseppe e benvenuto nel Forum GT.  La prima cosa da fare è ovviamente impedire di scaricare direttamente il file conoscendo il percorso. Nella cartella del download, oltre ad inserire un file index.html vuoto, ti basterà inserire un file .htaccess con queste poche righe: <Files ~ ".+"> Order allow,deny Deny from all Satisfy All </Files>In questo modo non si potrà scaricare direttamente il file.  Per quanto riguarda l'autorizzazione allo scarico potresti creare una chiave che sia una combinazione tra un parola chiave di tua scelta ed il timestamp della richiesta, combinate ed hashate con sha1. La chiave viene salvata su un campo del Db ed inviata via mail all'utente (vvv.sito.ext/download.php?key=1234567890123456 per esempio) Per autorizzare il download verificherai che la key è valida, quindi contenuta nel Db, e non utilizzata e procederai all'invio al browser del file per la scarimento, aggiornando la tabella per dire che la key è stata utilizzata. Per inviare al browser il file potresti utilizzare qualcosa del genere: 
 [php]<?php$file = 'ebook/ebook.pdf'; if (file_exists($file)) { 
 header('Content-Description: File Transfer');
 header('Content-Type: application/octet-stream');
 header('Content-Disposition: attachment; filename='.basename($file));header('Content-Transfer-Encoding: binary'); header('Expires: 0'); header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); header('Pragma: public'); header('Content-Length: ' . filesize($file)); ob_clean(); flush(); readfile($file); exit;} 
 ?> [/php];)