problema con header(Location....)

pollat

Utente Attivo
10 Ott 2013
63
0
6
Sono 5 giorni che son dietro ad uno script che ha un problema con "header (Location...)" senza aver risolto molto :
in pratica ho uno script di un modulo per spedire e-mail che funziona bene ma che non funziona nell'esecuzione dell'header ,
ossia non appare la pagina di reindirizzamento di conferma "comunicazione avvenuta", ma appare solo la pagina dello script bianca.
Ho controllato che non vi siano output prima di usare header (anche se non sono espertissimo di php) ma non funziona comunque.

Lo script è questo:

PHP:
<?php
if(substr(basename($_SERVER['PHP_SELF']), 0, 11) == "imEmailForm") {
	include '../res/script_invio_mail_net_office.php';
	$form = new ImForm();
	$form->setField('destinatario', $_POST['imObjectForm_43_1'], '', false);
	$form->setField('oggetto', $_POST['imObjectForm_43_2'], '', false);
	$form->setField('messaggio', $_POST['imObjectForm_43_3'], '', false);
	$form->setField('Allega', $_POST['imObjectForm_43_4'], '', true);
	$form->setFile('File 1', $_FILES['imObjectForm_43_5'], $imSettings['general']['public_folder'], '', '');
	$form->setFile('File 2', $_FILES['imObjectForm_43_6'], $imSettings['general']['public_folder'], '', '');
	$form->setFile('File 3', $_FILES['imObjectForm_43_7'], $imSettings['general']['public_folder'], '', '');
	$form->setField('', $_POST['imObjectForm_43_8'], '', true);

	if(@$_POST['action'] != 'check_answer') {
		if(!isset($_POST['imJsCheck']) || $_POST['imJsCheck'] != 'jsactive' || (isset($_POST['imSpProt']) && $_POST['imSpProt'] != ""))
			die(imPrintJsError());
		$form->mailToOwner('[email protected]',$_POST['imObjectForm_43_1'],$_POST['imObjectForm_43_2'],$_POST['imObjectForm_43_3'],false);
		$form->mailToCustomer('[email protected]','[email protected]','Conferma invio e-mail','Conferma invio della mail che hai compilato con i seguenti dati: ',true);
		header("Location: ../comunicazione_inviata.html");
		exit();
	} else {
		echo $form->checkAnswer(@$_POST['id'], @$_POST['answer']) ? 1 : 0;
	}
}


// End of file


Mi date una mano a scoprire cosa non va, please????
 

f107

Utente Attivo
7 Ago 2012
203
6
18
Roma
Sono 5 giorni che son dietro ad uno script che ha un problema con "header (Location...)" senza aver risolto molto :
in pratica ho uno script di un modulo per spedire e-mail che funziona bene ma che non funziona nell'esecuzione dell'header ,
ossia non appare la pagina di reindirizzamento di conferma "comunicazione avvenuta", ma appare solo la pagina dello script bianca.
Ho controllato che non vi siano output prima di usare header (anche se non sono espertissimo di php) ma non funziona comunque.

Lo script è questo:

PHP:
<?php
if(substr(basename($_SERVER['PHP_SELF']), 0, 11) == "imEmailForm") {
	include '../res/script_invio_mail_net_office.php';
	$form = new ImForm();
	$form->setField('destinatario', $_POST['imObjectForm_43_1'], '', false);
	$form->setField('oggetto', $_POST['imObjectForm_43_2'], '', false);
	$form->setField('messaggio', $_POST['imObjectForm_43_3'], '', false);
	$form->setField('Allega', $_POST['imObjectForm_43_4'], '', true);
	$form->setFile('File 1', $_FILES['imObjectForm_43_5'], $imSettings['general']['public_folder'], '', '');
	$form->setFile('File 2', $_FILES['imObjectForm_43_6'], $imSettings['general']['public_folder'], '', '');
	$form->setFile('File 3', $_FILES['imObjectForm_43_7'], $imSettings['general']['public_folder'], '', '');
	$form->setField('', $_POST['imObjectForm_43_8'], '', true);

	if(@$_POST['action'] != 'check_answer') {
		if(!isset($_POST['imJsCheck']) || $_POST['imJsCheck'] != 'jsactive' || (isset($_POST['imSpProt']) && $_POST['imSpProt'] != ""))
			die(imPrintJsError());
		$form->mailToOwner('[email protected]',$_POST['imObjectForm_43_1'],$_POST['imObjectForm_43_2'],$_POST['imObjectForm_43_3'],false);
		$form->mailToCustomer('[email protected]','[email protected]','Conferma invio e-mail','Conferma invio della mail che hai compilato con i seguenti dati: ',true);
		header("Location: ../comunicazione_inviata.html");
		exit();
	} else {
		echo $form->checkAnswer(@$_POST['id'], @$_POST['answer']) ? 1 : 0;
	}
}


// End of file


Mi date una mano a scoprire cosa non va, please????

Ciao, questa è la pagina completa o solo un estratto?
Prima del tag di apertura del php ci sono spazi o altro?
ma i log che errore ti danno?
 

pollat

Utente Attivo
10 Ott 2013
63
0
6
Ciao, questa è la pagina completa o solo un estratto?
Prima del tag di apertura del php ci sono spazi o altro?
ma i log che errore ti danno?

è la pagina completa e non appare nessun errore (l'email viene inviata regolarmente) ma una volta eseguito lo script invece di apparire la pagina presente nel tag header(location...), appare la pagina bianca con l'indirizzo del file di script sopra riportato
 
Ultima modifica:

f107

Utente Attivo
7 Ago 2012
203
6
18
Roma
è la pagina completa e non appare nessun errore (l'email viene inviata regolarmente) ma una volta eseguito lo script invece di apparire la pagina presente nel tag header(location...), appare la pagina bianca con l'indirizzo del file di script sopra riportato

ed i file di log non danno errori? mi pare strano.
Sostituisci exit(); con die('prova'); e vediamo se lo stampa.

Ciao
 

pollat

Utente Attivo
10 Ott 2013
63
0
6
ed i file di log non danno errori? mi pare strano.
Sostituisci exit(); con die('prova'); e vediamo se lo stampa.

Ciao

Sì, stampa "prova" quindi c'è un errore nello script come dicevi tu... ma come faccio a capire dove è l'errore (è un file di 5000 righe) e dove trovo i file di log?

p.s. grazie cmq. per l'aiuto
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Quando leggi "prova" con il test che ti ha consigliato f107, hai letto anche qualche altro output ? Se si devi correggere lo script di modo che non ci siano output prima della chiamata di header().
In ogni caso, prova ad impostare il parametro secondario di header su true che nel malaugurato caso sia presente un altro header location questo verrà rimpiazzato dalla tua ultima istruzione invece di sommarsi alle informazioni da inviare al browser.
 

f107

Utente Attivo
7 Ago 2012
203
6
18
Roma
Quando leggi "prova" con il test che ti ha consigliato f107, hai letto anche qualche altro output ? QUOTE]

No, solo "prova".



E come faccio ad impostarlo su true, cosa devo aggiungere?

Scrivi cosi
PHP:
header("Location: ../comunicazione_inviata.html", true);

ma sei sicuro che in script_invio_mail_net_office.php non ci sia neanche un echo o simili?

Facci sapere.
Ciao
 

pollat

Utente Attivo
10 Ott 2013
63
0
6
ma sei sicuro che in script_invio_mail_net_office.php non ci sia neanche un echo o simili?
Ciao

No guarda non son sicuro per niente... ma è un file di più di 7000 righe....

Ma scusate non posso risolvere il tutto senza impazzire mettendo un redirect html tra le parentesi del "die()" ???

Una roba del genere
die ("<html><head><META HTTP-EQUIV='REFRESH' CONTENT='0; URL=../comunicazione_inviata.html'></head></html>")


Avrei qualche inconveniente con questa soluzione???
 
Ultima modifica:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao, potresti usare anche javascript
PHP:
echo "<script>location.href='pagina.html';</script>";
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
al posto di header()
anche la soluzione html potrebbe funzionare
 
Discussioni simili
Autore Titolo Forum Risposte Data
gandalf1959 [PHP] problema con l'utilizzo di Header PHP 3
gandalf1959 problema con header in area riservata PHP 4
X Problema con header() include() e i siti di hosting PHP 1
L problema con la funzione header!!! AIUTO! PHP 24
G html problema table scrollable con header fisso HTML e CSS 2
H problema tabella con header e prima colonna fissi Javascript 1
I Problema con header PHP 16
T Problema con header:"troppi reindirezzamenti" PHP 3
A Re_ problema con HEADER PHP 2
A Problema header con dreamweaver cs3 e PHP PHP 6
A Problema con autenticazione e header() PHP 0
E Problema accesso a file con app sviluppata con MIT APP INVENTOR 2 Sviluppo app per Android 0
M Problema con Try Catch PHP 0
Sergio Unia Problema con gli eventi del mouse su una data table: Javascript 2
T PROBLEMA CON SESSIONI PHP 3
T ALTRO PROBLEMA CON ARRAY PHP PHP 1
T PROBLEMA CON ARRAY PHP 8
L problema con query select PHP 2
R Problema query con ricerca id numerico PHP 2
F Problema con risposta PHP 0
S problema con recupero dati tabella mysql PHP 2
Z Problema con il mio tp-l i nk Reti LAN e Wireless 1
L Problema RAM con Tomcat 8 Apache 0
napuleone problema con sort e asort PHP 4
Z Problema con INT MySQL PHP 1
Z Problema database MySQL con XAMPP PHP 0
M Problema con controllo form in real time jQuery 6
Z Problema di sincronizzazione PAYPAL con PHP PHP 1
G Problema con Get page PHP 4
P Problema con require once PHP 6
P Problema con i package Java 1
A Problema login con Safari PHP 14
F INDESIGN: problema esportazione esecutivo per la stampa con foto B/N Webdesign e Grafica 1
S problema con css bootstrap3 HTML e CSS 4
M .load() problema con caricamenti dinamici di js Javascript 0
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
T problema con select dinamica con jquery Javascript 0
S Problema con spazi bianchi HTML e CSS 5
A PROBLEMA: insert mysqli con dati Tagsinput Presentati al Forum 0
Tommy03 Problema con z-index HTML e CSS 3
M Problema inserimento parole con apostrofo nel db PHP 5
C Problema con dati meteo xml XML 1
S Problema con infrarossi videocamera IP Cam e Videosorveglianza 1
V Problema con librerie allegro5 c++ C/C++ 1
M Problema con php per calcolo costo percentuale PHP 7
S Problema con mysqli_num_rows PHP 18
grgfede Problema javascript con aruba Javascript 1
M Problema con visibility e radio button Javascript 2
Marti1! Problema con casella mail cancellata Posta Elettronica 3

Discussioni simili