Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    Ma visto che ci siamo proviamo a seguire la strada della forzatura di un'immagine .. :-)

    partendo dall'istruzione attuale:

    echo "<img id=\"img_foto\" src=\"percorso/" . $nome_foto . "?" . microtime(true) . "\" width=\"55\" height=\"55\">";

    come si dovrebbe completare il tutto con la parte suggerita ?

    header('Content-Type: image/jpg');
    header('Content-Length: ' . filesize($img));
    readfile($img);


    così non funziona ..

    $img = "percorso/".$_GET[$nome_foto];
    header('Content-Type: image/jpg');
    header('Content-Length: ' . filesize($img));
    readfile($img);

    echo "<img id=\"img_foto\" " src=\"percorso/" . $nome_foto . "?" . microtime(true) . "\" width=\"55\" height=\"55\">";
    Ultima modifica di JANUS70; 06-11-2013 a 01:59

  2. #12
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Come ti ho scritto, devi mettere la readfile su un file a parte. poi richiami tale file dal attributo src del tag img.
    es:
    foto.php
    Codice PHP:
    // Eventuali controlli su permesso di visualizzazione ed esistenza del file  
    $img "percorso/".$_GET['nome'];    // percorso deve essere assoluto, per evitare problemi 
     // Devi cambiare il MIME a secondo del tipo di foto (jpg, png, gif etc)
    header('Content-Type: image/jpg');  
    header('Content-Length: ' filesize($img)); 
    readfile($img); 
    Ora che hai lo script, lo devi richiamare nel tag img nelle pagine che ti interessano

    echo "<img src='foto.php?nome=$nome_foto' />
    Questo, sostituisce il collegamento diretto con la foto ( src=\"percorso/" . $nome_foto . "?" . microtime(true))
    Ultima modifica di boots; 06-11-2013 a 10:14

  3. #13
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    allora mi sa che non ci siamo ..
    le immagini sono 'dinamiche' .. io non so a priori il nome del file (immagine) da far vedere .. e quindi da inserire nel file 'foto.php' :-(

    a meno che non scriva in modo dinamico il file 'foto.php' scrivendo il nome corretto dell'immagine che mi interessa .. ma mi sembrerebbe impegnativo :-)
    Ultima modifica di JANUS70; 07-11-2013 a 01:25

  4. #14
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    ho riguardato un attimo la cosa ..
    ma sembra che usi un '$_GET' .. ma poi usi il nome in modo statico ..

    e dove si scrive la '<img ..' usi il '?' per passare un dato ($nome_foto)
    c'è qualcosa che non mi torna ..

  5. #15
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Tutto va adattato alle tue esigenze...
    Facciamo finta che tu voglia visualizzare le immagini di una cartella, che hai protetto con htaccess. Puoi procedere così:

    1. Script indice delle immagini. (Quello che prima faceva apache con htpasswd)
    Codice PHP:
       <?php
       
    if(not_authorized()){
              
    // Non sono autorizzato a vedere il contenuto della cartella!!
             
    echo "Non sei autorizzato a consultare questa cartella!";
             exit();
       }
       
    $dir =  '/var/www/miosito/directory_protetta/';
       
    // Ciclo su tutti i file della directory protetta 
       
    foreach (glob($dir."*.*") as $file) {
             
             
    $fileenc urlencode(basename($file));
        
            
    // Questa è una funzione che devi fare...ma credo che online ce ne siano quante ne vuoi
            
    if(è_un_immagine($file)){
                 echo 
    '<img src="foto.php?name='.$fileenc.'" /><br />';  
            }else{
                 echo 
    '<a href="download.php?name='.$fileenc.'" />'.basename($file).'</a>';  
            } 
            
    // Ho usato urlencode,per evitare problemi con i nomi dei file.
            // in foto.php/download.php dovrai usare urldecode
            // $file = urldecode($_GET['name']);                 
        
    }   
     
    ?>
    2. Gli script che visualizzano le foto (fanno il download) sono quelli che ti ho postato, che vengono richiamati da questa pagina

    In breve: Prima gli utenti li rimandavi su www.miosito.it/cartella_privata, dove gli veniva chiesta la password. Adesso li mandi su questo script, che ti visualizza il contenuto della cartella
    Ultima modifica di boots; 07-11-2013 a 10:28

  6. #16
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    facciamo una cosa alla volta senò mi perdo .. :-)

    torniamo all'esempio della 'GET'

    esempio concreto:

    ho una pagina html dove nella cella di una tabella devo 'visualizzare' una foto.
    (nelle altre celle ovviamente c'è dell'altro)
    Il nome della foto viene scelto attraverso php (che cerca il nome legato ad un'anagrafe dentro alla cartella di tutte le immagini)
    credo che fin qua ci siamo e sia tutto chiaro .. :-)

    tornando all'esempio che mi hai mostrato dovrei avere 2 pagine:

    1) pagina html (in realtà php) .. 'anagrafe.php' che deve visualizzare OLTRE A TUTTO IL RESTO anche una foto:
    (la variabile '$nome_foto' contiene il nome fisico dell' immagine prescelta - es. fiore.jpg)

    Codice PHP:
    echo "<img src='documento_view.php?nome=$nome_foto' /> "
    2) pagina php .. 'documento_view.php' che dovrebbe leggere l'immagine in questione, bypassando .htaccess:

    Codice PHP:
    $img "percorso/".$_GET[$nome_foto]; 
    header('Content-Type: image/jpg');              
    header('Content-Length: ' filesize($img));    
    readfile($img); 
    Se mi dici cosa c'è di sbagliato (concettualmente o tecnicamente) perchè non funziona niente ! :-)
    Grazie mille
    Ultima modifica di JANUS70; 08-11-2013 a 02:41

  7. #17
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    Concettualmente è giusto...tecnicamente meno

    Se scrivi
    echo "<img src='documento_view.php?nome=$nome_foto' /> ";

    Poi, in documente_view, il nome foto si trova nell' array $_GET['nome']

    In questo modo dovrebbe funzionare tutto. In caso prova a chiamare da browser direttamente
    www.miosito.it/path_to/documento_view.php?nome=fiore.jpg (o una foto esistente)

    Tieni abilitati gli errori/warning e vedi se viene mostrata l'immagine oppure ottieni degli errori.
    Nel caso non visualizzi nulla commenta gli header() e riprova per visualizzare gli errori (Se php scrive in output gli errori/warning, con gli header() il testo viene interpretato come immagine, che chiaramente non è valida)

    Infine ricordati che il Content-Type che passi nell'header cambia in base al tipo di immagine (png, gif, jpg)
    Ultima modifica di boots; 08-11-2013 a 11:22

  8. #18
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    devo fare delle prove .. perchè al primo colpo non mi funcsia .. :-(

  9. #19
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    1,085
    boots ..
    ciao .. hai visto che ti ho mandato un mess. Privato ? :-)
    Grazie

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.