Mailproblem Flash ->PHP

fredolin

Erfahrenes Mitglied
Hallo Flashgemeinde,

ich habe für eine HP mir aus dem Tutorial von Tobias Menzel (
Einfaches Mailformular mit Flash und PHP (Anfänger, MX2004)) dieses Tutorial geschnabt.
Die überprüfung der Pflichtfelder funktioniert einfandfrei....:)
Doch wenn ich dann auf den "absendbutten" klicke, dann bekomme ich immer nur die Meldung: "Es trat ein unbekannter Fehler auf"......

Hilfe ich brauch rat.. wer kann mir helfen..

hier der source der mailto.php auf mich abgeändert:
PHP:
$answer = "Keine Daten zum Verschicken"; // Standartantwort (wenn z.B. keine Daten in $_POST vorliegen
$mailaddy = "matthias.lux66@googlemail.com";
print_r($_POST);
if (isset($_POST["messages"])) { // Wenn eine Nachricht vorliegt ...
    // Zusammensetzen der Mail aus den einzelnen Variablen:
    $msg  = "Nachricht von: ".urldecode($_POST["v_name"])." ".urldecode($_POST["n_name"])."\n";
    $msg .= "      Betreff: ".urldecode($_POST["subject"])."\n";
    $msg .= "       e-Mail: ".urldecode($_POST["email"])."\n\n";
    $msg .= urldecode($_POST["messages"]);
    $msg = utf8_decode($msg);

    if (mail($mailaddy, "Formmailer", $msg) == true) {
        echo("success=true&"); // Zurückgeben von "true", wenn die Mail akzeptiert wurde
        $answer = "Ihre Nachricht wurde verschickt"; Positive Meldung
    } else {
        $answer = "Ihre Nachricht konnte nicht verschickt werden"; // Fehlermeldung
    }
}

echo("answer=".urlencode($answer)); // Ausgabe der Meldung

hier kommt nun das mailscripting im flash, was ich vom Tobias Menzel übernommen hab aber an meine felder angepasst hab:
hier kurz die namen der feldnamen:

feld Name : Eingabetext ->einzeilig =n_name
-> Vorname: Eingabetext ->einzeilig =v_name
-> Email: Eingebatext -> einzeilig = email
-> Betreff: Eingabefeld -> einzeilig = subject
-> Nachricht: Eingabefeld ->Mehrzeilig = messages

Dekleration Absendbutten:
MC ->but2 mit dem script:
PHP:
on(release){
    _parent.sendForm();
}


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

restrictFields();

function restrictFields() {
	v_name.restrict = "a-zA-Z.\\-öäüßÖÄÜ";
	n_name.restrict = "a-zA-Z.\\-öäüÖÄÜß";
	//subject.restrict = "a-zA-Z0-9.\\-öüäÖÜÄß";
	email.restrict = "a-zA-Z0-9_\\-.@";
	//messages.restrict = "a-zA-Z0-9.\\-öüäÖÜÄß";
}

function checkForm() {
	var error = 0;
	error += (n_name.text.length < 2)? 1 : 0;
	error += (v_name.text.length < 2)? 2 : 0;
	error += (subject.text.length < 4)? 4 : 0;
	error += (email.text.length < 10)? 8 : 0;
	error += (email.text.indexOf("@") < 3 || email.text.lastIndexOf("@") > email.text.length - 4) ? 16 : 0;
	error += (email.text.indexOf(".") < 3 || email.text.lastIndexOf("@") > email.text.length - 2) ? 32 : 0;
	error += (messages.text.length < 2) ? 64 : 0;
	return error;
}

function sendForm() {
	var error = checkForm();
	if (error == 0) {
		var LV = new LoadVars();
		LV.n_name = escape(n_name.text);
		LV.v_name = escape(v_name.text);
		//LV.msg_tel = escape(msg_tel.text);
		LV.email = escape(email.text);
		LV.subject = escape(subject.text);
		LV.messages = escape(messages.text);
		LV.sendAndLoad("mailto.php", LV, "POST");
		trace(email.text);
		trace(subject.text);
		trace(messages.text);
		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);
	}
	trace(email.text);
		trace(subject.text);
		trace(messages.text);
}

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 ein Betreff 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() {
	n_name.text = "";
	v_name.text = "";
	subject.text = "";
	email.text = "";
	messages.text = "";
}

wollte meine fla mit ranhängen aber leider isdt die datei zu groß.. auch per zip oder rar nicht möglich.. hoffe aber ihr könnt mir auch so helfen ansonsten kann ich euch die auch per mail schicken

LG
Matthias
 
Zuletzt bearbeitet:
Hi,

da du das aus nem Tutorial hast, nehm ich mal an, es ist annähernd Fehlerfrei.
Außerdem gehe ich mal davon aus, dass auf deinem Server PHP einwandfrei läuft ;-)
Lade dir mal die Forefox Erweiterung: https://addons.mozilla.org/en-US/firefox/addon/1290
herunter. Nach dem Installieren mit Alt+U öffnen. Da gibst du dann die URL zum PHP-Script auf deinem Server ein, Referrer ist egal. Dann musst du 4 POST Variablen hinzufügen:
v_name
subject
email
messages
Dazu gibst du jeweils nen passenden Wert ein, ein Name, Betreff, deine Mailadresse und eine Nachricht. Dann auf Submit und poste hier mal, was da für ne Ausgabe kommt.

Marius
 
Hallo Marius,

erstmal Danke für deinen Tip...
Hat mich auch etwas weiter gebracht... aber wirklich nur mäuseschrittchen..:-(

hier mal das was mein php-script rausschmeisst

PHP:
Array ( [email] => matthias.lux@webslay.de ) answer=Keine+Daten+zum+Verschicken

mmhh weiss damit nun nüx anzufangen..
hab kontrolliert, ob ich die Variablen falsch geschrieben hab.. ..aber nööö auch ned

Hilfe...?:-O

Gruss
Matthias
 
Ok, bin das PHP Script kurz durch.
Ganz am Anfang wird "Keine Daten zum Verschicken" in der $answer Variable gespeichert. Das ädert sich auch nur, wenn $_POST["messages"] einen Inhalt besitzt.
Hast du denn in der Firefox Erweiterung eine POST-Variable mit einem Wert erstellt?
In dem Fall hätte die $answer Variable definitiv ersetzt werden müssen...

Marius
----
Habs grad mal bei mir getestet, das war die Antwort:
Code:
Array ( [email] => xxx@xxx.de [messages] => Keine nachrichtensdf [subject] => Test [v_name] => Blubb )
success=true&answer=Ihre+Nachricht+wurde+verschickt
Allerdings musst du in der Zeile: $answer = "Ihre Nachricht wurde verschickt"; Positive Meldung noch zwei // vor die Positive Meldung machen um es auszukommentieren. Keine Ahnung, warum das bei dir ging. Bei mir gabs nen Parse Error.
 
Zuletzt bearbeitet:
Hallo Marius,
ich habe in diesem Tool von Firefox mit den Post Variablen gearbeitet. In der FLA übergebe ich ja auch per POST ans php-script.


auch ich habe diese Meldung erhalten:
PHP:
Array ( [n_name] => lux [v_name] => matthias [email] => info@webslay.de [subject] => test [messages] => testing...testing ) success=true&answer=Ihre+Nachricht+wurde+verschickt


überprüft => Mail war in meinem Postfach drinne..:)
ich denke das es im fla-file ein Fehler drinne steckt. denn ich denke, das die Variablen nicht an das PHP-Script übermittelt werden...

Wie siehst du das


Kann ich diese Meldung "Es trat ein unbekannter Fehler auf" so abändern, das es dann ei echter Fehler ist. Meine so wi ich in PHP mit error und errno das machen kann?

Kann einer helfen.....

NACHTRAG:
habe nun mal die Variablen im Formular auch in die Felder Instanzen eingetragen
Nun sicht das im swf File so aus, das in den Formularfeldern das drinne steht:
siehe Bild was angefügt ist:
PHP:
z.B.: Feld Nachname: _level0.content.nachname

Habe die Instanzfelder wieder geleert... so nun steht in den Formularfelder nichts mehr.... aber das Problem ist geblieben...
ABER WO LIEGT DER FEHLER?
HIIILFEEE..:-(
Achso auch das leeren des Formulars geht nun ned mehr...schei...:-(

Gruss
Matze
 

Anhänge

  • mail.jpg
    mail.jpg
    30,3 KB · Aufrufe: 18
Zuletzt bearbeitet:
Hallo.

Hast du den Code in der fla abgeändert? Eigentlich muss der Teil mit onLoad vor dem Teil mit sendAndLoad stehen. Ansonsten mach irgendwo ein großes Textfeld und lass dir darin mal den Inhalt von LV anzeigen, sobald onLoad ausgelöst wird.

Gruß
.
 
hallo Jens,

erstmal danke für deine Antwort. ich habe die fla geändert.. aber dennoch wird nüx versendet.

könntes du mir kurz erklären wie ich mir den inhalt ausgeben kann.
geht das mit trace(variable)?

könntres du mir da ne beispiel für mein script kurz geben.. wäre super...

danke dir

matthias
 
An ALLE,

erstmal ein rechtherzlichen Dank für eure mithilfe und tip. Super Danke..

und nun stelle ich mich an den Pranger...
Ihr dürft mich teern und feedern......

so hier nun die lösung des fehlers......

man sollte im fla auch die richtige pfad angabe machen wo das mailphp script liegt......

oh man jungs.. ich glaub ich brauch urlaub.......:rolleyes::suspekt:

also noch mal herzlichen dank an alle....

und für alle die sowas ähnliches haben

Kontrolliert in den fla die verweise....sonst klappt es nicht mit der übergabe

so ichhab was dazu gelernt.. aber werde mich bestimmt hier noch öfters mit "dummen" fehlers oder hilferufen melden.. also vorab verzeiht mir..

lieben gruss an die gemeinde
fredolin
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück