Zurück   xt:Commerce Webshop Shop Support > xt:Commerce Shopsoftware Community Area > Allgemeine Diskussionen

Antwort
 
LinkBack Themen-Optionen Ansicht
  #1 (permalink)  
Alt 19.06.2006, 21:57
 
Registriert seit: 19.06.2006
Beiträge: 2
Standard

Die Fehlermeldung:
Cannot add header information - headers already sent by ...
nervt und kann vermieden werden ...
Der Fehler tritt z.B. auf, wenn es ein Problem beim Mailen gibt.

Daher habe Code gebaut, der den Fehler in der roten "errorBox"
auszugibt.

Daf?r habe ich im Verzeichnis includes eine Datei errors.php erzeugt mit
folgendem Inhalt:
---------------------------------------
<?
/* -----------------------------------------------------------------------------------------
errors.php

by Lutz / ilLUTZminator@web.de
-----------------------------------------------------------------------------------------

Released under the GNU General Public License
-----------------------------------------------------------------------------------------

The message:
Cannot add header information - headers already sent by ...
nervs.
So find a way to bring error messages in the "errorBox"

Write these EARLY error messages into a file and
print them out in the header afterwards
*/

if (!defined('EARLYERRORS'))
{
// prevent from trying to declare several times ...
define('EARLYERRORS', 'ON') ;

function EarlyErrorWrite($cError)
{
// writing into cache should always be possible
$cFile = DIR_FS_DOCUMENT_ROOT . '/cache/EarlyErrors.txt' ;

// create (or open) a file, go to the end and write the error in one line
$hFile = fopen($cFile, "w") ;
fseek($hFile, SEEK_END) ;
fwrite($hFile, $cError . "\n") ;
fclose($hFile) ;
}

function EarlyErrorRead()
{
$cFile = DIR_FS_DOCUMENT_ROOT . '/cache/EarlyErrors.txt' ;
if (file_exists($cFile))
{
// if an EARLY error produced a file ->
// print it in an errorBox line by line
$cError = "" ;
$aLines = file($cFile) ;
foreach($aLines as $nLine => $cLine)
$cError = $cError . $cLine . "
" ;

xtc_output_warning($cError) ;

// delete the file so that error is only shown ONCE
unlink($cFile) ;
}
}

} // if (!defined('EARLYERRORS'))
?>
---------------------------------------

Die Funktionen der Datei sind bisher an 2 Stellen eingebunden (Version 3.04)

in
o inc/xtc_php_mail.inc.php ab Zeile 84
--------------------------------------------
// ### LH 19.06.2006
$ErrorReporting = error_reporting(E_ERROR) ;
if (!$mail->Send())
{
require (DIR_FS_DOCUMENT_ROOT . '/includes/errors.php');
EarlyErrorWrite("Message was not sent
Mailer Error: " .
$mail->ErrorInfo) ;
error_reporting($ErrorReporting) ;
return false ;
}
error_reporting($ErrorReporting) ;
// ### LH 19.06.2006 - End
--------------------------------------------

und in
o includes/header.php ab Zeile 296
--------------------------------------------
// ### LH - 19.06.2006
require (DIR_FS_DOCUMENT_ROOT . '/includes/errors.php');
EarlyErrorRead() ;
// ### LH Ende
--------------------------------------------

Damit sehen die Email-Fehler schon mal SCH?N aus ....
auch wenn sie nach wie vor nicht sch?n sind.

Probierts aus, falls Ihr Euch auch schon mal dr?ber ge?rgert habt.

Prinzipiell kann man
EarlyErrorWrite()
nat?rlich auch an anderen Stellen einsetzen. Ich hatte bisher nur
beim Mailen die Notwendigkeit.

und jetzt guten Nacht

Lutz
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #2 (permalink)  
Alt 23.06.2006, 21:09
Benutzer
 
Registriert seit: 25.05.2006
Beiträge: 60
Standard

Hi,

kann jetzt nicht wirklich was dazu sagen, nur dass ich selbige Fehlermeldung immer bekam, wenn ich noch irgendwo ein paar echo-Anweisungen stehen hatte.
Es wird also was ausgegeben, was ihm nicht passt. Echos habe ich jetzt bei dir nicht gesehen, aber vielleicht hilft dir das irgendwie weiter.

Gru? Bj?rn
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
  #3 (permalink)  
Alt 03.07.2006, 15:56
 
Registriert seit: 19.06.2006
Beiträge: 2
Standard

<div class='quotetop'>QUOTE(Deadblow @ Jun 23 2006, 10:09 PM) Quoted post</div><div class='quotemain'>
Hi,

kann jetzt nicht wirklich was dazu sagen, nur dass ich selbige Fehlermeldung immer bekam, wenn ich noch irgendwo ein paar echo-Anweisungen stehen hatte.
Es wird also was ausgegeben, was ihm nicht passt. Echos habe ich jetzt bei dir nicht gesehen, aber vielleicht hilft dir das irgendwie weiter.

Gru? Bj?rn
[/b][/quote]


Irgendwie habe ich wohl sehr ungeschickt formuliert - zugegeben.

Der eingestellte Code ist keine Problembeschreibung,
sondern die L?sung.
Falls Fehler vor der Erstellung des Headers auftauchen,
k?nnen diese mit dem Code sauber ausgeben werden ...

Im Prinzip werden Fehlermeldungen zun?chst in eine Datei
geschrieben und dann nach der Erstellung des Headers
ausgegeben
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
add, header, headers

Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus



Alle Zeitangaben in WEZ +1. Es ist jetzt 10:50 Uhr.

Copyright © 2011 xt:Commerce GmbH / xt:Commerce International Ltd. - All Rights Reserved

xt:Commerce is a SafeCharge brand