- Home
- Categorie
- Coding e Sistemistica
- Coding
- Ebook autorizzazione allo scarico
-
Ebook autorizzazione allo scarico
Caro 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];)