FCKEditor Encoding Problem

Alles, was nicht in die anderen Foren passt, kannst du hier loswerden.
Antworten
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

FCKEditor Encoding Problem

Beitrag von ise »

Hallo zusammen,
Ich weiss, hier ist eigendlich Admidio angesagt, doch ich versuch es trozdem.
Ich erhalte von ofizieller Seite kein Feedback, im CKSource Forum hilft niemand, darum versuch ich mal hier Hilfe zu finden - evtl benutzt jemand von euch bereits den FCKEditor.
Ich habe folgendes Problem:
Ich benutze diesen Editor in Admidio und möchte damit HTML Mails versenden können. Nur werden diese falsch verschickt und in der Datenbank abgespeichert.
Der Code, den ich eingebe, stimmt. Aber sobald ich ihn absende und in der Datenbank abspeichere, so ist es falsch. Folgender Code gebe ich im Editor ein (natürlich wird er vom Editor generiert. Ich schreibe und formattiere nur den Text.

Code: Alles auswählen

<p>Test <b>bold text.</b></p> <p><i>incremental text</i></p> <p>Thanks for you attention</p>
In meiner Datenbank wird er aber wie folgt abgespeichert:

Code: Alles auswählen

<p>Test <b>bold text.</b></p>
<p><i>incremental text</i></p>
<p>Thanks for you attention</p>
Seite sowie Datenbank sind UTF-8 Encoded. Im selben Format werden die Mails auch angezeigt, wenn sie verschickt werden.
Sofern irgendjemand bereits Erfahrung gemacht hat mit diesem Editor, so wäre ich sehr dankbar, wenn er mir evtl. helfen könnte.
Ansonsten kurzer Satz - Ne, da können wir nicht helfen - dann ist es für mich gegessen. :)

Vielen Dank!
Gruss
Ise
Roland
Former team member
Beiträge: 80
Registriert: 25. Feb 2007, 19:59

Beitrag von Roland »

Hallo ise,

schaut mir ganz danach aus das dieser einfach den Text durch htmlspecialchars() bzw. htmlentities() ersetzt.
htmlspecialchars_decode() macht dies aber wieder rückgängig.

Dies müsste man dann nach dem db auslesen und vor dem wegschicken der Mail einbauen.

Gruß
Roland
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

Beitrag von ise »

Hi Roland,
Vielen Dank für deine Antwort. Nun wird es korrekt in der Datenbank abgespeichert. Nur als E-Mail wirds nun ebenfalls als HTML Code versendet. Nicht als formattierter Text bzw. Bild etc.
Ist dir da ebenfalls etwas bekannt?
Im Header gebe ich folgende Informationen mit:

Code: Alles auswählen

    $headers = "MIME-Version: 1.0rn";
    $headers .= "Content-type: text/html; charset=iso-8859-1rn";
    $headers  .= "From: $from\r\n"; 
Es ist nicht exakt dieser Quellcode, da ich momentan nicht auf den FTP zugreifen kann. Ich gebe zumindest Absender, MIME Version und Charset mit.
Das Mail wird schlussendlich folgendermassen versendet:

Code: Alles auswählen

mail($to, $subject, $message, $headers); 
Hab soeben im Netz gefunden:

Bringt es was wenn ich den Code folgendermassen übergebe?

Code: Alles auswählen

chunk_split(base64_encode(TEXT);
Danke für eure Antwort.
Gruss
Ise
Roland
Former team member
Beiträge: 80
Registriert: 25. Feb 2007, 19:59

Beitrag von Roland »

Hi ise,

ich hätte es eher nach der Datenbankabfrage eingebaut .. stört ja niemanden wenn es in der Datenbank htmlentities codiert drin steht .. is aber auch kein Problem.

Ich glaub das wiederum irgendwo nach der DB Abfrage die message wieder mit htmlentities codiert wird. Weil sonst könnt ich mir nicht erklären warum dieser wieder wie vorher ausschaut.

Den HTML Code musst du nicht umbedingt base64 codieren der HTML Text kann uncodiert der Funktion mail übergeben werden.

Mit mehr code ca dort wo die DB Abfrage stattfindet würd ich mir leichter tun mit der Problem Diagnose =) .. außer er is top secret :)

Gruß
Roland
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

Beitrag von ise »

ne, ist natürlich nicht top secret.
Der Inhalt wird korrekt angezeigt, einfach mit den HTML Tags. D.h. also nicht formattiert. Zuvor wurde er genau gleich angezeigt, wie er in der Datenbank abgespeichert wurde.
Huch, das ist ne Zangengeburt :lol:
Wie würdest du dann das machen mit der Datenbankausgabe? Da musst du ja noch einmal ein Query einbauen :-)

Gruss
Ise
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

Beitrag von ise »

Nur für dein Verständnis. Ich habe die Datenbankverbindung eingebaut, um später die versendeten "Newsletter" wieder im Archiv anschauen zu können.
Gleichzeitig zur Sicherung der Datenbank wird also das Mail verschickt. Zwei Schritte in einem Klick.

Code: Alles auswählen

/* E-Mail an alle Eintrager versenden */
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/text; charset=iso-8859-1\r\n";
$headers .= "From: JSM Newsletter <$eig_email>\r\n";
$text=stripslashes($text);
foreach ($email as $temp) {
mail ("$temp","$betreff","$text","$headers") or die ("Konnte Newsletter nicht versenden");
Gruss Ise
ise
Beiträge: 119
Registriert: 11. Sep 2009, 11:08
Wohnort: Schweiz

Beitrag von ise »

Problem wurde gelöst!
Header musste angepasst werden...

Code: Alles auswählen

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers .= 'From: JSM Newsletter <'.$eig_email.'>' . "\r\n";
Danke Roland für deine Hilfe!
Gruss
Ise
Roland
Former team member
Beiträge: 80
Registriert: 25. Feb 2007, 19:59

Beitrag von Roland »

Hi ise,

den größten Teil hast ja du allein geschafft ^^ .. also nix zu danken :D

Falls du andere Fragen/Probleme hast sind wir immer und gerne, sofern es
unsere Freizeit zulässt, für dich da :)

Gruß
Roland
Antworten