PDA

Просмотр полной версии : Проблема с отправкой почты


degavyman
13.07.2007, 15:02
Здравствуйте!У меня на кнопке прописан вот такой скрипт - on(rollOver) {
this.gotoAndPlay("s1");
}

on(rollOut, releaseOutside) {
this.gotoAndPlay("s2");
}

on (release) {

var ваше_имя_descr = _parent.ваше_имя_descr
var ваш_email_descr = _parent.ваш_email_descr
var ваша_компания_descr = _parent.ваша_компания_descr
var field_1_descr = _parent.field_1_descr
var field_2_descr = _parent.field_2_descr
var field_3_descr = _parent.field_3_descr
var field_4_descr = _parent.field_4_descr
var field_5_descr = _parent.field_5_descr
var field_6_descr = _parent.field_6_descr
var field_7_descr = _parent.field_7_descr
var сообщение_descr = _parent.сообщение_descr
var сообщение = _parent.сообщение
var field_1 = _parent.field_1
var field_2 = _parent.field_2
var field_3 = _parent.field_3
var field_4 = _parent.field_4
var field_5 = _parent.field_5
var field_6 = _parent.field_6
var field_7 = _parent.field_7
var ваш_email = _parent.ваш_email
var ваше_имя = _parent.ваше_имя
var ваша_компания = _parent.ваша_компания

getURL ("http://aist@googlegroups.com/contact.php"+_parent.serv.text, "_blank" , "POST");
i=1;
while (this["field_"+i]) {
_parent["field_"+i]="";
i++;
}


_parent.reset_txt("t1","ваше_имя", "Ваше имя:");
_parent.reset_txt("t2","ваша_компания","Ваша Компания:");
_parent.reset_txt("t4","сообщение","Сообщение:");

_parent.reset_txt("t3","ваш_e-mail","Ваш E-mail:");

}
Кто нибудь может подсказать какая здесь может быть ошибка?

etc
13.07.2007, 15:04
degavyman, раздел для профи не для вас.
Отредактируйте свой пост и оформите код тегами .

degavyman
13.07.2007, 15:09
А кто, как не профи может ответить на мой вопрос...

etc
13.07.2007, 15:11
А кто, как не профи может ответить на мой вопрос...
А кто сказал, что они обитают исключительно в разделе для профи? В разделе для профи не задают вопросы по коду, в котором используются устаревшие (уже семь лет как) конструкции, не говоря уже о такой дикости, как русские имена переменных.

CrazyFlasher
13.07.2007, 16:10
Сразу говорю, что код далёк от идеала, но переписывать не буду =) Кстати взял когда-то давно с этого форума (вроде)

Код во fla файле:

var s_and_l_obj:LoadVars = new LoadVars();
var rec_obj:LoadVars = new LoadVars();

sendb.onRelease = function():Void {
if (sender_name.text != "" && sender_mail.text != "" && receiver_name.text != "" && subject.text != "" && letter_text.text != "") {
s_and_l_obj.sender_name = sender_name.text;
s_and_l_obj.sender_mail = sender_mail.text;
s_and_l_obj.receiver_mail = receiver_mail.text;
s_and_l_obj.subject = subject.text;
s_and_l_obj.letter_text = letter_text.text;
s_and_l_obj.sendAndLoad("url", rec_obj, "POST");
info.textColor = 0x666666;
info.text = "Sending...";
} else {
info.text = "Fill all the text fields!!!";
info.textColor = 0xFF0000;
}
};

rec_obj.onData = function(text:String):Void {
if(text!=undefined){
info.text = text;
}else{
info.text="It's impossible to connect to server!"
}
if (info.text.length>16) {
info.textColor = 0xFF0000;
} else {
info.textColor = 0x00CC00;
}
};


Код в php файле:

<?php
$receiver=$_POST['receiver_mail'];
$subject=$_POST['subject'];
$text=$_POST['letter_text'];
$from='From:'.$_POST['sender_name'].'<'.$_POST['sender_mail'].'>';
$success=mail($receiver, $subject, $text, $from);
if($success){
echo 'Message sent!';
}else{
echo 'Invalid e-mail address!';
}
?>

Kikasso
13.07.2007, 16:23
Хорошо бы еще до отправки проверить валидность е-мэйла, хотя бы чуть-чуть.
И введенные данные обконать - удалить все пробелы до и после текста, а потом уже проверять, введено ли что-то. Тут не так давно была тема с флешовым trim().
поиск поможет найти и то и это.

CrazyFlasher
13.07.2007, 20:39
to Kikasso:
Если адрес будет не такого вида my@emal.com - то пхп будет возвращать ощибку. я проверял

Kikasso
13.07.2007, 21:48
to Kikasso:
Если адрес будет не такого вида my@emal.com - то пхп будет возвращать ощибку. я проверял
Все правильно. А флеш переварит текст этой ошибки? Броузер-то поймет..

degavyman
17.07.2007, 13:58
Я понимаю Уважаемый ETC что у Вас крылья,звездная болезнь и т.д и т.п. но тем не менее люди заходят сюда попросить помощи у проффесионалов а Вы уважаемый начинаете кичиться своими знаниями и упиваться тем что Вы знаете а я нет.Будьте так добры,подскажите неучу неграмотному как прописать скрипт чтобы правильно работала форма обратной связи.

etc
17.07.2007, 14:02
Я понимаю Уважаемый ETC что у Вас крылья,звездная болезнь и т.д и т.п. но тем не менее люди заходят сюда попросить помощи у проффесионалов а Вы уважаемый начинаете кичиться своими знаниями и упиваться тем что Вы знаете а я нет.
Типа вы всерьез полагаете, что в разделе для начинающих отвечают исключительно начинающие, а в разделе для профессионалов отвечают профессионалы? Супер.
Разделы разделены по типу вопросов, а не по обитающим в них участникам форума.
Если вы плохо знаете AS, ничего страшного в размещении темы в разделе для начинающих не будет, потому как вы действительно начинающий и вопросы у вас соответствующие. Если вопрос сложен и нетривиален, то тема будет перемещена в соответствующий раздел. Наличие ответов по теме не зависит от раздела, в котором расположена тема.

Более того, буквально за последние два дня пара-тройка тем про отправку писем была, если вам лень посмотреть соседние темы или поискать скрипты отправки на форуме, то я ничем помочь уже не могу.

degavyman
17.07.2007, 16:42
Типа вы всерьез полагаете, что в разделе для начинающих отвечают исключительно начинающие, а в разделе для профессионалов отвечают профессионалы? Супер.
Разделы разделены по типу вопросов, а не по обитающим в них участникам форума.
Если вы плохо знаете AS, ничего страшного в размещении темы в разделе для начинающих не будет, потому как вы действительно начинающий и вопросы у вас соответствующие. Если вопрос сложен и нетривиален, то тема будет перемещена в соответствующий раздел. Наличие ответов по теме не зависит от раздела, в котором расположена тема.

Более того, буквально за последние два дня пара-тройка тем про отправку писем была, если вам лень посмотреть соседние темы или поискать скрипты отправки на форуме, то я ничем помочь уже не могу.

Типа спасибо и все такое...)))

Double
17.07.2007, 17:03
Типа спасибо и все такое...)))
Типа профи уже давно заманались отвечать на одни и те же вопросы по сто раз. Или Вы типа думаете, что Вы тупите как-то особенно индивидуально? Да все точно так же тупили, и ответы на 99% Ваших вопросов можно найти, воспользовавшись поиском. на вопрос об e-mail чёрте в каком году замечательно ответил iNils. прекрасно тот пост помню.

degavyman
17.07.2007, 17:27
В черте каком году Flash была более примитивной...Друг на друга только стрелки переводят,там посмотри,здесь посмотри,да все я перелопатил и увидел один и тот-же стандартный ответ .Согласен но тем не менее на не основной сцене во Flash скрипт этот работать отказывается.

etc
17.07.2007, 17:31
Вот есть соседняя тема (в топе, кстати):
http://flasher.ru/forum/showthread.php?t=80392
Уж найти там нужно вообще труда не составляет.

Double
17.07.2007, 17:42
я говорил вот об этой ветке:
http://www.flasher.ru/forum/showthread.php?t=67377
тоже найти было несложно.

degavyman
18.07.2007, 13:51
Спасибо всем за ссылки но тем не менее проблема не решается,помогите по возможности.Я ставлю на 7-ю страницу flash-сайта вот этот скрипт: tf_fmt = new TextFormat();
tf_fmt.color = "0x666666";
// Текстовое поле для имени
_root.createTextField("name_txt", 1, 10, 10, 300, 20);
with (name_txt) {
border = true;
borderColor = "0xCCCCCC";
type = "input";
multiline = false;
text = "Введите ваше имя";
setTextFormat(tf_fmt);
}
// При передачи фокуса текстовому полю убиваем всё что в нём написано
name_txt.onSetFocus = function() {
this.text = "";
delete this.onSetFocus;
};
// Текстовое поле для e-mail
_root.createTextField("mail_txt", 2, 10, 40, 300, 20);
with (mail_txt) {
border = true;
borderColor = "0xCCCCCC";
type = "input";
multiline = false;
text = "Введите ваш e-mail";
setTextFormat(tf_fmt);
}
// При передачи фокуса текстовому полю убиваем всё что в нём написано
mail_txt.onSetFocus = function() {
this.text = "";
delete this.onSetFocus;
};
// Текстовое поле для сообщения
_root.createTextField("message_txt", 3, 10, 70, 300, 200);
with (message_txt) {
border = true;
borderColor = "0xCCCCCC";
type = "input";
multiline = true;
text = "Введите ваше сообщение";
setTextFormat(tf_fmt);
}
// При передачи фокуса текстовому полю убиваем всё что в нём написано
message_txt.onSetFocus = function() {
this.text = "";
delete this.onSetFocus;
};
// Кнопка "Отправить"
_root.attachMovie("button", "but_mc", 4, {_x:10, _y:280});
but_mc.createTextField("tf", 1, 0, 0, 300, 20);
b_fmt = new TextFormat();
b_fmt.color = "0xFFFFFF";
b_fmt.align = "center";
with (but_mc.tf) {
selectable = false;
text = "Отправить сообщение";
setTextFormat(b_fmt);
}
// При нажатии на кнопку запускаем функцию F_sendMail
but_mc.onPress = function() {
F_sendMail(name_txt.text, mail_txt.text, message_txt.text);
};
//Функция отправки сообщения
F_sendMail = function (Name, Mail, Message) {
// Создаём мувик для хранения переменных
_root.createEmptyMovieClip("v", 120);
v.name = Name;
v.mail = Mail;
v.message = Message;
// Отправляем данный php - скрипту
v.loadVariables("http://www.flashblog.ru/test/mail.php", "POST");
};
// Что бы не было проблем с кодировкой при передачи текста php
System.useCodepage = true;
Возникает вот такая ошибка:Error: A 'with' action failed because the specified object did not exist.

Error: A 'with' action failed because the specified object did not exist.

Error: A 'with' action failed because the specified object did not exist.

Error: A 'with' action failed because the specified object did not exist.
Однако когда я ставлю этот-же скрипт в основную линейку, все работает.Подскажите в чем моя ошибка...

etc
18.07.2007, 13:53
Какая версия языка выставлена в свойствах проекта?

degavyman
18.07.2007, 14:02
ActionScript 1.0

etc
18.07.2007, 14:05
У меня такая ошибка возникла только лишь из-за того, что в либе нет кнопки с линкейджем button.

И последнюю строчку из кода надо убрать.

degavyman
18.07.2007, 14:59
Спасибо!К сожалению проблема не разрешилась.Кнопка с линкейджем button в библиотеке присутствует,попробовал убрать последнюю строчку,не помогло.Может быть ошибка связана с сложным сценарием сайта или как-то влияет название страницы где находится форма обратной связи?

serdeles
18.07.2007, 15:12
Не знаю, в тему или нет, вот тут тоже рассказывается про форму отправки: http://www.flashblog.ru/?p=196

etc
18.07.2007, 15:16
Этот код как раз оттуда.
Что мешает скачать исходник к уроку и разобраться с ним?

etc
18.07.2007, 15:40
degavyman получает плюс.

degavyman
18.07.2007, 16:04
Плюс говоришь?)))Я не понял,а где мой диалог с serdelesom?Вообще-то я не грубил,мата не было...Плюсы лучше раздавай дилетантам которых здесь как грязи, которые дают битые советы...

etc
18.07.2007, 16:27
«Диалог» удален. Если очень хочется, могу вернуть. Насчет отсутствия грубости — большое заблуждение.

Kikasso
18.07.2007, 16:55
Я ставлю на 7-ю страницу flash-сайта вот этот скрипт
Это куда то есть?