ancora su tutorial immagini php+msql

borgo italia

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
4 Feb 2008
16.044
150
63
PR
www.borgo-italia.it
ciao
!!un thead al giorno toglie il medico di torno!!
ho seguito (copia incolla) il tutorial
all'inserimento e link tutto OK, ma richiedendo la foto dal link questo (parzialmente) è quello che vedo della foto:

H!u!¡!Î!û"'"U"‚"¯"Ý# #8#f#”#Â#ð$$M$|$«$Ú% %8%h%—%Ç%÷&'&W&‡&·&è''I'z'«'Ü( (?(q(¢(Ô))8)k))Ð**5*h*›*Ï++6+i++Ñ,,9,n,¢,×- -A-v-«-á..L.‚.·.î/$/Z/‘/Ç/þ050l0¤0Û11J1‚1º1ò2*2c2›2Ô3 3F33¸3ñ4+4e4ž4Ø55M5‡5Â5ý676r6®6é7$7`7œ7×88P8Œ8È99B99¼9ù:6:t:²:ï;-;k;ª;è<'v›vøwVw³xxnxÌy*y‰yçzFz¥{{c{Â|!||á}A}¡~~b~Â#„å€G€¨ kÍ‚0‚’‚ôƒWƒº„„€„ã…G…«††r†×‡;‡ŸˆˆiˆÎ‰3‰™‰þŠdŠÊ‹0‹–‹üŒcŒÊ1˜ÿŽfŽÎ6žnÖ‘?‘¨’

(se non si capisce è una foto della val sugana)

dove sbaglio?

p.s.
una sciocchezza: in $max_size = 300000;
più sotto si parla di 30kB, ma 1 kB=?1024 B ?

saluti a tutti
 
1) tieni conto che l'header (jpeg, Gif o Png) deve essere definito prima di qualsiasi altro output
2) si tratta di un arrotondamento alla buona :)
 
ciao, scusa ma non capisco, il codice è esattamente quello del tutoria, copiato ed incollato in una pagina da dream

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>

<body>
<?php
if (isset($_GET['id']))
{
$id = @intval($_GET['id']);
@include 'connessione.php';
$sql = "SELECT id,type,immagine FROM immagini WHERE id='$id'";
$result = @mysql_query($sql) or die(mysql_error ());
$row = @mysql_fetch_array($result);
$id_img = $row['id'];
$type = $row['type'];
$img = $row['immagine'];
if (!$id_img)
{
echo "Id sconosciuto";
}else{
@header ("Content-type: ".$type);

echo $img;

}
}else{
echo "Impossibile soddisfare la richiesta.";
}

?>
</body>
</html>

la pagina viene richiamata dalla pagina link (dove era quel GET che non capivo dello scorso trehad)

grazie

p.s.
per i kB skerzavo
 
Ahh! Ma allora fai di tutto per essere bannato dal forum! :)

Prima ti ho scritto:

1) tieni conto che l'header (jpeg, Gif o Png) deve essere definito prima di qualsiasi altro output

Poi tu mi mostri una pagina che come primo output reca questa intestazione:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento senza titolo</title>
</head>

<body>

che è un output e viene prima di:
PHP:
 @header ("Content-type: ".$type);

dove sta l'errore?
 
cenere sul capo e pugni sul petto (tanto siamo in quaresima), scusa l'ignoranza ho capito che devo togliere quindi tutti i riferimenti da

<!DOCTYPE ..........
.....
</html>
che dream inserisce automaticamente

se non ho capito entrerò in digiuno

grazie
 
togli la @ da header e vedi se ti restituisce qualche errore
 
ecco qua l'errore

Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\corso\connessione.php:15) in C:\AppServ\www\corso\show.php on line 16

la riga 16 è quella con headers sensa @
 
Quindi sembra ci sia ancora qualche output prima di header.. posta il codice della pagina incriminata
 
ecco il codice nella pagina c'è solo questo

<?php
if (isset($_GET['id']))
{
$id = @intval($_GET['id']);
@include 'connessione.php';
$sql = "SELECT id,type,immagine FROM immagini WHERE id='$id'";
$result = @mysql_query($sql) or die(mysql_error ());
$row = @mysql_fetch_array($result);
$id_img = $row['id'];
$type = $row['type'];
$img = $row['immagine'];
if (!$id_img)
{
echo "Id sconosciuto";
}else{
header ("Content-type: ".$type);
//@header ("Content-type: ".$type);

echo $img;

}
}else{
echo "Impossibile soddisfare la richiesta.";
}

?>
 
dimenticavo
voglio provare a riportare il codice con blocco note rifacendo la pagina, non vorrei che dream (nascostamente) inserisse qualcosa che non vedo
 
scusa se sono ancora qui
ma FORSE ho fatto una scoperta utilizzando un altro tutorial (che comunque non mi piace)
Lo script mi dava sempre lo stesso errore di header, come quello che ti ho inviato

non so come mi sia venuta l'idea (ultima ratio) ma ho tolto

@include 'connessione.php';

sostituendolo con le istruzioni di connessione usuali

l'errore di header è sparito
sai dirmi qualcosa?
 
per grazia ricevuta
lo script di tutorial eliminato
@include 'connessione.php';
FUNZIONA (mistero almeno per me), qundi include sembrerebbe un output
comunque un'altra (o due) piccola domanda
1)dove posso inserire el richiamo a stili CSS?
2)se sono sicuro che $id_img sia giusto posso eliminare l'if e mettere header proprio come prima istruzione?
3) perchè le immagini jpg divengono in mysql pjpeg e le png x-png mentre le gif rimangono gif?
potrei continuare, ma la razione quotidiana è esaurita
grazie e ciao
 
Sempre ed ancora immagini in mysql: che barba…che noia
Spulciando sul manuale uffiaciale di php ho trovato (se volete posto tutto) una nota che dice che per IE si deve aggiungere il segente header:

<?php
@header ('Content-type: image/jpeg');
@header('Content-Disposition: inline; filename=file.jpg');

/*(su firfx non serve ho provato ed è vero), ma c’è un grosso ma.
Ho modificato il file show.php del tutorial per vedere non solo una foto ma tutte quelle presenti nel DB, non prendendo id dal file link.php (usando link.php si vedono tutte una alla volta)

Ecco il codice
*/
//---variabili di connessione------eliminato include----------------------------------
$host = 'localhost'; //nome host
$username = 'root'; //user name
$password = 'password'; //password
$db = 'test'; // nome data base
//---connessione----------------------------------------------------
$conn = @mysql_connect($host,$username,$password) or die (mysql_error());
$sel = @mysql_select_db($db) or die (mysql_error());

// fine dati connessione……
$sql = "SELECT id,type,immagine FROM immagini";
$result = @mysql_query($sql) or die(mysql_error ());

while($row = @mysql_fetch_array($result)){
$id_img = $row['id'];
$type = $row['type'];
$img = $row['immagine'];
//echo $type;
echo $img;
//echo $id_img;
//echo “testo di prova”;
// echo “<br>”;
}

?>

Visualizza solo la prima immagine id=1, sembra (?) che si sovrappongano con un’area grigia, non stampa $id_img (me non stampa qualsiasi altro testo), avevo messo anche echo “<br>” per staccare le immagini, ma come se non l’avessi messo (!non so se non stampa o se la foto si sovrappone!).
Mancano degli header?
Ciao e grazie
p.s.
a quando la bannata?
 

Discussioni simili