Emailformular mit Flash und PHP

Das Flashscript, wie auch das Script der PHP Datei befinden sich auf der nächsten Seite. Ich habe die PHP so programmiert, dass die Email an die Adresse geschickt wird, die du unter "email" eingetragen hast.

Hier wird mit der sendAndLoad Methode eine Email an PHP verschickt. Die PHP Seite empfängt die Variablen, die per POST übermittelt wurden und verschickt diese mit der mail() Funktion.
Die PHP mail Funktion hat folgende Parameter:
mail("Empfängermail", "Betreff","Botschaft", "From: Absendermail")

In der PHP Datei musst du dir deine Emailadresse eintragen.

Die Mail Funktion habe ich in eine if-Struktur eingebunden. Bei Erfolg schreibt PHP mit echo "anzeige=Die Email wurde verschickt." Diese Variable anzeige, wird dann mit der send and Load Methode von Flash empfangen und der Variable _root.anzeige übergeben.

ACTION DES BUTTONS

on (release) {
varSender = new LoadVars();
varSender.UserName = _root.UserName;
varSender.email = _root.email;
varSender.nachricht = _root.nachricht;
varReceiver = new LoadVars();
varReceiver.onLoad = function() {
_root.anzeige = this.anzeige;
};
varSender.sendAndLoad("mailform.php?noCache="+new Date().getTime(), varReceiver);
}

PHP SCRIPT

<?php
$email = $_POST["email"];
$UserName = $_POST["UserName"];
$nachricht = $_POST["nachricht"];
$dieMessage ="$UserName\n";
$dieMessage .= $nachricht;
if(mail("deine@mail.de", "Mailformular meiner Homepage", $dieMessage, "From: $email")){
echo "anzeige=Die Email wurde verschickt.";
}
?>

Eingabefelder mit Vorgabetext

Nächstes Beispiel mit Eingabefeldern, die einen vorgegebenen Text haben.

Auch in diesem Beispiel befinden sich die Aktionen auf der nächsten Seite.
Hier wird in den Eingabefeldern ein Text vorgegeben. Das spart Platz und sieht gut aus. Erreicht wird das Ganze mit Hilfe der beiden Event Handler onSetFocus und onKillFocus. Hat das Eingabefeld den Focus wird überprüft ob der Text dem Vorgabetext entspricht. Ist das der Fall bekommt das Textfeld keinen Text und der User kann seine Eingabe machen. Wenn das Textfeld verlassen wird, wird überprüft, ob das Textfeld leer ist. Ist das der Fall, wird der Vorgabetext eingefügt. Eigentlich ganz einfach, wenn man weiß, wie mans macht.

ACtion SCRIPt FLASH

randfarbe = 0x666666;
textfarbe = 0xbbbbbb;
hintergrund = 0x393939;
TextField.prototype.vorgabe = function(vt) {
this.border = true;
this.borderColor = randfarbe;
this.background = true;
this.backgroundColor = hintergrund;
this.textColor = textfarbe;
// bis hier Schriftformation
// vt = vorgabetext
this.text = vt;
this.onSetFocus = function() {
if (this.text == vt) {
this.text = "";
}
};
this.onKillFocus = function() {
if (this.text == "") {
this.text = vt;
}
};
};
// den Eingabefeldern wird die Prototypefunktion zugewiesen
function init() {
this.name_tf.vorgabe("Ihr Vor- & Nachname:");
this.adresse_tf.vorgabe("Ihre Adresse:");
this.ort_tf.vorgabe("Ihre PlZ/ Ort:");
this.email_tf.vorgabe("Ihre Email:");
this.nachricht_tf.vorgabe("Ihre Nachricht:");
}
//die init funktion muss aufgerufen werden, siehe auch zurück button
init();
//es folgt die Verschicken Aktion für den Button
senden_btn.onRelease = function() {
varSender = new LoadVars();
varSender.name = _root.name_tf.text;
varSender.ort = _root.ort_tf.text;
varSender.adresse = _root.adresse_tf.text;
varSender.email = _root.email_tf.text;
varSender.nachricht = _root.nachricht_tf.text;
varReceiver = new LoadVars();
varReceiver.onLoad = function() {
_root.anzeige = this.antwort;
};
varSender.sendAndLoad("mailform2.php?noCache="+new Date().getTime(), varReceiver);
};

PHP SCRIPT mailform2.php

<?php
$email = $_POST["email"];
$name = $_POST["name"];
$adresse = $_POST["adresse"];
$ort = $_POST["ort"];
$nachricht = $_POST["nachricht"];
$dieMessage ="$name\n";
$dieMessage .="$adresse\n";
$dieMessage .="$ort\n";
$dieMessage .= $nachricht;
if(mail("deine@emailadresse.de", "Pastor Pixel Emailformular", $dieMessage, "From: $email")){
echo "antwort=Deine Email wurde versand.";
}
?>