Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.08.2010, 17:49
mark2010 вне форума Посмотреть профиль Отправить личное сообщение для mark2010 Найти все сообщения от mark2010
  № 1  
Ответить с цитированием
mark2010

Регистрация: Jul 2010
Сообщений: 6
По умолчанию Прошу помощи по созданию почтовой формы на Flash AS3

Здравствуйте!

Я самый начинающий флешер, но хочу это освоить. Сделал простую форму - имя, e-mail, тема сообщения, само сообщение. В принципе сообщение шлётся, но:
1. Оно БЕЗ темы (хотя тема написана)
2. Оно БЕЗ текста (хотя текст есть)

Т.е. просто присылается пустое сообщение.

Вот что наваял (это сборник моих идей и решений с этого замечательного форума )

Код AS3:
w_send.addEventListener(MouseEvent.CLICK, send_mail);
 
 
var var_load: URLLoader = new URLLoader();
var URL_request:URLRequest = new URLRequest( "send.php" );
URL_request.method = URLRequestMethod.POST;
 
function send_mail (e:MouseEvent):void {
 
		var email_data:String = "name=" + w_name.text
      + "&email=" + w_email.text
      + "&subject=" + w_subject.text
      + "&message=" + w_message.text;
 var URL_vars:URLVariables = new URLVariables(email_data);
 URL_vars.dataFormat = URLLoaderDataFormat.TEXT;
 URL_request.data = URL_vars;
 var_load.load(URL_request);
}
В файле send.php всё предельно просто:
PHP код:
<?php
    mail
("my@email"$subject$message,"From: $name <$email>");
?>
Вроде бы всё правильно, но работает не так, как ожидалось. Помогите пожалуйста разобраться.

Старый 05.08.2010, 17:55
gloomyBrain вне форума Посмотреть профиль Отправить личное сообщение для gloomyBrain Найти все сообщения от gloomyBrain
  № 2  
Ответить с цитированием
gloomyBrain
 
Аватар для gloomyBrain

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Попробуйте немного иначе:
Код AS3:
var postData:Object = new Object();
postData["name"] = w_name.text;
postData["email"] = w_email.text;
postData["subject"] = w_subject.text;
postData["message"] = w_message.text;
 
var URL_vars:URLVariables = new URLVariables(postData);
 
URL_request.data = postData;
var_load.load(URL_request);
Должно работать.

Так же можете попробовать вот это - можно отправлять не только переменные, но и файлы.
__________________
...вселенская грусть

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

Регистрация: Jul 2010
Сообщений: 6
Попробовал.
На этой строке:
Код AS3:
var URL_vars:URLVariables = new URLVariables(postData);
получаю следующее:
Error #1118: Implicit coercion of a value with static type Object to a possibly unrelated type String

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

Регистрация: Apr 2008
Сообщений: 79
Эту строку же перечеркнули, а значит не нужна она, чего тут не понятного...
И лучше отправлять методом POST.
Код AS3:
URL_request.method = URLRequestMethod.POST;


Последний раз редактировалось PgeorgyV; 05.08.2010 в 18:22.
Старый 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 минуты
Ну что, больше ни у кого нет идей?

Старый 10.09.2010, 12:06
Andriy вне форума Посмотреть профиль Отправить личное сообщение для Andriy Найти все сообщения от Andriy
  № 6  
Ответить с цитированием
Andriy

Регистрация: Sep 2010
Сообщений: 8
По умолчанию разобрался с почтой?

разобрался с почтой? я на базе твоего свой запустил. Надо для $_POST по другому данные запускать, через &


Последний раз редактировалось Andriy; 10.09.2010 в 12:40. Причина: дополнение
Создать новую тему Ответ Часовой пояс GMT +4, время: 10:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:42.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.