E-Mail Formular

meste

Erfahrenes Mitglied
Hallo allerseits,
ich weiss das zig beiträge dbzgl. bereits gibt aber keiner davon hat mir geholfen.
Ich versuche einen ganz einfachen E-Mail Formular zu erstellen laut dem Tutorial auf
http://www.flashworker.de/tutorial/49/001.html

Flashseitig (AS2) habe ich folgendes probiert.
http://www.a-d-k.de/20090129_213128-Ueber+Flash+und+mit+Hilfe+von+php+eine+e-Mail+versenden.htm
bzw. mit
Code:
on (release) { 
    loadVariables("mail.php4", "POST");
}

Jedoch ohne Erfolg.
Ich wäre daher für jede Hilfe sehr sehr dankbar. Ein Snipp, ein Link ...

Danke und Lg
m.e.s.t.e


p.s: Getestet habe ich das auf dem Webserver (Online).
Und weitere Tests kann ich erst wieder am Abend machen.
 
Zuletzt bearbeitet von einem Moderator:

Jens B.

Erfahrenes Mitglied
Hallo meste,
wie in dem Tutorial beschrieben müssen die Variablen vorher deklariert werden. Das ist allerdings alles uralt-Syntax und ich würde das so niemandem mehr empfehlen; geschweige denn so beibringen.

Unter dem zweiten von dir geposteten Link sieht das schon besser aus, du musst aber natürlich das Objekt mit erstellen, welches mitgeschickt wird. In deinem Code gibt es ja keine Daten, die mit an die php-Datei geschickt werden.

Code:
var mymailObj=new LoadVars();

mymailObj.name=tname.text; 
mymailObj.message=tmessage.text; 
mymailObj.mail=tmail.text;

mymailObj.sendAndLoad("mailer.php",mymailObj,"POST");

Poste am besten mal deinen gesamten Code.
 

meste

Erfahrenes Mitglied
Hallo Jens danke vorerst für deine Antwort.
Also im Flash habe ich
Code:
senden.onRelease = function () {

    var checked: Boolean = true;
    checked = fehlerPrüfung();   // Methode welches prüft ob die Eingabefelder befüllt sind
    if (checked == true){		
		var mymailObj=new LoadVars();
		mymailObj.vn = vn;
		mymailObj.nn = nn;
		mymailObj.adr = adr;
		mymailObj.plz = plz;
		mymailObj.ort = ort;
		mymailObj.land = land;
		mymailObj.tel = tel;
		mymailObj.email = email;
		mymailObj.msg = msg;
		mymailObj.betreff = betreff;
		mymailObj.empf = empf;

		mymailObj.sendAndLoad("mail.php4",mymailObj,"POST");
		mymailObj.onLoad=function (success){
			if(success)
			{
				vn="";
				nn="";
				adr="";
				plz="";
				ort="";
				land="";
				tel="";
				email="";
				msg="";
				betreff="";
				error="E-Mail wurde erolgreich versendet";
			}
		} 
	}
}
und PHP
PHP:
<?
$betreff = $_POST['betreff'];
$vn = $_POST['vn'];
$nn = $_POST['nn']; 
$adr = $_POST['adr'];
$plz = $_POST['plz']; 
$ort = $_POST['ort'];
$land = $_POST['land']; 
$tel = $_POST['tel'];
$email = $_POST['email']; 
$msg = $_POST['msg']; 
$empf = $_POST['empf'];
$ipAddress = $_SERVER['REMOTE_ADDR']; 

$vtext="Ihre Mail ist sicher bei $empf angekommen. Sie werden in den nächsten Tage eine Antwort erhalten.";

$bestaetigung="Nachricht angekommen";

$msg=str_replace("\\\"","\"",$msg);
$msg=str_replace("\'","'",$msg);
urlencode ($msg);
$msg=str_replace("%0D","\n",$msg);

mail($empf,$betreff,"$vn $nn\n$adr\n$plz\n$ort\n$land\n$tel\n$ipAddress\n\n\n\n $msg","From: ".$email);
mail($email,$bestaetigung,$vtext,"From: ".$empf);
?>

Danke und Lg
m.e.s.t.e
 

Jens B.

Erfahrenes Mitglied
Poste mal bitte die fla, ich will mal gucken wo die Variablen herkommen und was die Prüf-Funktion genau macht.
 

meste

Erfahrenes Mitglied
... naja, das ist einbisschen schwer.
Die Variablen werden in der onRelease Methode definiert und nur dort verwendet.

die Methode
Code:
function fehlerPrüfung():Boolean{
    var prüf:Boolean=true;
    error="";	
    if(vn=="" || vn == undefined){error="Vorname ungültig!"; prüf = false; }
    if(betreff=="" || betreff == undefined){error="Betreff ungültig!"; prüf = false; }
    if(nn=="" || nn == undefined){error="Nachname ungültig!"; prüf = false; }
    ...
    return prüf;
}
Für die Eingabefelder habe ich keine Instanznamen sondern Variablennamen vergeben.
Leider kann die Flash nicht einfach so hochladen. Falls dir die Info nicht reichen sollte kann ich eine neue fla erstellen und diesen posten.

Danke und Lg
m.e.s.t.e
 

Jens B.

Erfahrenes Mitglied
AAAAH bitte gib den Textfeldern Instanznamen und les dann die Inhalte per Instanzname.text aus - die Variablenvergabe ist schon immer 2003 verbuggt und veraltet. Wenn du die in der onRelease-Methode definierst sind sie auch nur in dieser Methode lokal deklariert und werden in fehlerPrüfung() undefined sein.
 

meste

Erfahrenes Mitglied
Danke vorerst für deine Antwort. Werde das am Abend gleich testen.
Ich hatte den Feldern auch Instanzname vergeben allerdings mit der ersten Variante.
Code:
on (release) { 
    loadVariables("mail.php4", "POST");
}

Jedenfalls danke für den Hinweiss und Lg
m.e.s.t.e
 

meste

Erfahrenes Mitglied
Hallöchen,
ich habe den Textfeldern Instanznamen und vergeben und die Werte von der Eigenschaft text ausgelesen. Leider hat das auch nichts genutzt.
Code:
senden.onRelease = function () {
    var checked: Boolean = true;
    checked = fehlerPrüfung();
    if (checked == true){		
		var mymailObj=new LoadVars();
		mymailObj.vn = vn.text;
		...
		mymailObj.msg = msg.text;

		mymailObj.sendAndLoad("mail.php4",mymailObj,"POST");
		mymailObj.onLoad=function (success){
			error.text="E-Mail Check 1";         //Haltepunkt wird erreicht
			if(success)
			{
				error.text="E-Mail Check 2";         //Haltepunkt wird nicht erreicht
				vn.text="";
				...
Ich wollte dich mal fragen ob du mir ein einfaches Email-Formular (mit 2-3 Eingabefelder) und eine passende php-Datei posten kannst. Erweitern könnte ich das dann selbst.
Wäre dir wirklich sehr dankbar.

Lg
m.e.s.t.e
 

meste

Erfahrenes Mitglied
So, im Anhang habe eine Testdatei mit der entsprechenden php Datei.
Wäre dir dankbar wenn du mir eine Lösung schicken könntest.

Danke und Lg
m.e.s.t.e
 

Anhänge

  • Temp.zip
    5,2 KB · Aufrufe: 18