Problema estrazione e visualizzazione immagine da database

alo

Utente Attivo
22 Dic 2011
53
0
0
27
Salve a tutti,
ho un problema. Ho scritto il seguente script PHP per estrarre e visualizzare un immagine da un database, ma non funziona e non so il perchè.
PHP:
<?php 
//vis_image.php 
include('configurazione_database.php'); 
$id_user_profile = $_GET['id']; 
$select_user_image_sql = "SELECT * FROM immagini WHERE id_user = '$id_user_profile'"; 
$select_user_image = mysql_query($select_user_image_sql) or die(mysql_error()); 
$select_user_image_row = mysql_fetch_array($select_user_image); 
$type = $select_user_image_row['type']; 
$image = $slect_user_image_row['immagine']; 
Header("Content-type: ".$type); 
echo $image; 
?>
e lo richiamo da un tag html <img>
PHP:
echo "<img src='vis_image.php?id=$profile_id'>";
Qualcuno potrebbe darmi una mano?
Grazie in anticipo!
 
ciao
prova a guardare qui
$image = $slect_user_image_row['immagine'];
non dovrebbe essere
$image = $select_user_image_row['immagine'];
 
Si grazie hai ragione... Ma non me la visualizza comunque...
L'ho usato in diverse pagine uno script simile e funziona... Non so perchè qui mi fa questi problemi...
 
ciao
prova in questo modo

PHP:
header("Content-type: $type");
dimenticavo la H di header divrebbe essere minuscola
 
Ultima modifica:
Hai provato a fare dei controlli sulle variabili?
Per esempio:
-la variabile $profile_id viene passata correttamente?
-la query da il risultato cercato?
-le variabili $type e $image contengono qualcosa? E se si, contengono quello che desidero?

Per il resto quel metodo che stai usando per stampare l'immagine non l'ho mai utilizzato quindi non ti so aiutare più di tanto.
 
Vi ringrazio molto per le risposte!
(borgo italia) ho cambiato come mi hai suggerito ma ancora niente!
(Longo8) tu che metodo usi?
Sono due giorni che tento di capire dove sbaglio perchè in precedenza funzionava... Sto realizzando una sorta di pagina-profilo dove in una tabella vengono stampati su una colonna i dati dell'utente e su un altra l'immagine che lui ha inserito... Per la colonna dei dati tutto a posto, ma nella colonna dell'immagine mi fa vedere la classica icona "rotta, spezzata"...
 
ciao
per verificare le variabili il metodo migliore è mettere dei var_dump che ti restituiscono il tipo ed il valore della variabile
poi li togli
PHP:
<?php
//vis_image.php 
include('configurazione_database.php'); 
$id_user_profile = $_GET['id']; 
var_dump($_GET['id']);// se NULL non riceve il get
$select_user_image_sql = "SELECT * FROM immagini WHERE id_user = '$id_user_profile'"; 
$select_user_image = mysql_query($select_user_image_sql) or die(mysql_error());
var_dump($select_user_image);//se Bool (FALSE) la query non è andata a buon fine
$select_user_image_row = mysql_fetch_array($select_user_image); 
$type = $select_user_image_row['type']; 
var_dump($type);//vedi se il tipo è quello che ti serve, dovrebbe essere image/jpg (o gif o png)
$image = $select_user_image_row['immagine'];
var_dump($image);//solo per vedere che non sia vuoto, altrimenti ti da una serie di caratteri
//commenta l'header perchè, dati i var_dump, hai un output html quindi dovrebbe darti errore
//header("Content-type: $type"); 
echo $image; 
?>
 
Nemmeno... Mi connetto alla pagina (p.e.: vis_image.php?id=3) e mi da una pagina bianca, vuota, come se non ci fosse scritto nulla nel file php. E' molto strano... Come se il file non esistesse... Non c'è un altro metodo per estrarre e visualizzare immagini da un db??
 
Ultima modifica:
ciao
strano, i var dump non ti restituiscono niente?

negli articoli di php ci deve essere qualcosa (in home linguaggi del web->php->articoli)
 
Cioè tu con un tag di questo tipo:
PHP:
echo "<img src='vis_image.php?id=$profile_id'>";
Ho letto qualcosa su quello che vorresti fare e ho trovato tutti gli esempi scritti nel modo che suggeriva borgo:
PHP:
    header("Content-Type: $type");
Anche se la 'h' è sempre minuscola negli esempi. Non so se faccia differenza.


Io semplicemente non uso un altra pagina per fare ciò ma faccio tutto quello che tu hai fatto nell'altra pagina, in quella dove usi il tag sopra postato.
Cioè in questo caso io farei (direttamente nella pagina dove ci sta il tag):
PHP:
<?php  
include('configurazione_database.php');  
$select_user_image_sql = "SELECT * FROM immagini WHERE id_user = '$profile_id'";  
$select_user_image = mysql_query($select_user_image_sql) or die(mysql_error());  
$select_user_image_row = mysql_fetch_array($select_user_image);  
$type = $select_user_image_row['type'];  
$image = $slect_user_image_row['immagine'];  
$path = "cartella/".$image.".".$type;
echo "<img src='$path'>";
?>

Ditemi se ho scritto qualcosa di errato ma mi potrete capire, sono le ore 1.36 AM :-)
 
ciao
@longo8
da come ho capito che è strutturato lo script, non serve
img scr
ma il file immagine è dentro un campo blob (almeno così dovrebbe essere) per cui con, prima lheader, poi con l'eco stampa il file, cioè l'immagine
 
ciao e grazie delle risposte, vedo anche a tarda ora.
borgo nella sezione articoli del sito c'è un articolo che usa lo stesso metodo mio.
longo8 fammi capire, l'immagine che un utente sceglie la salvi sia in una cartella sia in un database e poi alla connessione dell'utente prendi i dati dal database e in base a i dati richiami l'immagine dalla cartella giusto??
 
ciao
col sistema di longo8 nella cartella salvi o carichi l'immagine e nel db metti il suo nome (es pinco.jpg), quindi potresti fare il semplice (anche se poi lo scrivi usando php) html

PHP:
//....
$image = $select_user_image_row['nome_immagine']; //il campo nome_immaginae sarà un sempliche varchar
$nome_immagine=$path.$image;
echo "<img src=\"$nome_immagine\">";
//....

da molti punti di vista questo sistema da meno rogne di quello di inserire il file immagine nel db, però è molto più facile per un malintenzioanto carpirle
 
Si è proprio quello il metodo che utilizzo.
Non conosco i pro e i contro di ognuno perché ho sempre utilizzato quello.
Ovviamente se l'utente ha alcuni diritti sui file della cartella devi fare una cartella diversa per ogni utente in base alla chiave con cui distingui gli utenti.
Per esempio distingui l'utente per USERNAME [es.'PINO']. Il path dell'immagine sarà:
immagini/pino/1234.jpg
E nel database basta salvare l'estensione e il nome per poi assemblare il path e richiamarlo nella IMG SRC come ti ha mostrato Borgo.
 
Ho capito, proverò ad usare questo metodo. Metto in una cartella tutte le immagini che gli utenti caricano e nel database le rispettive informazioni. Alla connessione ricavo l'id dell'utente e prendo dal database il nome e il tipo dell'immagine e la corrispondente nella cartella!
Grazie mille per avermi aiutato e per aver seguito la discussione!! Mi ha fatto veramente tanto piacere!
 
Ultima modifica:

Discussioni simili