Показать сообщение отдельно
Старый 05.08.2010, 18:44
mark2010 вне форума Посмотреть профиль Отправить личное сообщение для mark2010 Найти все сообщения от mark2010
  № 5  
Ответить с цитированием
mark2010

Регистрация: Jul 2010
Сообщений: 6
PgeorgyV
Прошу прощения, я написал своё сообщение до того как строчка была перечёркнута
А по сути, дела не меняет. Я вот думаю, если посмотреть на статусную строчку браузера, то будет видно, что слишком долго длится фаза "Передача данных с домена...". Хотя передавать там считанные байты. И всё равно письмо приходит, но ни одного поля нет.

Вот то что у меня на текущий момент написано:
Код AS3:
w_send.addEventListener(MouseEvent.CLICK, send_mail);
 
 
var var_load: URLLoader = new URLLoader();
var URL_request:URLRequest = new URLRequest( "send.php" );
var postData:Object = new Object();
URL_request.method = URLRequestMethod.POST;
 
function send_mail (e:MouseEvent):void {
 
 
postData["name"] = w_name.text;
postData["email"] = w_email.text;
postData["subject"] = w_subject.text;
postData["message"] = w_message.text;
 
 
 URL_request.data = postData;
 var_load.load(URL_request);
}
Уже мне даже интересно, в чём причина

Добавлено через 6 часов 9 минут
Удивительно!
Нашёл самую наибанальнейшую ошибку - переписал php-код в виде:

PHP код:
  $send_letter mail("my@mail"".$_POST['subject']."".$_POST['message'].");
    if (
$send_letter)
    {
        echo 
"success=yes";
    }    
    
    else
    {
        echo 
"success=no";
    } 
AS теперь выглядит следующим образом:
Код AS3:
w_send.addEventListener(MouseEvent.CLICK, send_mail);
 
function send_mail (e:MouseEvent):void {
 
var var_load: URLLoader = new URLLoader();
var URL_request:URLRequest = new URLRequest( "send.php" );
var postData:Object = new Object();
URL_request.method = URLRequestMethod.POST;
postData["name"] = w_name.text;
postData["email"] = w_email.text;
postData["subject"] = w_subject.text;
postData["message"] = w_message.text;
 
var_load.addEventListener(Event.COMPLETE, receive_response);
 
 
 URL_request.data = postData;
 var_load.load(URL_request);
 
 
}
 
function receive_response(e:Event):void {
	var loader:URLLoader = URLLoader(e.target);
	var email_status = new URLVariables(loader.data).success;
 
	if( email_status == "yes" ) {
		message_status.text = "Ваше сообщение отправлено!";
 
	} else {
		message_status.text = "Ошибка отправки!";
	} 
}
Естественно, на форму добавлено поле динамического текста под именем message_status.

Так вот суть в том, что один раз письмо замечательно отправилось (в поле было написано "Ваше сообщение отправлено!", но реально пришло пустое письмо без адреса и без ничего.
А вот все последующие разы, хотя я ничего такого не менял - получаю вот такой мат от Flash:

Цитата:
Error: Error #2101: Строка, переданная в URLVariables.decode(), должна быть строкой запроса закодированного URL-адреса и содержать пары имя/значение.
at Error$/throwError()
at flash.net::URLVariables/decode()
at flash.net::URLVariables()
at _fla::MainTimeline/receive_response()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()
Что-то непонятно... я хочу чтобы эта форма заработала!

Добавлено через 48 часов 22 минуты
Ну что, больше ни у кого нет идей?