| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Mar 2007
Beiträge: 5
| Problem mit FLASH Mailformular
Hallo zusammen, mein erster Beitrag hier, nachdem ich in den vergangenen Wochen sehr hilfreiche Antworten auf meine sich als relativer Flash-Neuling ergebenden Fragen habe finden können. Mit folgendem Problem hatte ich allerdings bei der Suche keinen Erfolg. Den Entwickler, der mir das ganze programmiert hat, kann ich auf das Problem leider nicht mehr ansprechen. Ich betreibe eine Website 1x als FLASH-Variante und 1x als HTML-Parallel-Variante. Den unten aufgeführten formmailer nutze ich als kontaktform.swf für beide Varianten. In der FLASH-Version wird die kontaktform.swf über Schaltfläche mit der Funktion Code: unloadMovieNum(1);
loadMovieNum("kontaktform.swf", 1);
stop(); Code: <object classid="clsid: ... </object> In der HTML-Version der WebSite nutze ich der Einfachheit halber den gleichen formmailer und habe diesen über die Hilfsdatei kontaktform.html direkt eingebunden. Bei Aufruf von kontaktform.html wird kontaktform.swf direkt über Code: <object classid="clsid: ... </object> Nach Drücken des "SENDEN"-buttons wird in beiden Varianten über nextScene(); ein Hinweis aufgerufen, dass die Nachricht erfolgreich versendet wurde. Die serverseitige Weiterleitung an meinen E-Mail Account erfolgt über das Script "senden.php". |
| | |
| | #2 (permalink) |
| Neuer User Registriert seit: Mar 2007
Beiträge: 5
| Teil 2 Hier der 2. Teil, hatte gerade einen kleinen Firefox-Absturz ![]() Folgende Probleme habe ich nun mit dem formmailer: In der FLASH-Version: 1. Die Vorbelegungstexte werden bei Laden von kontaktform.swf nicht angezeigt. 2. Die Fehlermeldung wird nicht aufgerufen, wenn die Pflichtfelder nicht mit der vorgegebenen Anzahl Zeichen ausgefüllt wurde. Die unvollständigen Daten werden trotzdem gesendet und es wird der nextScene(); Hinweis aufgerufen, dass die Nachricht erfolgreich versendet wurde. In der HTML-Version: 1. Die Vorbelegungstexte werden bei Laden von kontaktform.swf im Gegensatz zur FLASH-Version interessanterweise angezeigt (erscheint mir unlogisch). 2. Die Fehlermeldung wird ebenfalls nicht aufgerufen, wenn die Pflichtfelder nicht mit der vorgegebenen Anzahl Zeichen ausgefüllt wurde. Die unvollständigen Daten werden trotzdem gesendet und es wird der nextScene(); Hinweis aufgerufen, dass die Nachricht erfolgreich versendet wurde. Der 2. Fehler scheint sich direkt im AS zu befinden. Bei Fehler 1 (also in der FLASH-Version) hingegen scheint das mit dem Laden von kontaktform.swf in die hauptsite.swf zusammenzuhängen. Zusatzfrage: Ist es notwendig, den formmailer irgendwie gegen spammail-robots zu schützen? Bisher hatte ich in der FLASH-Version der WebSite keine Probleme, bin aber bezüglich der HTML-Variante, die noch nicht aktiv ist, etwas unsicher. Wäre superdankbar, wenn mir jemand helfen könnte! Nachfolgend das AS des formmailers innerhalb der kontaktform.swf sowie das PHP-Script "senden.php". Viele Grüße Jo |
| | |
| | #3 (permalink) |
| Neuer User Registriert seit: Mar 2007
Beiträge: 5
| Teil 3 - die Scripte AS kontaktform.swf: Code: // Sonderzeichen Aktiv
System.useCodePage = true;
// Im Feld plz können nur Zahlen eingegeben werden
plz.restrict = "0-9";
// Die Textfelder bekommen eine Zuweisung und der MovieClip mit der
// Fehlermeldung wird ausgeblendet
_root.onLoad = function() {
_root.name.text = "Ihr Name";
_root.str.text = "Ihre Strasse";
_root.ort.text = "Ihr Wohnort";
_root.plz.text = "Ihre PLZ";
_root.email.text = "Ihre E-Mail Adresse";
_root.nachricht.text = "Ihre Mitteilung an uns.";
};
// Das array mit den Instanznamen von den Textfeldern
textfeld = new Array();
textfeld[1] = "name";
textfeld[2] = "str";
textfeld[3] = "ort";
textfeld[4] = "plz";
textfeld[5] = "email";
textfeld[6] = "nachricht";
// Durchlaufe solange wie Elemente im array vorhanden sind
for (i=0; i<textfeld.length; i++) {
// Funktion für den Hintergrund im Textfeld
_root[textfeld[i]].onSetFocus = function() {
this.backgroundColor = 0xFFFFFF;
// Überprüfung, ob in das Textfeld schon reingeklickt wurde
// damit nicht beim erneuten Klicken der bereits geschriebene Text gelöscht wird
if (_root[this._name]) {
_root[this._name].text = "";
_root[this._name] = false;
}
};
// Funktion für den Hintergrund im Textfeld
_root[textfeld[i]].onKillFocus = function() {
this.backgroundColor = 0xFFFFFF;
};
}
// Überprüfung ob in die Pflichtfelder etwas eingetragen wurde
// Diese Funktion wird unten in der if Bedingung aufgerufen
String.prototype.leer = function() {
for (i=0; i<this.length; i++) {
// Steht etwas im Textfeld ?
// 32 bedeutet größer als ein Leerzeichen, da das Leerzeichen den
// Code 32 besitzt.
if (this.charCodeAt(i)>32) {
return true;
}
}
};
// Funktion für den Button
but_senden.onRelease = function() {
// Überprüfung ob in der E-Mail Adresse ein @ Zeichen vorkommt
// Überprüfung ob die E-Mail Adresse weniger als 6 Zeichen hat
// Überprüfung ob ein Name und ein Nachrichtentext eingegeben wurde
// Diese Überprüfung ruft die Funktion leer auf
if (txt_email.indexOf("@") == -1 || txt_email.length<6 || _root.name.text.leer() || _root.nachricht.text.leer()) {
// Bei True wird die Fehlermeldung angezeigt
_root.mc_fehler._visible = true;
} else {
// Weiterhin die Fehlermeldung ausblenden und das PHP Script aufrufen
_root.mc_fehler._visible = false;
loadVariablesNum("senden.php", 0, "GET");
}
nextScene();
}; PHP-Script: Code: <? $suchen = "\r"; $ersetzen = "\n"; // Suche und ersetze, da Flash Zeilenumbrueche mit \r angibt // und php aber nur mit \n arbeitet $nachricht_neu = str_replace($suchen,$ersetzen,$_GET[txt_nachricht]); $text = $_GET[txt_name]." uebermittelt Ihnen folgende Informationen:\n"; $text .= "Name: $_GET[txt_name]\n"; $text .= "Strasse: $_GET[txt_str]\n"; $text .= "Ort: $_GET[txt_ort]\n"; $text .= "Plz: $_GET[txt_plz]\n"; $text .= "eMail: $_GET[txt_email]\n"; $text .= "Nachricht: $nachricht_neu \n"; $empfanger = "info@domain.de"; mail($empfanger, "Anfrage ueber das Kontaktformular der XYZ-Website", $text, "Von: Anfrage ueber das Kontaktformular der XYZ-Website"); ?> |
| | |
| | #6 (permalink) |
| Neuer User Registriert seit: Jun 2005
Beiträge: 237
|
hast du das selbst geschrieben? der Code ist sehr "altmodisch" und verwirrend. Ob in den Feldern was drinnensteht fragst du am besten mit != "" or != undefined ab Die Funktion ob es einen error gibt wird auch nur aufgerufen wenn die mail adresse falsches Format hat... Das PHP Script ist i.O. nimm aber statt $_GET $_REQUEST gegen Spam musst du dich nicht schützen Geändert von D@luxe (07-05-2007 um 13:43 Uhr) |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |