Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Pagina .php per mascherare l'url delle immagini

    Ciao a tutti, avrei bisogno di uno script php che mi permetta di visualizzare delle immagini, richiamando un file php e non l'immagine direttamente.

    Esempio: [img]showimage.php=(user_id)[/img]

    la prima cosa che mi è venuta in mente è di utilizzare gli switch, ma ripensandoci attentamente, ogni qualvolta un'utente carica un'immagine, dovrei aggiungerla.. quindi è da scartare assolutamente.

    Immagino si possa fare tramite una query al db, e su questo me la cavo, ma non so come fare a linkarla poi.. o meglio, restituire in output l'immagine per fa si che il tag <img ..> la legga.

    Aiutino? Grazie!

  2. #2
    Utente di HTML.it L'avatar di strae
    Registrato dal
    Apr 2008
    Messaggi
    407

    Re: Pagina .php per mascherare l'url delle immagini

    Originariamente inviato da DjRiKyX
    Ciao a tutti, avrei bisogno di uno script php che mi permetta di visualizzare delle immagini, richiamando un file php e non l'immagine direttamente.

    Esempio: [img]showimage.php=(user_id)[/img]

    la prima cosa che mi è venuta in mente è di utilizzare gli switch, ma ripensandoci attentamente, ogni qualvolta un'utente carica un'immagine, dovrei aggiungerla.. quindi è da scartare assolutamente.

    Immagino si possa fare tramite una query al db, e su questo me la cavo, ma non so come fare a linkarla poi.. o meglio, restituire in output l'immagine per fa si che il tag <img ..> la legga.

    Aiutino? Grazie!
    Codice PHP:

    <?php
    $id 
    $_GET['user_id'];
    $url '/path/della/cartella/' $id '.jpg';
    Header('Content-Type: image/jpeg');
    readfile($url);
    ?>
    il funizonamento è semplice, lascio a te la sanitizzazione dei dati (se devi trovare il nome dell'immagine dal db), i vari controlli (is_file(), etc..).
    You HAVE to assume your visitor is a maniac serial killer, out to destroy your application. And you have to prevent it.
    I can accept failure, everyone fails at something - But I can't accept not trying.

  3. #3
    Grazie mille, ora lo provo!

    Era questo che mi serviva, per il resto no problem

    codice:
    Header('Content-Type: image/jpeg');
    readfile($url);

  4. #4
    Utente di HTML.it L'avatar di strae
    Registrato dal
    Apr 2008
    Messaggi
    407
    Originariamente inviato da DjRiKyX
    Grazie mille, ora lo provo!

    Era questo che mi serviva, per il resto no problem

    codice:
    Header('Content-Type: image/jpeg');
    readfile($url);
    spe controlla la documentazione su php.net
    mi sembra che il comando header deve essere con h minuscola, ho sbagliato a scrivere
    You HAVE to assume your visitor is a maniac serial killer, out to destroy your application. And you have to prevent it.
    I can accept failure, everyone fails at something - But I can't accept not trying.

  5. #5
    Funziona perfettamente.. header, con l'h minuscola

    Però ho un piccolo problemino con il mio script:


    user.php
    codice:
    <?php
    require 'includes/dbconn.php';
    $conn = new mySqlConnect();
    $conn->connect();
    $conn->selectdb();
    if(isset($_GET['ref'])){
    	switch($_GET['ref']){
    
    	case 'avatar':
    		if(isset($_GET['id'])){
    			if(is_numeric($_GET['id'])){
    				$id = $_GET['id'];
    			}
    			else{
    				echo "Invalid File";
    				exit();
    			}
    			if(isset($_GET['thumb'])){
    				$sql="SELECT thumb,type FROM usersimg WHERE user_id = '$id' AND avatar = 1";
    				$type = "thumb";
    			}
    			else{
    				$sql="SELECT full,type FROM usersimg WHERE user_id = '$id' AND avatar = 1";
    				$type = "full";
    			}
    			$result = mysql_query($sql, $conn->connect());
    			if(!$result){
    				echo "Invalid File";
    			}
    			else{
    				$row = mysql_fetch_object($result);
    				if($type == "thumb"){
    					$img = $row->thumb;
    				}
    				else{
    					$img = $row->full;
    				}
    				$url = "usersimg/$img";
    				header("Content-Type: $row->type");
    				readfile($url);
    			}
    		}
    		else{
    			echo "Invalid File";
    			exit();
    		}
    	break;
    	}
    }
    ?>
    Se per esempio cerco di visualizzare l'immagine di in ID che non esiste nel DB mi escono dei warning. Però diversi da quelli soliti di php.

    Ma il punto non sono i Warning, i warning li da perchè non trova l'immagine vera e propria, però nello script c'è la condizione che se la query sql non restituisce nessun risultato, mostra 'Invalid File' e basta.

    Mentre fa il contrario, è come se quell' IF non esistesse e cerca di visualizzare l'immagine.

    La parte interessata è:

    codice:
    			$result = mysql_query($sql, $conn->connect());
    			if(!$result){
    				echo "Invalid File";
    			}
    			else{
    				....
    				....
                            }

  6. #6
    Forse e' meglio

    Codice PHP:
    if(mysql_num_rows($result) <= 0) {
        echo 
    "Invalid File";
    } else {
        ....
        ....
     } 

  7. #7
    Perfetto! 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.