Formular - Felder per CGI sortiert versenden

Lunata

Grünschnabel
Hallo,
ich habe schon alles durchsucht und nichts Entsprechendes gefunden...

Mein Formular soll die Variablen mädchenhaft sortiert per CGI an die Email weitergeben.

In HTML klappt das mit:
Code:
<input type=hidden name="sort" value="order:Feldname1,Feldname2,usw">
Das HTMLFormular kann auch noch

leere Felder übertragen:
Code:
<input type=hidden name="print_blank_fields" value="1">
Standardfelder ( "email", "realname" und "subject") im Email-Body übertragen:
Code:
<input type=hidden name="print_config" value="email,realname,subject">

Gibt es einen vergleichbaren Befehl für Flash-Formulare?

Bisher werden die Werte wie "Kraut und Rüben" versandt.
Ich benutze kein PHP.

Wenn da jemand einen Tip hätte, wie das in Flash geht, wäre ich dankbar.

Viele Grüße,
Lunata
 
Hi,

hmm, ich bin nicht sicher, ob ich Deine Frage verstehe... wie versendest Du den die Variablen - per getURL oder mit einem loadVars-Objekt? Ist die Reihenfolge nicht egal, da die einzelnen Werte expliziten Bezeichnern zugeordnet sind?

Prinzipiell kannst Du alles, was Du in Deinen Input-Feldern hast, auch mit Flash versenden:
PHP:
var lv = new LoadVars();
vl.sort = "order:Feldname1,Feldname2,usw";

... aber irgendwie habe ich das Gefühl, ich habe Dich völlig falsch verstanden. Kannst Du noch einmal erklären, wie Dein Script auf dem Server die Daten erwartet?

Gruß
.
 
Hallo,
danke für die schnelle Antwort.

Doch, doch, richtig verstanden.
Ich will, daß in der versandten Email eine bestimmte Reihenfolge eingehalten wird.
Im HTML-Form klappt das mit den obigen Codezeilen Bestens.

Nur habe ich keine Idee, wie man das in Flash macht.
Ich übergebe die Variablen folgendermaßen:
PHP:
function absenden() {
// Variablen versenden:
loadVariables("http://www.meineDomain.de/cgi-bin/mailmanager.pl", empty, "GET"); 
// Empfänger der Mail:
recipient="empfaenger@meineDomain.de"; 
// Betreffzeile der Mail:
subject="Formular von der meineDomain - Flash - Site"; 
}

Deinen Codeschnipsel - wo schreibe ich den hin? (Bin nicht so versiert im Scripten)

Grüße, Lunata
 
Hi Lunata,

Indem du in einem HTML Formularfeld 'versteckte' Formularfelder anlegst und mit Werten beschickst, definierst du Variablen oder auch Arrays, weiter nichts.
In deinem Fall werden dann die von dir versteckt angefügten Variablen zusammen mit den vom User eingegebenen an ein .CGI Script verschickt, wie ich glaube in deinem Fall an den MailManager von Strato.
Es ist dieses Script, und nicht etwa eine native Funktion von HTML, das in deiner E-Mail Ausgabe dann die Felder sortiert erscheinen lässt, oder auch Einräge mit Leerzeichen ermöglicht
.
Das bedeutet, das du alle diese Funktionen natürlich auch aus Flash heraus nutzen kannst. Wir müssen dem Script schlicht diesselben Informationen zukommen lassen, wie eben aus HTML heraus auch.

Es wäre jetzt hilfreich gewesen, deine bisherigen Versuche als Datei zu haben, aber dem Fakt, das wenigstens etwas, wenn auch ungeordnet ankommt - entnehme ich, das du in Flash bereits einen einzelnen MC angelegt hast, der Eingabetextfelder beinhaltet, mit denen man Variablen in diesem MC definieren kann.
Ausserdem hast du wahrscheinlich in diesem MC einen Knopf, mit dem man das ganze dann versendet. Auf diesem Knopf nun, unter der Voraussetzung, das die Eingabetextfelder von da aus mit this zu erreichen sind, legst du nun folgendes Script:
PHP:
/// ActionScript Code
on (release) {
	// //////////////////////////////////////////////////////
	// Auf welcher Domain liegt das Script ?
	// //////////////////////////////////////////////////////
	_root.Location = "http://www.dr-von-ritter-roehr.de";
	// //////////////////////////////////////////////////////
	// Konfigurationsdaten für das Mail Script
	// //////////////////////////////////////////////////////
	recipient = "webmaster@dr-von-ritter-roehr.de";
	subject = "Homepage Anfrage";
	print_config = "email,realname,subject,Feldname1,Feldname2,Feldname3";
	sort = "email,realname,subject,Feldname1,Feldname2,Feldname3";
	redirect = "http://www.yyy.de";
	print_blank_fields = "1";
	// //////////////////////////////////////////////////////
	// / Datenübertragung
	// //////////////////////////////////////////////////////
	_root.FMAIL = new LoadVars ();
	Briefkopf = "realname=" + realname.text + "&email=" + email.text;
	UserEingabe = "&Feldname1=" + this.Feldname1.text + "&Feldname2=" + this.Feldname2.text + "&Feldname3=" + this.Feldname3.text;
	Scriptsteuerung = "&recipient=" + recipient + "&subject=" + subject + "&print_config=" + print_config + "&sort=" + sort + "&redirect=" + redirect + "&print_blank_fields=" + print_blank_fields;
	_root.MailManagerAufruf = _root.Location + "/cgi-bin/mailmanager.pl?" + Briefkopf + UserEingabe + Scriptsteuerung + "&AntiCache=" + new Date ().getTime ();
	trace (_root.MailManagerAufruf);
	_root.FMAIL.sendAndLoad (_root.MailManagerAufruf, _root.FMAIL, "POST");
	// ////////////////////////////////////////////////////////
	// / Bei Erfolg tue ......
	// ////////////////////////////////////////////////////////
	_root.FMAIL.onLoad = function ()
	{
		trace ("***********E-Mail versendet*****************");
	};
}

anbei eine Datei, Textfelder müssen Feldname1- Feldname3 benannt sein, und du musst noch den Pfad zu deiner Domain eintragen, und die Konfiguration einstellen.

http://www.monalisaoverdrive.de/Strato-Mailer.zip

Grüss mir Berlin

B
 
So, ich habe es noch einmal korrigiert und getestet, läuft jetzt optimal und der DownloadLink geht auch....


B
 
Hallo,
ich arbeite wirklich mit Strato - very cleeever....
hab Dank für Deine Mühe,
sorry, daß ich nicht gleich geantwortet habe.
Erst mal wollte ich Dein Formular testen.
Den Eingabefeldern und dem Script habe ich nun "meine" Feld-Namen zugeordnet.

Leider....
wenn man alle Formularfelder ausfüllt, ist die Sortierung in der Mail nicht wie gewünscht.
Sendet man das Formular "leer" ab, stimmt zwar die Sortierung, jedoch fehlen einige der "leeren Felder", die laut Script in der Mail ebenfalls aufgeführt sein sollten.

Irgendwie kann ich mir nicht vorstellen, daß das nicht aus Flash heraus klappen soll?
In HTML geht es doch auch.

Danke nochmal für Deine Mühe,
Berlin hat sich über Deine Grüße gefreut.

Gruß Lunata
 
Zuletzt bearbeitet:
Hi Lunata -

Das Problem war, das das Script die Felder subject, email und realname als Sonderfelder behandelt.
Einfach unverfänglich doppeln und aus der print_config rausschmeissen und fertig.

PHP:
on (release) {
	// function NixWieWeg () - ?
	// //////////////////////////////////////////////////////
	// Auf welcher Domain liegt das Script ?
	// //////////////////////////////////////////////////////
	_root.Location = "http://www.deineDomain.de";
	// //////////////////////////////////////////////////////
	// Konfigurationsdaten für das Mail Script
	// //////////////////////////////////////////////////////
	recipient = "webmaster@deineDomain.de";
	subject = "Formulartest in Flash";
	print_config = "i_subject,i_vorname,i_realname,i_email,i_betreff,i_comment";
	//  hier wird doch die Reihenfolge festgelegt - ja aber nur für Nicht-Sonderfelder?
	sort = "order:i_subject,i_vorname,i_realname,i_email,i_betreff,i_comment";
	//redirect = "http://www.yyy.de"; // Ausgabeseite bei erfolgtem Versand
	print_blank_fields = "1";
	// Nichtausgefüllte felder sollen übermittelt werden - werden sie, werden sie....
	// //////////////////////////////////////////////////////
	// / Datenübertragung
	// //////////////////////////////////////////////////////
	_root.FMAIL = new LoadVars ();
	//  oder - wird hier die Reihenfolge festgelegt? - Nö, nur die Reihenfolge der Übermittlung
	Briefkopf = "realname=" + realname.text + "&email=" + email.text;
	UserEingabe = "&i_vorname=" + this.i_vorname.text + "&i_realname=" + realname.text + "&i_subject=" + subject + "&i_betreff=" + this.i_betreff.text + "&i_comment=" + this.i_comment.text + "&i_email=" + email.text;
	Scriptsteuerung = "&recipient=" + recipient + "&subject=" + subject + "&print_config=" + print_config + "&redirect=" + redirect + "&print_blank_fields=" + print_blank_fields + "&sort=" + sort;
	_root.MailManagerAufruf = _root.Location + "/cgi-bin/mailmanager.pl?" + Briefkopf + UserEingabe + Scriptsteuerung + "&AntiCache=" + new Date ().getTime ();
	_root.FMAIL.sendAndLoad (_root.MailManagerAufruf, _root.FMAIL, "POST");
	// ////////////////////////////////////////////////////////
	// / Bei Erfolg tue ......
	// ////////////////////////////////////////////////////////
	_root.FMAIL.onLoad = function ()
	{
		//hier auf den Danke-Frame springen - zB mit gotoAndStop(x) ....
		trace ("***********E-Mail versendet*****************");
		// kann später weg ...
	};
}

http://www.monalisaoverdrive.de/_Strato-Mailer_versand.zip


Grüsse
B
 
Daaaaanke
jetzt kann ich Dein tolles Script in mein Formular einbinden.

Meine innerliche "Mrs Peggy Perfect" ist glücklich.

Grüße, Lunata
 
Hallo Basileus,

zu früh gefreut......
der Teufel steckt natürlich wieder im Detail.....

Nehme ich mein Senden-Script, wird zwar nicht sortiert, aaaaber alle Umlaute und sogar die Zeilenumbrüche werden per Mail versandt.
Sehr schön. Macht jedoch nicht richtig froh....

Mit dem schicken Sortier-Script passiert folgendes:
einzeilige User-Eingabe - die Umlaute verschwinden nach einem " : " im Orkus.
mehrzeilige User-Eingabe mit Umlauten und " : - "kryptische Fehlermeldung - kein Mail-Versand.
mehrzeilige User-Eingabe mit Umlauten ohne " : " - Mehl-Versand - aber Umbruch weg
mehrzeilige User-Eingabe ohne Umlaute - Mehl-Versand - Umbruch weg


Knirsch, beiß in die Tischkante......

vielleicht fällt Dir noch was Erhellendes dazu ein.

Hat keine Eile, ist halt das Sahnehäubchen für mein Formular...........

Tschüß für Heute, Lunata
 
Zuletzt bearbeitet:
Zurück