Pagina 3 di 3 primaprima 1 2 3
Visualizzazione dei risultati da 21 a 28 su 28
  1. #21
    Utente di HTML.it L'avatar di Max Della Pena
    Registrato dal
    Jan 2014
    residenza
    Udine
    Messaggi
    370
    Quote Originariamente inviata da boots Visualizza il messaggio
    Gli devi passare il percorso dove sono i file. Per intenderci quello che vedi sul file manager

    Per esempio sulla mia macchina un ipotetico url è : http://localhost/test/pippo.pdf
    la cartella test nel file system si trova su /opt/lampp/htdocs/test

    E quest ultimo che devi passare alla readfile()



    il file php deve essere in una cartella accessibile. Se li c'è l'htaccess che ti blocca allora non funziona[/COLOR]

    OK sposto il file in una cartella diversa e provo a passare il file come indicato.

    Sperem....

    Grazie.
    Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.

  2. #22
    Utente di HTML.it L'avatar di Max Della Pena
    Registrato dal
    Jan 2014
    residenza
    Udine
    Messaggi
    370
    Spostato file nella dir principale però adesso non trova il file nella cartella disegni, o meglio, non riesce ad aprirlo.

    Questo lo script.
    <?php

    session_start();
    if(!isset($_SESSION['nomeutente'])){
    eccetera
    exit();
    }

    {

    $nome_file = $_GET['id'];

    $percorso_assoluto="http://www.miosito.it/disegni/";

    header("Content-Type: application/pdf");

    header("Content-Disposition: inline; filename=".$nome_file);

    readfile($percorso_assoluto.$nome_file);
    }
    ?>
    Ultima modifica di Max Della Pena; 26-08-2016 a 17:53
    Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.

  3. #23
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Come ti ho detto se usi http:// la readfile usa il wrapper http per leggere il file. Questo comporta il passaggio attraverso il webserver. Se nella cartella c'è l'htaccess che ti blocca la richiesta, allora non te lo legge.

    Se provi a commentare i due header(), dovresti avere un errore sul fatto che non hai i permessi per leggere il file.
    Devi leggere il pdf via filesystem.

    Puoi usare anche un path relativo (nel tuo caso non dovrebbero esserci problemi)
    se hai messo lo script php e la cartella disegni nella directory principale:

    Codice PHP:
    ...
    $nome_file $_GET['id'];    
    $percorso_assoluto="disegni/";

    header("Content-Type: application/pdf");
    header("Content-Disposition: inline; filename=".$nome_file);
    readfile($percorso_assoluto.$nome_file); 

  4. #24
    Utente di HTML.it L'avatar di Max Della Pena
    Registrato dal
    Jan 2014
    residenza
    Udine
    Messaggi
    370
    Con il path relativo è tutto OK grazie per la pazienza.
    Mi chiedo, caro Alberto, se questo antifascismo rabbioso che viene sfogato nelle piazze oggi a fascismo finito, non sia in fondo un’arma di distrazione che la classe dominante usa su studenti e lavoratori per vincolare il dissenso.

  5. #25
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626


    Giusto per completezza, ricordati di "filtrare"l'input. Se sai che i tuoi utente sono fidati, allora puoi lasciare così altrimenti devi fare dei controlli sul nome del file che ricevi. Questo perchè php valuta i . e i .. per risalire la directory. Se non sbaglio tu fai

    codice:
    <a href='http://www.miosoto.it/disegni/visualizza.php?id=<? echo "$row[disegno].pdf";?>'
    Un utente potrebbe aprire il link passando un id in modo da leggere file che non dovrebbe. es:


    codice:
    <a href='http://www.miosoto.it/disegni/visualizza.php?id=../config.php'
    e quindi la tua readfile diventerebbe

    Codice PHP:
    readfile('disegni/../config,php'); 
    E quindi leggerebbe un ipotetico config.php che si trova nella directory principale, dove magari hai le password per il db.
    Ovviamente sarebbe un "attacco alla cieca", ma io metterei dei controlli per esser sicuro.
    Una cosa molto semplice sarebbe quella di fare un replace di '../' con null su $nome_file:

    Codice PHP:
    $nome_file str_replace('../'''$_GET['id']); 

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