As3 Отправка электронной почты с использованием PHP

0

Я использую flash CS6 и flash player 11.4

Вот пример отправки электронной почты из Flash с помощью PHP

as3 код:

var php_file = "simple_email.php";
var message_text = "Hello Im mesage from flash.";

function sendEmail():void
{
   var myData:URLVariables = new URLVariables();
   myData.msg = message_text;

   var myRequest:URLRequest = new URLRequest(php_file);
   myRequest.data = myData;
   myRequest.method = URLRequestMethod.POST;

    var loader:URLLoader = new URLLoader();
    loader.dataFormat = URLLoaderDataFormat.VARIABLES;
    loader.addEventListener(Event.COMPLETE, completeHandler);
    try {

        loader.load(myRequest);

    } catch (error:Error) {

        trace("Unable to load URL");
    }

    function completeHandler(e:Event):void {

      trace("Data Content:"+e.target.data)
      trace("Response:"+e.target.data.success);
    };
};

sendEmail();

PHP-код:

<?php
    $msg = $_POST["msg"];
    $to = "[email protected]";
    $subject="Message from php";
    $success = mail($to,$subject,$msg,"Content-Type: text/plain; charset=utf-8");
    echo "temp=1&success=".$success;
?>

все выглядит просто, но не работает

1) Ответ: должен быть правдивым или ложным и есть: ". Успех;?> (Плохой парсинг?)

2) e.target.data выглядит странно:

Data Content:success=%22%20%24success%3B%0D%0A%3F%3E&%3C%3Fphp%0D%0A%09%24msg%20=%20var%5Fexport%28%24%5FPOST%2C%20true%29%3B%0D%0A%09%24to%20%3D%20%22baca%2Erene%40gmail%2Ecom%22%3B%0D%0A%09%24subject%3D%22Message%20from%20php%22%3B%0D%0A%09%24success%20%3D%20mail%28%24to%2C%24subject%2C%24msg%2C%22Content%2DType%3A%20text%2Fplain%3B%20charset%3Dutf%2D8%22%29%3B%0D%0A%09echo%20%22temp%3D1

3) После выполнения кода я не получил никаких писем.... что-то должно быть не так?

  • 0
    У вас есть проблема на вашем веб-сервере (если он у вас есть), потому что php не выполняется. Вы должны знать, что вы не можете запустить скрипт php без веб-сервера.
Теги:
actionscript-3

1 ответ

0

В порядке:

  1. В PHP Booleans не вызывают "true" или "false", как в actionscript-3s trace(). Вам нужно использовать некоторую форму инструкции if в PHP для эхо-корреляции соответствующей строки, которая будет скорее отражать переменную напрямую.

  2. e.target.data возвращает строку utf с экранированной строковой версией вашего PHP-кода, обычно это знак того, что php не выполняется, и файл просто считывается как строка, вы должны проверить, что ваш сервер настроен правильно, и проверьте Журнал ошибок PHP (и измените конфигурацию php для записи всех ошибок в журнал)

  3. Да, что-то не так, проверьте свои конфигурации PHP и журналы ошибок, вполне вероятно, и ошибку конфигурации SMTP.

Вы также можете использовать error_get_last(); в php, чтобы вытащить последнюю ошибку, вызванную php.

  • 0
    Я думаю, что @Orien пытается выполнить локальный скрипт php даже без веб-сервера.
  • 0
    Отсутствие веб-сервера может быть основной причиной, но оно не дает объяснения по первому пункту (который не будет работать даже с веб-сервером) или по второму пункту (что является путаницей из-за экранирования символов utf)
Показать ещё 9 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню