Giusto, hai perfettamente ragione.
Prima della if non valorizzavo $mime e quindi se trovavava l'immagine mandavo l'header senza un content-type.
ora il codice è questo:
Codice PHP:
<?
include "../include/connection.php";
$id= $_GET['id'];
$query="SELECT mime, img FROM centrale_file_tipo WHERE id = $id";
if (!$result= mysql_db_query($db_name, $query, $db_link))
print("non funziona la $query".mysql_error());
$row = mysql_fetch_assoc($result);
$img = $row['img'];
$mime= $row['mime'];
if ($img=="")
{
$query="SELECT mime, img FROM centrale_file_tipo WHERE id = 2";
if (!$result= mysql_db_query($db_name, $query, $db_link))
print("non funziona la $query".mysql_error());
$row = mysql_fetch_assoc($result);
$img = $row['img'];
$mime= $row['mime'];
}
header('Content-Type: '.$mime.'');
echo $img;
?>
(formato immagine: 16x16)
ora le casistiche sono queste (con 3 browser diversi):
1)Internet explorer 7
a) Nella pagina che mi da l'elenco di tutte le immagini ho un quadrato 16x16 vuoto con solo un puntino bianco in mezzo.
b) se scrivo nella barra degli indirizzi localhost/planner/img.php?id=14 mi da lo stesso quadrato 16x16 con il puntino bianco in mezzo
2) Mozilla Firefox 3.0.15
a) Nella pagina che mi da l'elenco di tutte le immagini ho il nulla! Ma se evidenzio con il mouse si vede che un quadrato 16x16 c'è.
b) se scrivo nella barra degli indirizzi localhost/planner/img.php?id=14 mi da una pagina bianca con solo scritto localhost/planner/img.php?id=14, come il codice di questa pagina fosse
Codice PHP:
<?php
echo "localhost/planner/img.php?id=14";
?>
3) Google Chrome 3.0.195.27
a) Nella pagina che mi da l'elenco di tutte le immagini ho un quadrato 16x16 totalmente vuoto
b) se scrivo nella barra degli indirizzi localhost/planner/img.php?id=14 mi da una pagina bianca con dentro solo la classica immaginetta di un'immagine corrotta o non trovata
Nel file che crea la tabella con l'elenco delle immagini, alla riga
Codice PHP:
echo("<td align=\"center\"><img src=\"planner/img.php?id=$rif\" $img_mod>$rif</td>");
ho provato a mettere
Codice PHP:
echo("<td align=\"center\"><a href=\"planner/img.php?id=$rif\">link</a></td>");
ed il risultato è (con tutti e 3 i browser) che mi trovo una tabella chiaramente senza immagini e piena 'link' che cliccandoci mi aprono una pagina dal comportamento identico al caso b) di ogni browser.
Questo mi fa pensare in modo abbastanza sicuro che dentro la variabile $img ci sia sempre scritto il link e che semplicemente ogni browser si comporta in modo diverso.
Questo potrebbe far pensare che allora nel db, nel campo img della tabella, con un qualche errore di codice, io ci sia andato a scrivere il link. Ma ho guardato la tabella su phpmyadmin e dice che il campo img è grande 78kbyte....quindi un pochino troppo spazio per metterci solo una stringa lunga forse 30 caratteri come è localhost/planner/img.php?id=14