我找到了一个使用actionscripts 3和php发送电子邮件的教程,我下载了项目文件并复制了mail.php到我们的VPS服务器xamp htdocs文件夹。动画CC项目运行但没有发送。ActionScripts 3 to PHP电子邮件发送
AS3:
submit_btn.addEventListener(MouseEvent.CLICK, sendMessage);
function sendMessage(e:MouseEvent):void
{
var my_vars:URLVariables = new URLVariables();
my_vars.senderName = name_txt.text;
my_vars.senderEmail = email_txt.text;
my_vars.senderMsg = message_txt.text;
var my_url:URLRequest = new URLRequest("http://my-domain.com/mail.php");
my_url.method = URLRequestMethod.POST;
my_url.data = my_vars;
var my_loader:URLLoader = new URLLoader();
my_loader.dataFormat = URLLoaderDataFormat.VARIABLES;
my_loader.load(my_url);
name_txt.text = "";
email_txt.text = "";
message_txt.text = "Message Sent";
}
PHP:
<?php
$to = "[email protected]"; //Changed to my gmail
$subject = ($_POST['senderName']);
$message = ($_POST['senderMsg']);
$message .= "\n\n---------------------------\n";
$message .= "E-mail Sent From: " . $_POST['senderName'] . " <" . $_POST['senderEmail'] . ">\n";
$headers = "From: " . $_POST['senderName'] . " <" . $_POST['senderEmail'] . ">\n";
if(@mail($to, $subject, $message, $headers))
{
echo "EMAIL SENT";
}
else
{
echo "EMAIL NOT SENT";
}
?>
动画CC输出:
Error: Error #2101: The String passed to URLVariables.decode() must be a URL-encoded query string containing name/value pairs. at Error$/throwError() at flash.net::URLVariables/decode() at flash.net::URLVariables() at flash.net::URLLoader/onComplete()
PHP输出:
Notice: Undefined index: senderName in /opt/lampp/htdocs/mail.php on line 3 Notice: Undefined index: senderMsg in /opt/lampp/htdocs/mail.php on line 4 Notice: Undefined index: senderName in /opt/lampp/htdocs/mail.php on line 6 Notice: Undefined index: senderEmail in /opt/lampp/htdocs/mail.php on line 6 Notice: Undefined index: senderName in /opt/lampp/htdocs/mail.php on line 7 Notice: Undefined index: senderEmail in /opt/lampp/htdocs/mail.php on line 7
EMAIL NOT SENT
我没有使用actionscript的经验,但它看起来至少有一个你的问题是post re任务键似乎不匹配。在AS中,你设置了一个名为'senderName'的propery,但是在php中你试图读取'name'。也许改变你的php后键来匹配你的AS属性名称将是一个开始:'$ _POST ['senderName']','$ _POST ['senderEmail']','$ _POST ['senderMsg']' – Steve
我改变了代码但没有任何改变。 –
使用URLLoaderDataFormat.VARIABLES注释该行以避免AS3错误。该行指示** answer **是一个key1 = value1&key2 = value2格式的字符串,而不是请求。对PHP来说,我会先从print_r($ _ POST)和print_r($ _ GET)开始,以查看传入的数据是什么。 – Organis