Voraussetzungen: Grundkenntnisse in Flash MX, viel Zeit und Geduld!
Erstellen eines Flashfilmes (ich nenn den mal GbuchFlash.fla). In diesem Flashfilm erstellt ihr 5 Ebenen ich hab den von oben nach unten folgende Name gegeben
1)Bilder,
2)Action,
3)Schalter,
4)Eingabefelder,
5)Schrift.
In der Ebene Schrift wird die Bezeichnung für die Eingabefelder geschrieben.
(Also in Statischem Text einfach Name:, E-Mail:, Homepage:, Kommentar: ) und ordnet das dann so an wie ihr euch euere Eingabemaske vorstellt.
Den Bezeichnungen Name, E-Mail und Kommentar gebt ihr noch ein Sternchen "*".
In der Ebene Eingabefelder werden selbige hinter der Bezeichnung erstellt.
(Also einfach mit Eigabetext einen Rahmen hinter die Namen Ziehen.)
Für Name, E-Mail, Homepage bitte "Eingabe Text Einezeile" auswählen!
Kommentar bitte in "Eingabe Texte Mehrzeilig"!
Den Eingabetextfelder gebt ihr unter Eigenschaften, Eingabetext folgende Namen:
dem Eingabetextfeld Name: "name_txt",
dem Eingabetextfeld E-Mail:"email_txt",
dem Eingabetextfeld Homepage:"hpage_txt",
dem Eingabetextfeld Kommentar:"nachricht_txt"
die Bezeichnung der Eingabetextfelder ohne die Anführungszeichen ("").
In der Ebene Schalter erstellt ihr bitte 3 Button mit den Bezeichnungen,
Senden zum Absenden der Einträge,
Reset od. Löschen zum Löschen der Eingabetextfelder
und Gästebuch Lesen.
Jetzt vergebt ihr noch Namen für die Schalter:
Klickt auf den Schalter Gästebuch Lesen und gebt ihm unter Eigenschaften Schaltflächen den Namen "butLesen" .
Klickt auf den Senden Schalter und gebt ihm den Namen "butSenden"
Klickt auf den Löschen/Reset Schalter und gebt ihm den Namen "butReset"
ohne die Anführungszeichen ("").
So und das wars dann auch schon.... oder ach ja noch eine Kleinigkeit müsst ihr machen das Actionscript muss noch geschrieben werden.
Dazu erstellt ihr in der Ebene Bilder auf Bild 1 ein Schlüsselbild und gebt ihm unter Eigenschaften den Namen: "eintragen"
auf Bild 10 fügt ihr ein Bild ein (einfach auf Bild 10 klicken rechts klick und in dem Kontexmenue Bild einfügen auswählen).
Auf Bild 11 fügt ihr ein Schlüsselbild ein das bekommt den Namen "senden"
und auf Bild 20 wieder ein Bild einfügen
Auf Bild 21 ein Schlüsselbild einfügen das bekommt den Namen "laden" und auf Bild 30 nochmal ein Bild einfügen.
Auf Bild 31 ein Schlüsselbild einfügen das bekommt den Namen "ansicht"
und auf Bild 40 das letzte ein Bild einfügen.
Die Bezeichnung der Bilder bitte ohne Anführungszeichen ("") vergeben.
So jetzt noch die Ebene Action und dann seid ihr fertig.
Das erste Schlüsselbild in der Ebene Action bekommt das folgende Script.
// Initialisieren der Textfelder
name_txt.tabIndex = 1;
email_txt.tabIndex = 2;
hpage_txt.tabIndex = 3;
nachricht_txt.tabIndex = 4;
//Aktion für "Gästebuch lesen"Schalter
butLesen.onRelease = function() {
gotoAndPlay("laden");
}
// butLesen ist der Name des Schalters
//onRelease = function() heißt bei loslassen des Schalters führe
//die function aus.
//gotoAndPlay("laden"); geh und Spiel das Bild "laden"
// Aktion für "Löschen" Schalter
butReset.onRelease = function() {
name_txt.text = "";
email_txt.text = "";
hpage_txt.text = "www.";
nachricht_txt.text = "";
}
//butReset.onRelease = function() ist wie oben und die function
//ist hier werden die Felder name_txt.text geleert mit ="";
// Aktion für "Senden" Schalter
butSenden.onRelease = function() {
name = name_txt.text;
email = email_txt.text;
hpage = hpage_txt.text;
nachricht = nachricht_txt.text;
gotoAndPlay("senden");
}
//hier wird jetzt der Inhalt der Textfelder an das Bild "senden" übergeben
// Stopt den Film
stop();
Dann fügt ihr bei den Ebenen Action,
Schalter,
Eingabe und
Schrift bei Bild 10 jeweils ein Bild ein( Rechtsklick "Bild einfügen".)
Und weiter in der Ebene Action fügt ihr auf Bild 11 ein Leeres Schlüsselbild ein.
in diesem Schlüsselbild erstellt ihr in der Mitte ein Dynamischestextfeld Breite ca.320 pixel Höhe ca. 21 pixel und in dieses Dynamischetextfeld Schreibt ihr
"Senden Eintragen..." ohne Anführungszeichen ("").
Klickt jetzt auf Bild 11 in der Eben Action und schreibt dort fogendes Script hinein.
// LoadVars Object erstellen
myData = new LoadVars();
// das php script aufrufen
myData.load("gbuch.php?" + randNum + "&name=" + name + "&hpage=" + hpage + "&email=" + email + "&nachricht=" + nachricht, myData, "POST");
// daten laden
myData.onLoad = function () prevFrame();
if (myData.ergebnis == "okay") {
gotoAndPlay("laden");
} else {
gotoAndPlay("ansicht");
}
}
// Stopt den Film
stop();:
Nun fügt ihr in Bild 21 der Ebene Action ein "Leeres Schlüsselbild" ein und
erstellt in der Mitte wieder ein Dynamischestextfeld Breite ca.320 pixel Höhe ca. 21 pixel und in dieses Dynamischetextfeld Schreibt ihr "Senden Eintragen..." ohne Anführungszeichen ("").
Klickt jetzt auf Bild 21 in der Eben Action und schreibt dort fogendes Script hinein.
//Umstellen auf Latin-1damit in dem Flashtextfeld die Umlaute Ä,Ö,Ü auch dargestellt //werden
System.useCodePage = true;
// LoadVars Object erstellen
myData = new LoadVars();
// daten der externen Textdatei laden
myData.load("gbuch.txt?" + randNum, myData, "POST");
// daten aus Textdatei weiterleiten ...
myData.onLoad = function () {
gotoAndPlay("ansicht");
}
// Stop movie
stop();
Und dann haben wir noch Bild 31 in der Ebene Action dort erstellt ihr wieder ein "Leeres Schlüsselbild" und in dem Schlüsselbid erstellt ihr das Dynamischetextfeld das euer Gästebuch einliest.
Mit den Maßen 400x330 pixel gebt dem Textfeld unter Eigenschaften links unter Dynamischestextfeld den Name:"gbuch_txt" ohne Anführungszeichen ("")
Nun öffnet das Fenster Komponenten mit F11und zieht aus den Komponenten die
ScrollBar rechts od. links neben euer Dynamisches Textfeld passt die Höhe der ScrollBar euerem Textfeld an.
Klickt mal auf die ScrollBar und unter Eigenschaften öffnet sich ein Fenster.
Links unter Komponenten gebt ihr der ScrollBar den Namen:"scroll_mc" ohne Anführungszeichen ("").
und rechts daneben steht"Target TextField" da mal reinklicken und "gbuch.txt" reinschreiben ohne A...(").
Darunter steht "Horizontal" false (fals nicht reinklicken und hinschreiben)
So jetzt noch den "Eintragen Schalter" den holt ihr ebenfals aus den Komponenten.
Das ist rechts oben der "PuhsButton" zieht ihn an eine geeignete Stelle in Bild 31
klickt darauf damit seine Eigenschaften geöffnet werden und er bekommt unter Komponenten den Namen:"back_bnt"rechts daneben bei "Label" gebt ihm einen Namen z.B. Eintragen oder so und darunter bei "Click Handler" schreibt ihr "back"
ohne A...("").
Jetzt noch in der Ebene Action in Bild 31 folgendes Script eintragen:
// aktion des Eintragenbuttons
function back() {
gotoAndPlay("eintragen");
}
// Textfeld
if (myData.ergebnis == "okay") {
gbuch_txt.htmlText = myData.eintrag;
} else {
gbuch_txt.htmlText = myData.errorMsg;
}
// Stopt Film
stop();
und das wars im Flashteil fürdas Gästebuch.
Jetzt kommt PHP davon habe ich auch nicht viel Ahnung aber für das Script das ihr braucht reicht mein Wissen aus.
PHP Teil des Gästebuch's
<?php
//Überprüfen ob die Felder ausgefüllt sind
if (!isset($name) || !isset($email) || !isset($nachricht) || empty($name) || (!ereg(". +@.+\..+", $email)&& !empty($email)) || empty($nachricht)) {
//der obere Teil von "if(!isset usw. bis ($nachricht)){ muß in euerem Script in einer //Zeile stehen
print "&ergebnis=Fail";
print "&errorMsg=" . urlencode("Bitte alle mit einem Stern gekennzeichneten Felder ausfuellen.");
//von print"& usw bis ausfüllen") muß auch in einer Zeile stehen!!
exit;
}
//Datum ermitteln
$datum = date("d.m.Y");
//Uhrzeit ermitteln
$uhr = date ("H:i:s");
//die Gästebuch function initialisieren
gbuch($name,$datum,$uhr, $email,$hpage, $nachricht);
function gbuch($name,$datum,$uhr, $email,$hpage, $nachricht) {
//Einträge Bearbeiten
//E-Mail
//Gibt string zurück, in dem alle Buchstaben in Kleinbuchstaben
//umgewandelt wurden
$email = strtolower($email);
//Backslashes entfernen
$email = stripslashes ($email);
//Entfernen überflüssiger Zeichen
//Anfang und Ende einer Zeichenkette
$email = trim ($email);
// E-Mail formatieren
$email ="<font color=\"#FF6600\"><u><A href=\"mailto:$email\">$email
</A></u></font>";
//Kommentar
// ersetzt sämtliche Zeilenumbrüche
$nachricht=nl2br($nachricht);
//HTML und PHP Code entfernen
$nachricht = strip_tags($nachricht);
//Umlaute und Sonderzeichen in HTML Schreibweise umwandeln
$nachricht = htmlspecialchars($nachricht);
//Entfernen von überflüssigen Zeichen
$nachricht = trim($nachricht);
//Backslashes entfernen
$nachricht = stripslashes($nachricht);
//Name
//Backslashes entfernen
$name = stripslashes ($name);
//Entfernen überflüssiger Zeichen
//Anfang und Ende einer Zeichenkette
$name = trim ($name);
//Homepage
//Gibt string zurück, in dem alle Buchstaben in Kleinbuchstaben
//umgewandelt wurden
$hpage = strtolower($hpage);
//Backslashes entfernen
$hpage = stripslashes ($hpage);
//Entfernen überflüssiger Zeichen
//Anfang und Ende einer Zeichenkette
$hpage = trim ($hpage);
//Url formatieren richtig angeben
$hpage="<font color=\"#FF6600\"><u><a href=\"http://$hpage\">$hpage </a></u></font>";
//Einträge zusammenfassen
$daten="<font color=\"#FFFFFF\">Eintrag vom:</font>$datum<font color=\"#FFFFFF\"> um</font> $uhr<br>
//das oben ist auch in euerm Script eine Zeile
<font color=\"#FFFFFF\">Von:</font>$name<br>
<font color=\"#FFFFFF\">E-Mail:</font>$email<br>
<font color=\"#FFFFFF\">Homepage:</font>$hpage<br>
<font color=\"#FFFFFF\"><u>Kommentar:</u><br></font>$nachricht\n\n";
//Eintragen in die Textdatei und vorher in einem
// ARRAY umsortieren so das der
//letzte Eintrag zuerst angezeigt wird.
//Dieses Umsortieren der Einträge habe ich aus
//einem Tutorial von Moartel
//http://www.tutorials.de/showthread.php?t=6538 dort ist das ganze Tutorial
/*von hier*/
$alteEintraege=file("gbuchalt.txt");
$AnzahlDerEintraege=count($alteEintraege);
$eintraege="$daten$alteEintraege[0]";
for ($z=1; $z<$AnzahlDerEintraege; $z++)
{
$eintraege="$eintraege$alteEintraege[$z]";
}
$datei=fopen("gbuchalt.txt", "w");
fwrite ($datei, $eintraege);
fclose ($datei);
/*bis hier ist von Moartel*/
//der Rest ist wieder von mir
/*Das hier habe ich geschrieben weil zur übergabe an Flash brauche ich eine Variabele
in der Textdatei und das geht nur wenn ich mit "a" die Einträge an das Ende der Textdatei schreibe aber dann steht der erste Eintrag immer ganz oben und der letzte immer ganz unten.Aber der letzte Eintrag soll als erster ausgegeben werden*/
//Datei zum Lesen öffnen
$datei = fopen("gbuchalt.txt","r");
//Gesamte Datei einlesen
$daten = fread($datei,filesize("gbuchalt.txt"));
//dazu schreiben die Variable für Flash
$zeile ="&ergebnis=okay&eintrag=";
$lesen="$zeile$daten";
//nochmal schreiben alle Einträge
$datei = fopen("gbuch.txt","w");
fwrite($datei,$lesen);
fclose($datei);
}
print "&ergebnis=okay";
exit;
?>
So das war's jetzt aber!
Auf meiner HP http://kwirsch.milten.lima-city.de/ unter dem Punkt Tutorial (einfach auf den kleinen Schalter Klicken) findet ihr weitere Infos und das fertige Gästebuch (zum Ausprobieren).
Ich wünsche euch viel Spass eim Probieren.
KWirsch