Flash und PHP


Das Zusammenspiel von Flash und PHP am Beispiel eines Formmailers
Flash und PHP bieten bereits jeweils für sich eine ausreichende Basis zur Erstellung einer professionellen Webpräsenz. Kombiniert man die Stärken von Flash mit denen von PHP, so erhält man ein noch mächtigeres Werkzeug zur Erstellung von professionellen Webseiten. Erfahren Sie, wie das Zusammenspiel von Flash und PHP funktioniert.
Flash ist der unumstrittene Meister in der Erstellung von Animationen. Bei zahlreichen Interaktionen mit dem Benutzer kommt dies besonders zur Geltung. Geht es allerdings um das Speichern und Verwalten von Daten, so sollten Sie über den Tellerrand von Flash hinausblicken. Hier bieten Scriptsprachen wie PHP weitaus mehr Möglichkeiten. PHP ist eine serverseitige, in HTML eingebettete Script-Sprache. Dies bedeutet erstens, dass in PHP geschriebene Scripte bei jedem Benutzer problemlos funktionieren und zweitens, dass Sie sich keinerlei Gedanken über die Funktionalität Ihrer Scripte machen müssen, wie beispielsweise bei JavaScript. Allerdings benötigen Sie einen Webserver, der PHP unterstützt, um die jeweiligen Anweisungen lesen und interpretieren zu können. Eine PHP-Datei erkennen Sie an der Datei-Endung „.php“.

Viele Webmaster sind sich nicht bewusst, dass Flash und PHP wunderbar zusammenarbeiten können. Wie das Zusammenspiel klappen kann, wollen wir in diesem Artikel an Hand eines Formmailers demonstrieren. Ein Formmailer ist ein Formular zum Versenden von Emails.

Zunächst benötigen wir ein entsprechendes Formular in Flash. Wir brauchen drei Eingabetextfelder für den Benutzernamen, die Email der Ziel-Adresse und die zu übermittelnde Nachricht. Des Weiteren benötigen wir eine Schaltfläche zum Absenden der eingetragenen Daten. Ein weiteres dynamisches Textfeld soll schließlich eine Rückmeldung geben, ob die Email verschickt werden konnte.


Das Formular

Erstellen Sie ähnlich der obigen Abbildung das besagte Formular. Geben Sie dem obersten Textfeld den Variablennamen „username“. Gehen Sie hierfür in das Bedienfeld „Eigenschaften“ und tragen Sie dort den Variablennamen unter „Var“ ein. Das Feld für die Email-Adresse soll den Variablennamen „email“ erhalten. Dem Textfeld für die Nachricht geben wir schließlich den Variablennamen „mailbody“. Im unteren Bereich wollen wir ein weiteres Textfeld positionieren. Da dieses Feld lediglich eine Rückmeldung geben soll, ob die Email verschickt werden konnte, verwenden wir an dieser Stelle ein dynamisches Textfeld. Geben Sie dem Feld den Variablennamen „output“. Erzeugen Sie anschließend eine Schaltfläche zum Versenden des Formulars. Sie können die Schaltfläche bei Bedarf mit beliebigen Animationen ausstatten. Wir wollen uns allerdings auf das Wesentliche konzentrieren. Nachdem Sie die Schaltfläche erstellt haben, markieren Sie diese und rufen daraufhin das Aktionen-Fenster auf. Zum Versenden der Daten benötigen wir noch einige Zeilen ActionScript:

001:
002:
003:
004:
005:
006:
007:
008:
009:
010:
011:
 on(release) {
     vars = new LoadVars();
     vars.flashUsername = username;
     vars.flashEmail = email;
     vars.flashMailbody = mailbody;
     vars.sendAndLoad("script.php", vars, "POST");
  
     vars.onLoad = function() {
         output = this.phpOutput;
     }
 }

Mit dem Ereignis „on(release)“ reagieren wir auf das Loslassen der Maustaste nachdem die Schaltfläche betätigt wurde. Die in den geschweiften Blockklammern umschlossenen Anweisungen werden nur im Falle dieses Ereignisses ausgeführt. Wir verwenden in unserem Beispiel das Objekt „loadVars“. Mit Hilfe des LoadVars-Objektes sind wir in der Lage, Daten an Programme (zum Beispiel PHP-Scripte) zu schicken und Antworten vom jeweiligen Programm zu empfangen, ohne den Flash-Film zu verlassen. Die drei Variablen „username“, „email“ und „mailbody“ werden drei neu erzeugten LoadVars-Variablen „flashUsername“, „flashEmail“ und „flashMailbody“ zugewiesen. Die Anweisung „sendAndLoad“ verschickt diese Variablen nun an das im ersten Parameter angegebene Ziel. Dies ist in unserem Fall natürlich ein PHP-Script. Im zweiten Parameter müssen Sie den Namen des LoadVars-Objektes angeben. Schließlich definieren Sie im dritten Parameter die Art des Verschickens („post“ oder „get“). Sobald das PHP-Script mit der Bearbeitung unserer Anfrage fertig ist, wollen wir eine entsprechende Erfolgsmeldung ausgeben. Hierfür weisen wir die in PHP erzeugte Variable „phpOutput“ unserem Textfeld „output“ zu.

Wir sind bisher noch nicht auf das PHP-Script zum Versenden der Email eingegangen. Erzeugen Sie eine Datei mit den Namen „script.php“. Die Datei soll folgende Anweisungen enthalten:

001:
002:
003:
004:
005:
006:
007:
008:
 <?php
 $header = "From:" . $flashUsername . ”<>\n”;
 if(mail($flashEmail, "Flash und PHP: Formmailer", $flashMailbody, $header)) {
     echo "phpOutput=Hallo " . $flashUsername . ", deine Email wurde verschickt.";
 } else {
     echo "phpOutput=Hallo " . $flashUsername . ", deine Email konnte leider nicht verschickt werden!";
 }
 ?>

Über die beiden Tags „<?php“ und „?>“ signalisieren wir den Beginn und das Ende eines PHP-Scriptes. Variablen beginnen in PHP stets mit einem Dollar-Zeichen „$“. Beginnend mit einem Dollar-Zeichen finden wir auch unsere drei im LoadVars-Objekt angelegten Variablen wieder.
Die zentrale Anweisung zum Versenden der Email finden wir in der dritten Zeile. Die Funktion „mail“ erwartet vier Parameter. Im ersten Parameter müssen Sie die Email der Ziel-Adresse festlegen. Der zweite Parameter steht für den Betreff der Email. Wie Sie erahnen können, erwartet der dritte Parameter die Mitteilung. Schließlich haben Sie im letzten Parameter die Möglichkeit, der Email Header-Informationen anzufügen. Wir beschränken uns hierbei auf die Angabe des Benutzernamens.
Die Funktion „mail“ liefert den Wahrheitswert „true“, falls die Email versendet werden konnte. Die If-Bedingung ist in diesem Fall erfüllt und die Anweisung innerhalb der If-Bedingung wird ausgeführt. Wenn die Email nicht verschickt werden konnte, gibt die Funktion den Wert „false“ zurück. In diesem Fall landen wir im Else-Zweig der If-Struktur. In jedem Fall geben wir mit „echo“ eine Meldung aus. Diese beginnt mit „phpOutput=“, um eine Ausgabe in Flash erzeugen zu können.

Beispieldatei: Formmailer [Flash_und_PHP.zip]