"versteckten" fehler gefunden
ich bin immer wieder froh und glücklich, wenn ich einen "wie-soll-man-bitte-auf-das-kommen-außer-per-zufall"-fehler gefunden und beseitigt habe - wie auch in diesem fall:
im anwendungsprojekt inkludiere ich gerade den phpmailer in ein drupal-cms, um mails verschicken zu können ohne einen smtp-server zu installieren. nun habe ich es schon so weit geschafft, dass die mail rausgeht, nur kam ich dann auf eine leere seite anstatt redirected zu werden. im log wurde folgende meldung eingetragen:
da ich einen editor verwendet habe, der keine zeilennummern anzeigt, fiel es mir nicht auf, dass diese datei aus nur 27 zeilen code bestand. als ich die zeilen zählte und auf 28 kam, war mir alles klar.
die funktion header() wird zum senden von http-headerinfos im rohformat benutzt. da diese infos im header sind, müssen sie vor jeglichen output stehen - nicht einmal ein leerzeichen, eine leerzeile, ein zeilenumbruch noch sonstiges in dieser art darf vor dem aufruf sein. der fehler trat auf, da die phpmailer.inc mittels include() eingelesen wurde und sich ganz zum schluss ein zeilenumbruch nach dem ?> eingeschummelt hatte.
zeilennummern sei dank ;)
mfg mailo
ps: hilfreiche quellen: quelle 1, quelle 2 und quelle 3
anmerkung: lasst euch nicht von den linknamen verwirren ;)
im anwendungsprojekt inkludiere ich gerade den phpmailer in ein drupal-cms, um mails verschicken zu können ohne einen smtp-server zu installieren. nun habe ich es schon so weit geschafft, dass die mail rausgeht, nur kam ich dann auf eine leere seite anstatt redirected zu werden. im log wurde folgende meldung eingetragen:
Cannot modify header information - headers already sent by (output started at [pfad]\includes\phpmailer.inc:28) in [pfad]\includes\common.inc in Zeile 314.
da ich einen editor verwendet habe, der keine zeilennummern anzeigt, fiel es mir nicht auf, dass diese datei aus nur 27 zeilen code bestand. als ich die zeilen zählte und auf 28 kam, war mir alles klar.
die funktion header() wird zum senden von http-headerinfos im rohformat benutzt. da diese infos im header sind, müssen sie vor jeglichen output stehen - nicht einmal ein leerzeichen, eine leerzeile, ein zeilenumbruch noch sonstiges in dieser art darf vor dem aufruf sein. der fehler trat auf, da die phpmailer.inc mittels include() eingelesen wurde und sich ganz zum schluss ein zeilenumbruch nach dem ?> eingeschummelt hatte.
zeilennummern sei dank ;)
mfg mailo
ps: hilfreiche quellen: quelle 1, quelle 2 und quelle 3
anmerkung: lasst euch nicht von den linknamen verwirren ;)
mailo - 14. Mai, 11:15