NetObserver Studie
Aktuelles
Startseite
TP Wettbewerbe
Sitemap
Service
Hilfe-Forum
Kolumnen
Linktipps
Buchrezensionen
Traum-Team
Newsletter
Traumquelle
Dreamweaver
Fireworks
Photoshop
Flash
Traum-Start
gimp
GoLive
php / Apache
Sonstige
Grundlagen
Usability
CSS
Apple / Mac
3D
Intern
TP-Sponsor
TP SHOP
Bild Galerie
TP Wallpapers
Forum-Archiv
Link zu uns
Impressum
Zurück  
TP Portal > Flash > Flash Counter mit PHP und MySQL

Flash MX Counter mit PHP und MySql

Ein Tutorial für den Bau eines dynamischen Flash Counters in Verbindung mit einer MySQL Datenbank. Hier soll anhand dieses Beispiel gezeigt werden wie man eine dynamische Anbindung an Flash vollzieht.

Dieses Tutorial richtet sich an alle diejenigen, die mit den Grundfunktionen von Flash MX bereits vertraut sind, aber noch keine Idee davon haben, wie in Flash dynamische Inhalte eingebunden werden. Ebenfalls setze ich vorraus, dass bekannt ist, wie in MySQL eine Datenbank angelegt bzw. wie mit der Shell umzugehen ist, der Code folgt. Mit diesem einfachen Skript wird die Übergabe von Informationen aus einer Datenbank an ein Flash Movie dargestellt. Wie gesagt, in diesem Fall benutzen wir einen Counter, der die Seitenzugriffe zählen soll.

Hinweis: Als Editor empfehle ich EditPlus, die neueste Version gibt es auf www.EditPlus.com

1. Zunächst einmal die Tabelle in MySQL:

Mit diesem Befehl erstellen wir eine Tabelle in einer beliebigen Datenbank. Das PHP-Skript wird mit jedem Zugriff einfach einen Datensatz (also Zugriff) hinzufügen. Kommen wir jetzt zu dem PHP Skript:

sql
CREATE TABLE counter(id int NOT NULL AUTO_INCREMENT);

2. open.inc.php

Enthält die Informationen über den Datenbankhost, User etc. Diese Datei ist die einzige (PHP-Datei), die geändert werden muss, sprich die entsprechenden Daten sind einzugeben.

php
//Datenbank-Host
$dbHost = "hostip";
//Datenbank-Name
$dbName = "datenbank";
//Datenbank-User
$dbUser = "datenbankuser";
//Datenbank-Passwort
$dbPass = "datenbankpasswort";

3. counter_read.php

Ließt die Anzahl der Seitenzugriffe aus.

php
  1. //Fügt den Code aus der open.inc.php ein
  2. require("open.inc.php");
  3. //Stellt die Verbindung zur Datenbank her
  4. $connect = mysql_connect($dbHost, $dbUser, $dbPass);
  5. //Gibt eine Fehlermeldung aus, wenn die Datenbank nicht erreichbar ist
  6. if(!$connect){echo"&loaded=0&";exit;}
  7. //Der MySQL Query, der die Zugriffe zählt
  8. $counterQuery = "SELECT COUNT(*) FROM counter;";
  9. $counterResult = mysql_db_query($dbName, $counterQuery);
  10. while($counterErgebnis = mysql_fetch_row($counterResult))
  11. {
  12. //Formatierung zur Ausgabe
  13. $echoString = "&counter=";
  14. //Zugriffszahl
  15. $echoString .= $counterErgebnis[0];
  16. $echoString .= "&";
  17. }
  18. //Ausgabe
  19. echo $echoString."&loaded=1&";
  20. mysql_close($connect);

4. counter_write.php

Dieser Teil des Codes kann auch in die Startseite integriert werden. Ich werde an dieser Stelle aber nicht weiter darauf eingehen.

php
  1. require("open.inc.php");
  2. $connect = mysql_connect($dbHost, $dbUser, $dbPass);
  3. if(!$connect){exit;}
  4. //Solltest du die Tabelle anders genannt haben (also nicht "counter") hier dementsprechend ändern.
  5. $counterQuery = "INSERT INTO counter VALUES(\"\");";
  6. $counterAction = mysql_db_query($dbName, $counterQuery);
  7. mysql_close($connect);

5. Code testen

Um den Code zu testen, kopiere alle PHP-Dateien auf deinen Web-Server und leg die Datenbank an. Rufe dann einmal die counter_write.php auf. Als Ergebnis sollte nur ein weißer Bildschirm auftauchen. Das selbe mit der counter_read.php, hier sollte nur ein String ausgegeben werden (eigentlich sind es zwei): &counter=3&&loaded=1& (Wobei die Zahl counter natürlich abweichend sein kann). Wenn das der Fall ist arbeitet das PHP Skript richtig, und wir können uns nun dem Teil in Flash zuwenden:

6. Flash Dokument

Zunächst brauchen wir einmal eine neues Flash-Dokument (ich arbeite mit Macromedia Flash MX 2004 Professional, Testversionen gibt es bei www.macromedia.com

Die erste Ebene nennen wir Actions und fügen in das erste Schlüsselbild folgenden Code ein:

php
  1. cache = random(1000000);
  2. loadVariablesNum("http://www.deinedomain.de/counter_write.php?cache="+cache,0,"GET");
  3. loadVariablesNum("http://www.deinedomain.de/counter_read.php?cache="+cache,0,"GET");

tooltipp

STOP?! Warum machen wir das?

Mit diesen beiden Zeilen laden wir das Ergebnis, das die beiden Dateien counter_write.php und counter_read.php in Flash. Flash macht also nichts anderes als diese Dateien in einem "internen Browser" aufzurufen und auszuführen. Die counter_read.php gibt eine für Flash formatierte Variable namens counter zurück, die wir später als unsere Seitenzugriffe ausgeben.

Und warum random(1000000);?

Flash hat ein generelles Problem mit dem Cache (temporäre Internet-Dateien). Flash prüft also zunächst ob es die Datei www.deinedomain.de/counter_read.php bereits in den Temporären Internet-Dateien gibt, und nimmt diese anstelle die Datei neu zu laden. Das hätte zur Folge, dass sich die Anzahl der Besuche für dich nicht ändern würde. Um dies zu verhindern hängen wir einen String mit einer Zufallszahl zwischen 0 und 1.000.000 an. Die Wahrscheinlichkeit, dass nun zweimal die selbe Datei geladen wird ist sehr gering, und sollte uns für den Counter auch reichen. Wenn die Flash-Datei fertig ist, wirf einen Blick in die Temporären Internet-Dateien, du wirst dort einige Dateien finden die nur einen anderen Cache haben. Z.B. .../counter_read.php?cache=123215 usw...

Im zweiten Frame auf der Zeitleiste fügen wir ein weiteres Schlüsselbild, welches wir go nennen. Desweiteren fügen wir einige Frames später (die genaue Zahl ist nicht wichtig) ein weiteres Schlüsselbild ein und schreiben folgenden Code in das Schlüsselbild:

php
  1. if (loaded != 1) {
  2. gotoAndPlay("go");
  3. } else {
  4. gotoAndStop("done");
  5. }

tooltipp

STOP?! Warum machen wir das?

In diesem Teil der Flash Datei prüfen wir, ob die Anzahl der Zugriffe bereits geladen ist. Im Prinzip ein kleiner "preloader". Wenn die Daten (die Seitenzugriffe) also noch nicht geladen sind, wird wieder zu einem früheren Teil des Flash-Films gesprungen (Schlüsselbild "go"). Erst wenn die Daten geladen sind werden sie ausgegeben. Dies ist für User gedacht, die eine langsame Internet-Verbindung haben. In der Regel reichen die Frames zwischen dem ersten Frame und der Ausgabe.

Wir fügen ein weiteres Schlüsselbild ein und nennen dieses done, und geben dem Frame folgenden Code:

 

actionscript
counterText = counter+" visitors...";
stop();

Damit sind wir mit dem Code in Flash bereits fertig, es fehlt uns nur noch ein Textfeld, und eine kleine Animation, die als Preloader fungiert.

Zunächst brauchen wir eine neue Ebene, diese nennen wir Text. Wir fügen zwei neue (leere) Schlüsselbilder ein, eines über dem Frame go und eines über dem Frame done. tooltipp

 

Im zweiten Schlüsselbild der Ebene Text fügen wir ein neues Textfeld ein, und geben als Typ Statischer Text an. In das Textfeld schreiben wir ein beliebigen Text wie z.B. "loading data...". Danach konvertieren wir dieses Textfeld in einen neuen Movieclip (Shortcut F8 oder Modifizieren --> In Symbol konvertieren) und vergeben den Namen preloader. tooltipp

 

Mit einem Doppelklick auf das neue Symbol gelangen wir in den Movieclip preloader. Im dritten Frame fügen wir ein neues Schlüsselbild hinzu, und ändern die Farbe des Textfeldes minimal ab, so das ein "flimmern" entsteht, wenn wir den Film später betrachten.

Nun kehren wir wieder zur ersten Ebene zurück und fügen in der Zeitleiste Text über dem Schlüsselbild done ein neues Textfeld ein, und geben diesem den Typ Dynamischer Text.

Wichtig: Solltest du keine Standart-Schriftart verwenden, solltest du die Schriftart einbetten. Darauf werde ich an dieser Stelle aber nicht weiter eingehen. Als Variable vergeben wir counterText, und deaktivieren "Auswählbar" sowie "Rahmen um Text zeigen" tooltipp

Wenn du den Film jetzt testest (Shortcut F12 oder STRG+ENTER) sollte kurz "loading data..." und danach die Anzahl der Besuche zu sehen sein.

Hinweis: Der Counter ist in der Form auf meiner Homepage im Einsatz:
www.zaw-squad.de

Anbei sind hier die PHP-Dateien und das Flash-Dokument zum Download. Viel Spaß, bei Fragen kannst du dich auch per EMail an mich wenden.

(zw)

Abbildungen

Abbildung 1 - Erstes Schlüsselbild

Abbildung 1 - Erstes Schlüsselbild

Abbildung 2 - 2. Frame

Abbildung 2 - 2. Frame

Abbildung 3 - 3. Schritt

Abbildung 3 - 3. Schritt

Abbildung 4 - Textfeld

Abbildung 4 - Textfeld

Abbildung 5 - Variable definieren

Abbildung 5 - Variable definieren

Buchrezension

Coverimage
AJAX Hacks
Dynamische Webseiten mit AJAX programmieren - dieses Handbuch bietet einen praktischen Einblick.
[mehr]
Gimahhot - Shopping
TP-Partner
Sprachreise London
Webmasterpro
Computerhilfen
Computerhilfen
Eventagentur Hamburg
it-rechtsinfo.de
Designguide
Getreidemühlen
sk-typo3
Kochkurs Berlin
Maandiko.de
d. Webdesigner
PSD Tutorials
Medizin
Handy Forum

Hier könnte Ihre Werbung stehen

 >> INFO << 

\ Startseite | Forum | Impressum | nach oben | Seite zurück /