Pagina 4 di 5 primaprima ... 2 3 4 5 ultimoultimo
Visualizzazione dei risultati da 31 a 40 su 44

Hybrid View

  1. #1
    Però a questo link:

    http://www.mrwebmaster.it/php/forzar...-php_7379.html

    si propone una soluzione diversa:

    Codice PHP:
    if (!preg_match('/^[a-z0-9]+\.[a-z]{2,3}$/i',$fn)) { 
    che a me non piace molto perché se non erro quel {2,3} significa che l'estensione del file può essere solo di 2 o 3 lettere ma i .docx ne hanno 4 e se in futuro ci fossero dei file con estensioni superiori alle 4 lettere? tu che ne pensi di questa mia considerazione?
    Più pratica in futuro...

  2. #2
    Codice PHP:
    $nome_cartella_download 'file_download';
    if (!
    is_dir($_SERVER['DOCUMENT_ROOT'] . "/$nome_cartella_download/")) {
        
    $mkdir mkdir($_SERVER['DOCUMENT_ROOT'] . "/$nome_cartella_download/");

    Più pratica in futuro...

  3. #3
    Ho un'ultima richiesta/consiglio se posso. Vorrei che lo script verificasse che nella $_SERVER['DOCUMENT_ROOT'] del server esistesse la cartella con nome 'file_download' e nel caso non esistesse la creasse, allo stesso tempo però vorrei anche che quando la cartella esistesse il server non si facesse la domanda. Detto in termini informatici mi poacerebbe creare un ciclo try-catch apposito.
    Più pratica in futuro...

  4. #4
    Penultima domanda: esistono dei sistemi per impedire a qualcuno di fare il download di un file dal disco con il browser costringendo il malintenzionato ad usare un preciso form php protetto da una login? mettere una password al documento è l'unico sistema per proteggerlo? non ne esiste proprio nessun altro?



    Ultima domanda: perché $_SERVER['REMOTE_ADD'] non funziona ovvero perché le seguenti stringhe danno lo stesso output sia su xampp che su hosting?
    $uploadname = time() . $_FILES['upload']['name'];
    $uploadname = time() . $_SERVER['REMOTE_ADD'] . $_FILES['upload']['name'];

    Ultima modifica di giannino1995; 09-05-2014 a 22:27
    Più pratica in futuro...

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    Ciao giannino, hai messo tanta carne al fuoco,
    Provo a darti delle indicazioni di massima che potrebbero aiutarti a far filare il tutto.
    Per evitare l'accesso diretto e non autorizzato ai files dovresti posizionare la cartella di upload fuori dalla document root. In alternativa potresti servirti di un file htaccess.
    Upload: dai un nome random ai files con estensione sempre minuscola, salvi file su disco e il nome in db.
    Download: hai già gli elementi necessari.

  6. #6
    Per quanto riguarda il file htaccess ho trovato questa soluzione ma non mi piace affatto:

    http://stackoverflow.com/questions/3...otect-a-folder

    in quanto vorrei una soluzione valida per qualsiasi tipo di file, non solo pdf. Un ultimo aiutino per favore, per voi luminari queste sono sciocchezze.
    Più pratica in futuro...

  7. #7
    Vada per il file .htaccess però mi dovreste dire cosa scriverci dentro. Una cartella ad di fuori della root ammesso e non concesso che l'hosting mi dia il nulla osta per utilizzarla mi sembra una soluzione meno sicura, più complicata e più difficile da gestibile.
    L’estensione minuscola o maiuscola con il mio script non è più un problema, puoi esprimere un parere se vuoi.
    Arkus come ho scritto un po' di pagine indietro ho risolto tutto e con discreta soddisfazione considerato che è il mio primo script in php, l'unica cosa che mi resta da capire è cosa scrivere in questo file .htaccess e capire perché $_SERVER['REMOTE_ADD'] non mi da quello che dovrebbe dare. Vorrei solo più sapere queste due cose poi non vi romperei più le scatole, promesso!
    Sempre grazie per il tuo/vostro aiuto.
    Più pratica in futuro...

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Vada per il file .htaccess però mi dovreste dire cosa scriverci dentro. Una cartella ad di fuori della root ammesso e non concesso che l'hosting mi dia il nulla osta per utilizzarla mi sembra una soluzione meno sicura, più complicata e più difficile da gestibile.
    L’estensione minuscola o maiuscola con il mio script non è più un problema, puoi esprimere un parere se vuoi.
    Arkus come ho scritto un po' di pagine indietro ho risolto tutto e con discreta soddisfazione considerato che è il mio primo script in php, l'unica cosa che mi resta da capire è cosa scrivere in questo file .htaccess e capire perché $_SERVER['REMOTE_ADD'] non mi da quello che dovrebbe dare. Vorrei solo più sapere queste due cose poi non vi romperei più le scatole, promesso!
    Sempre grazie per il tuo/vostro aiuto.
    giannino, se continui a cambiare codici è impossibile provare a darti una mano, scegli una base e continua a lavorare su quella.
    Avere una cartella fuori dalla document root non è semplice da avere se hai un piano hosting standard, quindi ripiega pure su htaccess, ma non capisco perchè affermi che risulterebbe una soluzione meno sicura la cartella fuori dallo spazio web.

    Per l'htaccess le regole da utilizzare potrebbero essere:
    Order allow,deny
    Deny from all

    Blocchi l'acceso diretto ai files, che dovranno quindi essere recuperati e buttati in output tramite php (a seguito di controllo dei privilegi dell'utente).
    L'estensione min-maiusc dici che non è più un problema perchè hai optato per quale soluzione?

    Dici che $_SERVER['REMOTE_ADD'] non ti da quello che dovrebbe dare, ma non dici cosa contiene?

  9. #9
    Chiedo scusa, come al solito corro troppo, con quel file htaccess la cartella scompare dal sito ma il tasto download continua ad essere scaricabile. L'unico neo è che se metto un link al file esso non è più visualizzabile. Per continuare a far funzionare anche il link a vostro avviso come potrei fare? Il link serve solo quando il file è un pdf oppure un'immagine diversamente ha la stessa funzionalità del tasto download.

    Codice PHP:
    <a href="<?php htmlout($files['url']); ?>" target="black">
    <?php htmlout($files['filename']); ?></a>

    Continuo a non capire perché non funziona $_SERVER['REMOTE_ADD']... che nervoso!
    Più pratica in futuro...

  10. #10
    Ho provato questa soluzione:

    Codice PHP:
    ...
    <a href="<?php htmlout($files['url']); ?>" target="black" onclick="download($files['url'],$files['filename'],$files['mimetype'])">
    <?php htmlout($files['filename']); ?></a>
    ...
    function download($path,$filename,$mimetype) {
        try {
            $disposition = 'inline';
            if (file_exists($path)) {
                //header('Content-Transfer-Encoding: binary');
                //header('Last-Modified: ' . gmdate('D, d M Y H:i:s', filemtime($path)) . ' GMT');
                //header('Accept-Ranges: bytes');
                header('Content-Length: ' . filesize($path));
                //header('Content-Encoding: none');
                header("Content-Type: $mimetype");
                header("Content-Disposition: $disposition; filename=" . $filename);
                readfile($path);
            } else {
                echo "File not found on server";
            }
        } catch (Exception $e) {
            $error = 'File non esistente, rimosso o non più disponibile.';
            include $_SERVER['DOCUMENT_ROOT'] . '/filestorecms_includes/error.html.php';
            exit();
        }
        exit();
    }
    ...
    ma non funziona. In pratica mi si apre una nuova finestra come se la funziona onlick nonci fosse.
    Più pratica in futuro...

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 © 2026 vBulletin Solutions, Inc. All rights reserved.