Zurück   Flashforum > Flash > Flash Einsteiger

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-08-2008, 14:09   #1 (permalink)
me.wo
 
Benutzerbild von me.wo
 
Registriert seit: Oct 2006
Ort: Köln-Mülheim
Beiträge: 23
Question Problem mit Mailversand

Hallo liebe Flash-Experten,

ich habe meine swf in html eingebunden und steuere es auch teilweise extern. In der swf ist u.a. ein Formular, welches per php und E-Mail versendet wird. Klappt auch soweit alles wunderbar.
Nun möchte ich aber, dass der Film auf einen anderen Frame springt, wenn die Daten gesendet wurden. Bei meinen Versuchen springt er zwar in den gewünschten Frame, verschickt aber dann die Mail nicht mehr.

Hat da vielleicht jemand eine Idee, woran das liegen könnte?
Hier ein Ausschnitt meines Scripts (das Problem ergibt sich unten durch: _root.gotoAndPlay(4):

HTML-Code:
fncInit = function () {
	for (i=0; i<txtFeldArr.length; i++) {
		currentTxtFeld = 0;
		prevtTxtFeld = 0;

		mcFormular[txtFeldArr[i]].i = i;

		fncClear(mcFormular[txtFeldArr[i]], mcFormular[txtFeldArr[i]].i);
		fncOldStyle(mcFormular[txtFeldArr[i]]);

		mcFormular[txtFeldArr[i]].onSetFocus = function() {
			prevtTxtFeld = currentTxtFeld;
			currentTxtFeld = this;

			fncNewStyle(currentTxtFeld);
			fncOldStyle(prevtTxtFeld);

			fncCheckContent(currentTxtFeld);
			fncCheckContent(prevtTxtFeld);
		};
	}
};

fncSend = function () {
	felderVoll = false;
	emailRichtig = false;
	for (i=0; i<txtFeldArr.length; i++) {
		if ((mcFormular[txtFeldArr[i]].text == "") || (mcFormular[txtFeldArr[i]].text == txtLabelArr[i])) {
			mcFormular[txtFeldArr[i]].textColor = "0xFF0000";
			mcFormular.txtStatus.text = "Alle Felder korrekt ausfüllen";
			felderVoll = false;
		} else {
			felderVoll = true;
		}

		if ((mcFormular.varEmail.indexOf("@")<2) || (mcFormular.varEmail.indexOf(".")<5)) {
			mcFormular.txtEmail.textColor = "0xFF0000";
			mcFormular.txtStatus.text = "Alle Felder korrekt ausfüllen";
			emailRichtig = false;
		} else {
			emailRichtig = true;
		}
	}

	if ((felderVoll == true) && (emailRichtig == true)) {
		mcFormular.txtStatus.text = "Daten gesendet ...";
		mcFormular.loadVariables("fujiGameMail.php", "POST");
		_root.gotoAndPlay(4);
	}
	
};

mcFormular.btnSend.onRelease = function() {
	this.txtLabel._x = this.txtLabel._y -= 1;
	fncSend();
};

fncInit();
Wäre wirklich für jede Hilfe dankbar!

Geändert von me.wo (26-08-2008 um 14:11 Uhr)
me.wo ist offline   Mit Zitat antworten
Alt 26-08-2008, 14:15   #2 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,
ich würde mir von PHP eine Rückmeldung geben lassen ob die mail versendet wurde oder nicht, jenachdem erscheint im Flash dann eine Fehlermeldung oder die Erfolgsseite.

Gruß ksw24

P.S.: besser ist es auch mit LoadVars zu arbeiten...loadVariables ist veraltet und soll wohl nicht mehr benutzt werden.
ksw24 ist offline   Mit Zitat antworten
Alt 26-08-2008, 14:22   #3 (permalink)
me.wo
 
Benutzerbild von me.wo
 
Registriert seit: Oct 2006
Ort: Köln-Mülheim
Beiträge: 23
Hallo ksw24,

erstmal vielen Dank für die schnelle Antwort!
Wie würde es denn funktionieren, sich so eine Rückmeldung geben zu lassen?
Hab da leider nicht so viel Ahnung von...
Ist denn nicht auch eigentlich klar, dass sie nicht versendet wird, wenn sie nicht in meinem E-Mail Postfach ankommt?
me.wo ist offline   Mit Zitat antworten
Alt 26-08-2008, 14:30   #4 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,
ja toll, nur weiß Flash oder PHP nicht, ob was in deinem Postfach angekommen ist.

Du kannst mit
PHP-Code:
<?
if(mail($to$subject$message$headers)){
    echo 
"&status=done&";
}else{
    echo 
"&status=error&";
}
// oder aber auch
echo "&status=";
echo (
mail($to$subject$message$headers)) ? "done&" "error&";
?>
etwas ausgeben, wenn eine mail (nicht) gesendet wurde.

Im Flash kannst du das dann abfragen z.b. mit this.status.
Um mal eben bei loadVariables zu bleiben:
ActionScript:
  1. this.loadVariables("die.php", "method");
  2. this.onData=function(){
  3.     if (this.status=="done"){
  4.         delete this.onData;
  5.         _root.gotoAndStop("erfolgsFrame");
  6.     }
  7.     if (this.status=="error"){
  8.         delete this.onData;
  9.         _root.gotoAndStop("fehlerFrame");
  10.     }
  11. }

Aber schau dir bitte loadVars an - ist wesentlich eleganter.

Gruß ksw24

Geändert von ksw24 (26-08-2008 um 14:34 Uhr)
ksw24 ist offline   Mit Zitat antworten
Alt 26-08-2008, 15:07   #5 (permalink)
me.wo
 
Benutzerbild von me.wo
 
Registriert seit: Oct 2006
Ort: Köln-Mülheim
Beiträge: 23
Hallo ksw24,

wenn ich diesen Test mache, erscheint der "erfolgsFrame"...
Aber wieso kommt denn nichts an?
Ich verstehe das nicht: Ohne "_root.gotoAndStop(4);" klappt alles super und mit gar nichts mehr?

Gruß
Meike

PS: Danke auch für deinen Tipp bzg. loadVars. Werde ich mir gerne anschauen, aber erstmal muss ich dieses Problem hier lösen
me.wo ist offline   Mit Zitat antworten
Alt 26-08-2008, 15:10   #6 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,
poste ma bitte dein PHP code zum senden und deine neue Variante im Flash.

Gruß ksw24
ksw24 ist offline   Mit Zitat antworten
Alt 26-08-2008, 15:14   #7 (permalink)
me.wo
 
Benutzerbild von me.wo
 
Registriert seit: Oct 2006
Ort: Köln-Mülheim
Beiträge: 23
PHP-Code

PHP-Code:
<?


$myMail
="meikewobbe@gmx.de";


$nowDay=date("d.m.Y");
$nowClock=date("H:i:s");


$message="
Empfangen am $nowDay um $nowClock\n
----------------------------------------------------------------------------\n
E-Mail-Adresse: "
.$_POST['varEmail']."
Vorname: "
.$_POST['varVorname']."
Nachname: "
.$_POST['varNachname']."
Firma:  "
.$_POST['varFirma'].
Straße: "
.$_POST['varStrasse'].
PLZ:  "
.$_POST['varPLZ'].
Ort:  "
.$_POST['varOrt'].


Nachricht:
------------------------------
Quadrant: "
.$_POST['varBuchstabe']." ".$_POST['varZahl']."
------------------------------
- "
.$_POST['varBeratung']."
- "
.$_POST['varTermin']."
- "
.$_POST['varProspekt'].

----------------------------------------------------------------------------\n
"
;


$header"From: ".$_POST['varEmail']."";
$subject "Fujifilm Game";


mail($myMail$subject$message$header);

if(
mail($myMail$subject$message$header)){
    echo 
"&status=done&";
}else{
    echo 
"&status=error&";
}


?>
In der fla hab ich nichts weiter geändert als deinen Code sowie 2 Frames (Erfolg + Fehler) einzusetzen...

Geändert von me.wo (26-08-2008 um 15:16 Uhr)
me.wo ist offline   Mit Zitat antworten
Alt 26-08-2008, 15:27   #8 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,
also eine Zeile kannst du löschen, sonst würden ja 2 Mails versendet.
PHP-Code:
$header"From: ".$_POST['varEmail']."";
$subject "Fujifilm Game";


mail($myMail$subject$message$header);  // <- kannst du löschen

if(mail($myMail$subject$message$header)){
    echo 
"&status=done&";
}else{
    echo 
"&status=error&";

Beachte die Hinweise aus diesem Thread: http://flashforum.de/forum/showthread.php?t=258308

Wenn du das PHP im Brwoser aufrufst, wird dann eine mail versendet? Ich nehme an ja, denn du schreibst ja, dass Flash auf den Erfolgs-Frame springt, was ja nur bei echo "status=done" passieren kann. Teste es dennoch, landet eine Mail in deinem Postfach, wenn du nur das PHP-Script im Browser aufrufst?

Benzutzt du gotoAndStop()?

Gruß ksw24

Geändert von ksw24 (26-08-2008 um 15:32 Uhr)
ksw24 ist offline   Mit Zitat antworten
Alt 26-08-2008, 16:02   #9 (permalink)
me.wo
 
Benutzerbild von me.wo
 
Registriert seit: Oct 2006
Ort: Köln-Mülheim
Beiträge: 23
Hey ksw24,

wirklich keine Ahnung, was ich da gemacht habe...
ABER es funktioniert jetzt!

Vielen Dank für deine Hilfe!!!
me.wo ist offline   Mit Zitat antworten
Alt 26-08-2008, 16:03   #10 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,
kein Ding - immer wieder gern.

Gruß ksw24
ksw24 ist offline   Mit Zitat antworten
Alt 26-08-2008, 16:29   #11 (permalink)
me.wo
 
Benutzerbild von me.wo
 
Registriert seit: Oct 2006
Ort: Köln-Mülheim
Beiträge: 23
Internet Explorer will nicht mitmachen

Hallo... ja, ich schon wieder

Ich habe das Ganze gerad mal mit verschiedenen Browsern getestet.
In Firefox und Opera klappt alles super, aber im IE (Version 7.0.5730.13) sendet er zwar brav die Daten, aber springt nicht zum gewünschten Frame.

Woran kann das liegen?
me.wo ist offline   Mit Zitat antworten
Alt 26-08-2008, 16:34   #12 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Hallo,
das könnte unter Umständen an loadVariables liegen, weil als ich das Forum fragte was der Unterschied zu loadVars sei, das sagte man mir, es sei sowas wie Glück, ob bei loadVariables was ankommt oder nicht...loadVars sei sicherer in der Beziehung. Ich perönlich hatte nie Probleme mit loadVariables, in jedem Fall, ich meine auch im IE, habe ich das gewollte Ergebnis erhalten.

Dennoch bin ich auf loadVars umgestiegen und findes es seither auch wesentlich angenehmer.

Gruß ksw24
ksw24 ist offline   Mit Zitat antworten
Alt 26-08-2008, 16:47   #13 (permalink)
me.wo
 
Benutzerbild von me.wo
 
Registriert seit: Oct 2006
Ort: Köln-Mülheim
Beiträge: 23
Ok, ich werde das morgen mal probieren mit loadVars.
Dir noch ein dickes Dankeschön und einen schönen Abend!
me.wo ist offline   Mit Zitat antworten
Alt 26-08-2008, 16:48   #14 (permalink)
asFlasher
 
Benutzerbild von ksw24
 
Registriert seit: Jul 2006
Beiträge: 1.136
Danke - dir ebenso
ksw24 ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

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

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



Alle Zeitangaben in WEZ +1. Es ist jetzt 08:07 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele