![]() |
Modulo da sito - Versione stampabile +- Web4Web.IT - Community Forums (https://www.web4web.it/forum) +-- Forum: Supporto Tecnico (/forum-21.html) +--- Forum: Programmazione & Design (/forum-23.html) +---- Forum: PHP (/forum-24.html) +---- Discussione: Modulo da sito (/thread-77.html) |
Modulo da sito - Elisabetta - 18-11-2009 16:25 Salve a tutti. Ho un piccolo-grande problema con i moduli inviati su casella email dal mio sito. L'errore che mi compare è questo: Citazione:Warning: Cannot modify header information - headers already sent by (output started at /home/[..]/public_html/inviomail.php:8) in /home/[..]/public_html/inviomail.php on line 75 Il mio problema è che i moduli hanno sempre funzionato.. ma su un altro server. Mi rendo conto benissimo che da server a server cambiano molti parametri e quindi l'errore è del codice, ma io non ho riesco proprio a capire DOVE devo andare ad agire! Ho visto la linea 75 del file inviomail.php... ma non riesco. Qualcuno riesce ad aiutarmi? Il codice intero della pagina sopra descritta è: Codice PHP: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ...ripeto, prima di essere fraintesa, che dicendo "prima funzionava" NON sto dando la colpa al server!!! Voglio solo dire che è un codice che nel bene o nel male funzionava, e quindi sono consapevole che adattandolo ai nuovi parametri dovrebbe continuare a fare il suo lavoro! Grazie ancora a tutti. PS. Aggiungo che il modulo è inviato correttamente, ma la pagina mostra l'errore. Quindi l'invio del modulo funziona! RE: Modulo da sito - 1Dan - 18-11-2009 16:43 Il problema è il redirect in fondo. Codice PHP: if(empty($redirect)): La funzione header() deve essere inviata prima di qualsiasi altro output. Puoi provare a far precedere la funzione header con "@" Codice PHP: if(empty($redirect)): RE: Modulo da sito - Elisabetta - 18-11-2009 16:55 Ciao Dan! Grazie mille per la risposta. Ho provato e il risultato è il caricamento di una pagina bianca... che è "inviomail.php". Infatti se leggo il codice sorgente mi appare l'intestazione: Codice: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> Capisco che è già un grosso passo avanti.. ma non viene caricata la pagina di ringraziamento! ![]() Cosa posso modificare ancora? RE: Modulo da sito - 1Dan - 18-11-2009 17:06 Ho provato anche io a fare come suggerito, ma il redirect comunque non funziona. Il problema è quello che ti ho detto. La funzione deve stare prima di qualsiasi altra cosa, perfino dei tag di intestazione. Un altra prova che puoi fare, è inserire ob_start(); in cima allo script e ob_end_flush(); in fondo. RE: Modulo da sito - Elisabetta - 18-11-2009 17:18 Ho provato a metterli: CASO 1) Prima di ogni cosa Dopo ogni cosa Risultato-> Viene stampato su pagina bianca ob_start e l'altro anche CASO 2) Ho inserito appena dopo <?php e appena prima di ?> Risultato -> Pagina bianca senza redirect ![]() Se li eliminassi e inserissi un redirect html nell'header di inviomail.php? RE: Modulo da sito - Gandalf - 18-11-2009 17:19 Ciao Elisabetta. Controlla che nella pagina "inviomail.php" non ci sia nemmeno una riga vuota. Fai uno screenshot magari. RE: Modulo da sito - Elisabetta - 18-11-2009 17:21 (18-11-2009 17:19)Gandalf Ha scritto: : https://www.web4web.it/forum/post-439.html#pid439Ciao Elisabetta. Qualche riga vuota credo ci sia. Corro a cancellarle tutte. Grazie anche a te Gandalf RE: Modulo da sito - Elisabetta - 18-11-2009 17:30 Fatto.. non va. Allego lo screenshot.... ps. Ovviamente il "nero" non è per voi (che siete amministratori e sapete tutto di tutti, ma per evitare che qualche visitatore venga a giocare con il mio modulo che non funziona) pps. Riattacco tra un paio d'ore. RE: Modulo da sito - Might - 18-11-2009 17:37 Ciao, anche questo è output Codice: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> RE: Modulo da sito - Elisabetta - 18-11-2009 19:09 Dunque, sembra funzionare così facendo... (mi rendo conto che non è una soluzione pulita, ma almeno funziona) Ho eliminato il blocco Codice: if(empty($redirect)): E inserito nell'head questo Codice: <meta http-equiv="Refresh" content="1;URL=grazie.php" /> Compare per 1 secondo la pagina bianca e poi si refresha nella pagina di ringraziamento. Ciò non toglie che continuerò a cercare di migliorare la versione precedente! |