problemi con header e visualizzazione immagine prelevato da un database

Ciao

Sono tornato di nuovo per vedere se posso avere una mano nel capire e risolvere il seguente problema:

il primo problema è dato da header("Location:nome del file")che mi fa uscire questo messagio "Warning: cannot modify header  information - headers already  sent by (output started at c:\inetpub etc..)

il secondo problema è dato dal fatto che il browser non riesce a visualizzare in modo corretto l'immagine prelavato da mysql

Questi problemi possono dipendere dalla configurazione di php.ini ?

Il mio sistema è:

Windows xp preofessionale:

Apache 2.54;

MYSQL 4.12;

DREAMWEVER MX;

Grazie per l'aiuto

By odino ::)

inviato 11 anni fa
odino
modificato 11 anni fa
X 0 X

Ciao Odino,

innanzitutto, come moderatore del forum, ti prego in futuro di non scrivere un messaggio contenente due distinte problematiche.  :knuppel:

Stavolta ti perdono perché i due quesiti in realtà sono legati (ovviamente sto scherzando  :) )

Entrambi i problemi si risolvono con un corretto utilizzo delle intestazioni (header)

Le intestazioni sono delle informazioni che il server può inviare al client insieme ad una pagina web, ad una immagine o ad un file. Hanno scopi diversi, ad esempio possono invitare il browser a richiedere una determinata pagina ( header("Location:nome del file") ) oppure possono informarlo sul tipo di file che gli si sta inviando.

Poiché si tratta di intestazioni, per ovvi motivi vanno inviate al browser prima di qualsiasi altra cosa. Quindi uno script non può avere una echo o una print e poi un'istruzione header. Questo dovrebbe farti capire come risolvere il primo problema.

Il secondo problema si spiega col fatto che il browser riceve l'immagine ma, probabilmente perché non ha ricevuto informazioni corrette sulla sua tipologia, te lo rappresenta im maniera errata. Se ad esempio stai inviando al browser una jpeg, dovrai preventivamente eseguire la funzione header("Content-type: image/jpeg") oppure header("Content-type: image/gif") per una gif e header('Content-Type: image/png') per una png

Ciao!

risposto 11 anni fa
Gianni Tomasicchio
X 0 X

Una cosa che però non capisco è perchè usando il vecchio php 4.1.2 non avevo questo genere di errore . Inoltre lo script che ho usato funzionava bene prima che installassi  php 5.04.

Ti allego il file che prima funzionva senza problemi. L'unica cosa è che

in realta il valore preso in considerazione nel valore condizionale proviene  da un altro file usato come form.

Spero che questo sia sufficiente per capire meglio la natura della mio dubbio

 Come al solito

Grazie

Odino :uglystupid:

[allegato eliminato dall\' amministratore]

risposto 11 anni fa
odino
modificato 11 anni fa
X 0 X

Riporto il codice del file per chiarezza:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php 

if($_POST[user]=="xfile" or $_POST[password]=="molder")
{
   echo "Errore nei dati inseriti";

}
elseif($_POST[user]=="" or $_POST[password]=="")
{
   echo "errore";
}
else
{
   header ("location:form.php");
}
?>
</body>
</html>

Le prime sette righe vengono inviate direttamente al browser, quindi costituiscono un output. La riga ventuno (header ("location:form.php");) se eseguita deve dare necessariamente errore per le motivazioni che ti ho spiegato prima.

L'errore quindi c'era anche con PHP 4 ma per qualche motivo non ti veniva visualizzato.

risposto 11 anni fa
Gianni Tomasicchio
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda