Problem mit SimpleMailer

VinzenzVega

Grünschnabel
Hi zusammen.
Ich habe ein Problem mit dem SimpleMailer vom Flash Tutorial:
Das schicken funktioniert einwandfrei, ausser man macht mit dem Enter- Taste einen Zeilenumbruch. Dann wird alles was nach dem Zeilenumbruch geschrieben, wird nicht
übertragen.
Automatische Zeilenumbrüche funktionieren, werden aber auf einer Linie im Empfängermail dargestellt.
Was stimmt mit dem PHP-Code nicht?
Habe die Threads schon durchsucht, aber nichts hilfreiches gefunden. :(
Danke für eure Hilfe.
 
hier der Code dazu:

<?php
$answer = "Keine Daten zum Verschicken";

if (isset($_POST["msg_message"])) {
$msg = "Nachricht von: ".urldecode($_POST["msg_forename"])." ".urldecode($_POST["msg_lastname"])."\n";
$msg .= " Telefon: ".urldecode($_POST["msg_tel"])."\n";
$msg .= " e-Mail: ".urldecode($_POST["msg_mail"])."\n\n";
$msg .= urldecode($_POST["msg_message"]);

if (mail("ich@me.de", "Formmailer", $msg) == true) {
echo("success=true&");
}
$answer = "Ihre Nachricht wurde verschickt";
}

echo("answer=".urlencode($answer));

?>
 
Wenn du die Daten per method=POST an das Script übermittelst, kannst du dir urldecode bzw urlencode sparen. Das sollte das Problem auch beheben.
 
Danke das gute ist jetzt, dass ich das mail vollständig erhalte.
nur alles in einer zeile geschrieben und das was mit der space- und entertaste "geschrieben" wurde, wird mit "%20" ersetzt. Bsp: das%20Haus.
Hättest du mir noch einen Tipp wie ich ich das lösen könnte :)
 
... das bezweifle ich, da die Daten (utf-8) in Flash mit "escape" vor dem Versand url-codiert werden. Die Zeilenumbrüche kommen in PHP auch an (das zeigt z.B., dass nl2br an den richtigen Stellen "<br />"s einfügt)... bloß werden sie nicht korrekt verschickt. Mich würde das auch interessieren; ich habe es mit verschiedenen Formaten und Headern versucht -> Fehlanzeige. Ich würde das Tutorial in dieser Hinsicht gerne aktualisieren.

Gruß
.
 
@moritz
also ich bin ein php-freshman und so sieht mein code jetzt aus.
korrekt so?
nun tritt aber das oben erwähnte problem auf.

<?php
$answer = "Keine Daten zum Verschicken";

if (isset($_POST["msg_message"])) {
$msg = "Nachricht von: ".urldecode($_POST["msg_forename"])." ".urldecode($_POST["msg_lastname"])."\n";
$msg .= " Telefon: ".urldecode($_POST["msg_tel"])."\n";
$msg .= " e-Mail: ".urldecode($_POST["msg_mail"])."\n\n";
$msg .= ($_POST["msg_message"]);

if (mail("mail@zumirindenbriefkasten.com", "Formmailer", $msg) == true) {
echo("success=true&");
}
$answer = "Ihre Nachricht wurde verschickt";
}

echo("answer=".($answer));

?>
 
Hallo!

ich hatte überlesen, dass es sich um ein Flash-Form handelt.
Entfern doch in der entspr. *.fla mal das escape.
Code:
LV.msg_lastname = escape(msg_lastname.text); 
        LV.msg_forename = escape(msg_forename.text); 
        LV.msg_tel = escape(msg_tel.text); 
        LV.msg_mail = escape(msg_mail.text); 
        LV.msg_message = escape(msg_message.text);

Weiß allerdings nicht, ob das , da ich von Flash bzw AS null Ahnung hab.
 
dann kommt die fehlermelung: keine daten zum verschicken.
hier noch der as-code:

this.onEnterFrame = function() {
but1.setText("Löschen");
but2.setText("Abschicken");
delete this.onEnterFrame;
}

restrictFields();

function restrictFields() {
msg_forename.restrict = msg_lastname.restrict = "a-zA-Z.\\-öäüÖÄÜß";
msg_tel.restrict = "0-9/\\- ";
msg_mail.restrict = "a-zA-Z0-9_\\-.@";
}

function checkForm() {
var error = 0;
error += (msg_lastname.text.length < 2)? 1 : 0;
error += (msg_forename.text.length < 2)? 2 : 0;
error += (msg_tel.text.length < 4)? 4 : 0;
error += (msg_mail.text.length < 10)? 8 : 0;
error += (msg_mail.text.indexOf("@") < 3 || msg_mail.text.lastIndexOf("@") > msg_mail.text.length - 4) ? 16 : 0;
error += (msg_mail.text.indexOf(".") < 3 || msg_mail.text.lastIndexOf("@") > msg_mail.text.length - 2) ? 32 : 0;
error += (msg_message.text.length < 2) ? 64 : 0;
return error;
}

function sendForm() {
var error = checkForm();
if (error == 0) {
var LV = new LoadVars();
LV.msg_lastname = escape(msg_lastname.text);
LV.msg_forename = escape(msg_forename.text);
LV.msg_tel = escape(msg_tel.text);
LV.msg_mail = escape(msg_mail.text);
LV.msg_message = escape(msg_message.text);
LV.sendAndLoad("mailto.php", LV, "POST");
LV.onLoad = function() {
display.text = "\n> ";
if (this.answer != undefined) {
display.text += unescape(this.answer);
} else {
display.text += "Ein unbekannter Fehler ist aufgetreten!";
}
if (this.success == "true") clearForm();
}
} else {
display.text = errorMsg(error);
}
}

function errorMsg(error) {
var estr = "";
if (error >> 6) {estr += "\n> Geben Sie eine Nachricht ein"; error -= 64;}
if (error >> 5) {estr += "\n> ungültige Domain in der eMail-Adresse"; error -= 32;}
if (error >> 4) {estr += "\n> ungültige eMail-Adresse"; error -= 16;}
if (error >> 3) {estr += "\n> Geben Sie eine eMail-Adresse ein"; error -= 8;}
if (error >> 2) {estr += "\n> Geben Sie eine Telefonnummer ein"; error -= 4;}
if (error >> 1) {estr += "\n> Geben Sie Ihren Vornamen ein"; error -= 2;}
if (error >> 0) {estr += "\n> Geben Sie Ihren Nachnamen ein";}
return estr;
}

function clearForm() {
msg_lastname.text = "";
msg_forename.text = "";
msg_tel.text = "";
msg_mail.text = "";
msg_message.text = "";
}
 
Zurück