thumbnail

Pubblicità

alice1

Nuovo Utente
Messaggi
14
Reazioni
0
Punteggio
25
Visto che non ho mai trovato un forum così efficiente propongo un altro mio problemino...sto lavorando ad un database mysql con un campo Foto nel quale registro il percorso delle immagini contenute in una cartella esterna dal nome foto.
Sul database vengono compiute delle queryes di ricerca e nella pagina dei risultati vorrei riuscire a visualizzare le immagini ridimensionate visto che le dimensioni originali sono troppo grandi. Sto provando questo codice ma non mi funziona
config.php
Codice:
<?php 
$db_host=""; 
$db_user=""; 
$db_password=""; 
$db_database=""; 
$connessione=mysql_connect($db_host,$db_user,$db_password) or die ("Errore nella connessione al Mysql:" . mysql_error()); 
mysql_select_db($db_database,$connessione) or die ("Errore nella selezione del db:" . mysql_error()); 
 
$larghezza=200; 
$altezza=200; 
$proporzioni=1; 
$qualità=100; 
$nomefileridimensiona="ridimensiona.php"; 
?>
ridimensiona.php
Codice:
<?php 
$db_host=""; 
$db_user=""; 
$db_password=""; 
$db_database=""; 
$connessione=mysql_connect($db_host,$db_user,$db_password) or die ("Errore nella connessione al Mysql:" . mysql_error()); 
mysql_select_db($db_database,$connessione) or die ("Errore nella selezione del db:" . mysql_error()); 
 
require_once("config.php"); 
define("LARGHEZZA",$larghezza); 
define("ALTEZZA",$altezza); 
define("PROPORZIONI",$proporzioni); 
define("QUALITA",$qualità); 
 
function ridimensiona($Foto) { 
    $header=array(1=>"gif",2=>"jpeg",3=>"png",4=>"jpg"); 
    // RIDIMENSIONAMENTO DELLA FOTO 
    $dimensioni=getimagesize($Foto); 
    if ($dimensioni[2] == 1) 
        $img=imagecreatefromgif($Foto); 
    if (($dimensioni[2] == 2) || $dimensioni[2] == 4) 
        $img=imagecreatefromjpeg($Foto); 
    elseif ($dimensioni[2] == 3) 
        $img=imagecreatefrompng($Foto); 
    $altezza=(PROPORZIONI) ? ceil($dimensioni[1]/$dimensioni[0]*LARGHEZZA) : ALTEZZA; 
    $im=Imagecreatetruecolor(LARGHEZZA, $altezza); 
    imagecopyresampled($im,$img,0,0, 0,0, LARGHEZZA,$altezza, $dimensioni[0],$dimensioni[1]); 
    header("content-type: image/".$header[$dimensioni[2]]); 
    imagejpeg($im,"",QUALITA); 
    imagedestroy($im); 
} 
 
$Foto=isset($_GET['Foto']) ? $_GET['Foto'] : ""; 
if(file_exists($Foto)) 
    ridimensiona($Foto); 
else 
    echo "$Foto NON ESISTE!"; 
?>
pagina con query (l'ho semplificata perchè troppo lunga)
Codice:
<?php 
$db_host=""; 
$db_user=""; 
$db_password=""; 
$db_database=""; 
$connessione=mysql_connect($db_host,$db_user,$db_password) or die ("Errore nella connessione al Mysql:" . mysql_error()); 
mysql_select_db($db_database,$connessione) or die ("Errore nella selezione del db:" . mysql_error()); 
 
$query="SELECT Foto FROM nome_tabella WHERE articolo LIKE '%$_POST[articolo]%''"; 
 
$risultato=mysql_query($query,$connessione) or die ("Errore nella query:" . mysql_error()); 
 
while($riga=mysql_fetch_array($risultato)) 
{?> 
<tr> 
<td colspan="2"> 
<img src="ridimensiona.php?Foto=<?php print ("$riga[Foto]");?>"> 
</tr> 
} 
?>
Il risultato che ottengo è la classica iconcina con la x rossa, ma sulle proprietà mi da
l'Indirizzo(URL)= nome_sito/ridimensiona.php?Foto=foto/nome_immagine
giusto

se provo a chiamare direttamente nell'indirizzo del browser mi dice che la foto non esiste
Senza la parte di codice relativa al ridimensionamento riuscivo a vedere perfettamente tutte le foto in formato originale.
 
prima un piccolo appunto: non usare nomi di variabile con caratteri strani (lettere accentate o cose del genere), quindi $qualità fallo diventare $qualita.

Prova a richiamare direttamente
nome_sito/foto/nome_immagine
e vedi se la trova (magari c'è un qualche problema di permessi o il path non è corretto)
 
a occhio mi pare a posto il codice, potresti provare a dare in mettere in ridimensiona.php qualche linea con die($tua_variabile); per controllare il flusso di esecuzione e i valori delle variabili, una volta visto cosa non è come si deve potresti lavorarci sopra.

se chiami solo nomesito/ridimensiona.php te lo trova il file vero?
 
Si, se chiamo nomesito/ridimensiona.php me lo trova.
Proverò a seguire i tuoi consigli...grazie....se ci sono sviluppi ti faccio sapere
Ciao
 
Pubblicità
Pubblicità
Indietro
Top