Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 29-04-2007, 12:25   #1 (permalink)
Jo*
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();
aufgerufen. Eingebunden ist kontaktform.swf in hauptsite.swf, die wiederum in der index.html mit

Code:
<object classid="clsid: ...
</object>
aufgerufen wird.

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>
geladen.

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".
Jo* ist offline   Mit Zitat antworten
Alt 29-04-2007, 12:54   #2 (permalink)
Jo*
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
Jo* ist offline   Mit Zitat antworten
Alt 29-04-2007, 13:16   #3 (permalink)
Jo*
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");
?>
Jo* ist offline   Mit Zitat antworten
Alt 30-04-2007, 19:45   #4 (permalink)
Jo*
Neuer User
 
Registriert seit: Mar 2007
Beiträge: 5
Pushup

Keiner ne Idee...?
Jo* ist offline   Mit Zitat antworten
Alt 07-05-2007, 11:58   #5 (permalink)
Jo*
Neuer User
 
Registriert seit: Mar 2007
Beiträge: 5
Ich muss den Beitrag nochmal nach oben schieben...

Hat denn keiner eine Lösung für mein Problem???

Gruß
Jo
Jo* ist offline   Mit Zitat antworten
Alt 07-05-2007, 13:35   #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)
D@luxe ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 05:11 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele