Visualizzazione dei risultati da 1 a 7 su 7

Discussione: [PHP]Proteggere file

  1. #1
    Utente di HTML.it L'avatar di XBarboX
    Registrato dal
    Dec 2008
    Messaggi
    121

    [PHP]Proteggere file

    Salve,
    avrei bisogno di proteggere un file sul mio sito: ovvero in modo che solo i loggati possano scaricarlo.
    Come faccio?

    (il sistema login l'ho già fatto, ma basta che uno vada su http://www.miosito.it/file.zip e se lo scarica senza problemi...)

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    alcune note:

    - se il file è accessibile da web e non hai altra possibilità, è "sufficiente" usare un percorso non facile da individuare e non pubblicare il link da nessuna parte, fermo restando che se uno lo indovinasse potrebbe comunque scaricarlo (ma se usi un path con caratteri casuali o cose del genere diventa difficile);
    - se non vuoi che neanche chi scarica il file conosca il percorso reale (potrebbe "dirlo" ad altri) devi usare un wrapper php, niente di complicato: il percorso reale - difficile da individuare - non lo dici a nessuno, agli utenti loggati dai un path tipo "/download/download.php" e nel file download.php non fai altro che mettere <?php print(file_get_contents('...percorsorealedelfile.. .')); ?>; per questa soluzione esistono anche codifiche più raffinate, comunque;
    - se puoi accedere alle impostazioni del server si possono proteggere alcune cartelle da accessi esterni (file ".htaccess" in apache per esempio: se vuoi vedi forum in merito)
    - se hai la possibilità di mettere il file al di fuori della web root, fallo e poi usa una soluzione con un wrapper

  3. #3
    Utente di HTML.it L'avatar di XBarboX
    Registrato dal
    Dec 2008
    Messaggi
    121
    scusa avresti voglia di farmi un esempio di codice. perchè io ho scritto il codice che mi hai detto ma non funziona.

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    non avevo fatto caso che era uno ".zip"... prova con:

    Codice PHP:
    $name 'nomefile.zip';
    $file 'esempiocartelladownload/ujgt0u4t/'.$name;
    if (
    file_exists($file)) {
        
    header('Content-type: application/zip');
        
    header('Content-Disposition: attachment; filename="'.$name.'"');
        
    readfile($file);
    } else {
        print 
    'Errore download.';
    }; 
    mettendo il nome opportuno nella prima riga e il percorso giusto nella seconda, ovviamente (puoi usare anche un percorso relativo)

  5. #5
    Utente di HTML.it L'avatar di XBarboX
    Registrato dal
    Dec 2008
    Messaggi
    121
    GRAZIE! funziona!
    Ti devo un caffe

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    prego!

    (ma in che città? :) )

  7. #7
    Utente di HTML.it L'avatar di XBarboX
    Registrato dal
    Dec 2008
    Messaggi
    121

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.