Flash übergibt nicht Variablenwerte an PHP-Script

poli-dori

Erfahrenes Mitglied
Hi,
ich habe ein Problem mit einem Flash-Formular. Und zwar habe ich ein Formular erstellt und den dynamischen Eingabefelder die Variablen email, betreff und text zugewiesen. Per Buttonklick wird folgende Funktion ausgelöst:
PHP:
send.onRelease = function() {
	loadVariables("contact/sendmail.php4","", "POST");
	_parent.play();
	//trace("hallo");
};
Und dazu das PHP-Script:
PHP:
<?
// Text für die Bestätigungsmail
$vtext="hier kommt deine antwort hin";
$vtext.=$text;
// Betreff der Bestätigungsmail
$bestaetigung="Mail angekommen";

$text=str_replace("\\\"","\"",$text);
$text=str_replace("\'","'",$text);
urlencode ($text);
$text=str_replace("%0D","\n",$text);

// e-Mail wird abgeschickt und zur Bestätigung wird noch eine Mail an den Absender geschickt
mail("meine@email.it",$betreff,$text,"From: ".$email);
mail($email,$bestaetigung,$vtext,"From: "."meine@email.it");
?>

Das Problem ist, ich bekomme leere E-mails, ganz ohne Betreff und ohne Absender und ohne Inhalt...
Ich vermute der Fehler liegt an der Übergabe der Variablen von Flash zu PHP. Habe es sowohl mit get als auch mit post probiert, aber es hat nix genutzt. Könnt ihr mir bitte weiterhelfen?

Danke

MFG
 
Kein Wunder...

Flashcode:

PHP:
 send.onRelease = function() {
    blubb = new LoadVars();
    blubb.email = _root.email.text;
    blubb.betreff = _root.betreff.text; 
    blubb.message  = _root.message.text; // Variablenname "Text" ist doof, weil dieser von Flash als Attribut verwendet wird und so Fehler entstehen
    blubb.send("contact/sendmail.php4","", "POST");
    _parent.play();
   trace("hallo ich bin der kai wilhelm august");
};

Liebe Grüße
jens
 
Hi, danke für die schnelle Antwort. Bin leider nur ein AS-Anfänger :)
Ich werds mal probieren ich hoffe es funktioniert auch mit Flash MX! Habe hier in der Agentur leider nur Flash MX auf Mac... :(

MFG
 
Und welche Änderungen muß ich im PHP-Script durchführen?

Was machen loadVars() und die darunterliegenden Zeilen in diesem Falle genau?

Danke für die Hilfe :)


MFG
 
Zuletzt bearbeitet:
Hi,

1. Lies Dir am besten die Referenz zum Thema "LoadVars-Objekt" durch.

2. Wenn REGISTER_GLOBALS auf Deinem Server nicht aktiviert ist, musst Du die Variablen in PHP mit $_POST["variablenname"] abfragen. (Siehe dazu auch die PHP-FAQ]

Gruß
.
 
Wow, das wird jetzt kompliziert :confused:

kannst du mir bitte aufschreiben wie denn das PHP-Script aussehen sollte nachdem ich die Änderungen im AS, die mir Jens Uwe vorgeschlagen hat durchgeführt habe?

Danke

MFG
 
Na ja,

Du musst in diesem Fall auf die Variablen so zugreifen:
PHP:
$text = $_POST["message"];
$betreff = $_POST["betreff"];
$email = $_POST["email"];

Gruß
.
 
PHP-Seite öffnet sich...

Hi, danke für Eure Hilfe.
Ich habs hingekriegt und es funktioniert auch! :)
Nur noch etwas stört mich:
wenn ich im Flash-Film auf absenden klicke, öffnet sich auch die PHP-Seite, an die ich die Variablen schicke. Wie kann man das unterbinden?

Danke

MFG
 
Hi,

nimm LoadVars.sendAndLoad() statt send().

diese Methodw erwartet drei Parameter:

- das Zielscript

- das Objekt, dass die etwaige Antwort des Servers empfangen soll

- die Methode (GET/POST)

Wenn Du keine Daten zurückgeben willst, gib einfach Dein LoadVars-Objekt auch als zweiten Parameter an:
PHP:
mein_loadvars.sendAndLoad("zielscript.php", mein_loadvars, "POST");

Gruß
.
 
scheint nicht zu funktionieren...

Hi,
danke für die schnelle Antwort...
es scheint nicht zu funktionieren. Wenn ich sendAndLoad() nehme bekomme ich keine E-mails und wenn ich nur send() nehme und mein loadVars Objekt als zweiten Parameter angebe, dann öffnet sich die PHP-Datei einfach in einem anderen Fenster. Zudem haben sich 2 weitere Probleme wie von selbst kreiert... :)
1. seit ich die Dateien auf dem Server geladen habe, funktionieren die Umlaute und das ß nicht mehr, obwohl ich die Textdatei, aus der sie gelesen werden im UTF8 Format abespeichert habe. Keine Ahnung wo das Problem jetzt schon wieder liegt... :confused:
2. obwohl ich im Flashfilm eine korrekte E-mailadresse eingebe, bekomme ich eine E-mail mit folgendem Absender: wwwrun@sv3.web-crossing.com...

Ich poste nochmal den AS-Script und den PHP-Script:

PHP:
send.onRelease = function() {
	formular = new LoadVars();
	formular.email = email.text;
	formular.betreff = betreff.text;
	formular.nachricht = nachricht.text;
	// Variablenname "Text" ist doof, weil dieser von Flash als Attribut verwendet wird und so Fehler entstehen 
	formular.send("contact/sendmail.php4", "formular", "POST");
	play();
	//trace(formular);
};
PHP:
<?
// Text für die Bestätigungsmail
$datum = date("d.m.Y",$timestamp);
$uhrzeit = date("H:i",$timestamp);
$vtext="Danke für Ihr E-mail! \n\nWir werden es sobald wie möglich beantworten! \n\n\n\n\nIhr E-mail vom ".$datum." um ".$uhrzeit.": \n\n";
$vtext.=$nachricht;
// Betreff der Bestätigungsmail
$bestaetigung="Wir haben Ihr E-mail erhalten";

$text=str_replace("\\\"","\"",$nachricht);
$text=str_replace("\'","'",$nachricht);
urlencode ($text);
$text=str_replace("%0D","\n",$nachricht);

// e-Mail wird abgeschickt und zur Bestätigung wird noch eine Mail an den Absender geschickt
mail("xxx@xxx.it",$betreff,$nachricht,"Von: ".$email);
mail($email,$bestaetigung,$vtext,"From: "."xxx@xxx.it");
?>

MFG
 
Zurück