Показать сообщение отдельно
Старый 28.06.2011, 08:42
desancheg вне форума Посмотреть профиль Отправить личное сообщение для desancheg Найти все сообщения от desancheg
  № 10  
Ответить с цитированием
desancheg

Регистрация: Jun 2011
Сообщений: 5
на Action Script 1.0 - 2.0, делал так (упрощю для наглядности, вообще можно понакрутить разной всячины):

1. создаём слой (form), на нём рисуем поля для заполнения:
a) (вводимый текст) name_txt - тут будет имя
b) (вводимый текст) email_txt - мыло для обратной связи
с) (вводимый текст) message_txt - ну понятно, текст сообщения
d) (динамический текст) erroLog - тут будут высвечиваться сообщения об ошибках

2. делаем кнопку, на неё пишем:
Код AS1/AS2:
on (release) {
        // отправляемся нажатием кнопки на проверку заполнения форм
	validateForm();
}
3. создаём новый слой (script_validate), в первом кадре пишем:
Код AS1/AS2:
//стопорим кадр (чтобы голова не закружилась)
stop();
errors = new Array();
//на всякий пожарный очищаем формы
function clearForm() {
	name_txt.text = "";
	email_txt.text = "";
	message_txt.text = "";
	errorLog.text = "";
	errors.length = 0;
}
 
//проверка заполнения поля name_txt
function validateFame() {
	if (name_txt.text.length < 2 || isNaN(name_txt.text) == false) {
		errors.push("Вы не ввели имя");
	}
}
 
//проверка заполнения поля email_txt
function validateFame() {
	if (email_txt.text.length < 2 || isNaN(email_txt.text) == false) {
		errors.push("Вы не ввели адрес эл.почты");
	}
}
 
//проверка заполнения поля message_txt
function validateFame() {
	if (message_txt.text.length < 2 || isNaN(message_txt.text) == false) {
		errors.push("Вы не ввели текст сообщения");
	}
}
//собственно сам скрипт проверки заполнения текстовых полей
function validateForm() {
	errorLog.text = "";
	errors.length = 0;
	validateName();
	validateEmail();
	validateMessage()
	if (errors.length > 0) {
		var i = -1;
		while (++i < errors.length) {
			errorLog.text += errors[i] + newline;
		}
	} else {
        //если все хорошо, отсылаем данные дальше, второй частью отсылаем мувик на сцену 2 - где стопим и выдаём сообщение - отправлено!
	F_sendMail(name_txt.text,email_txt.text,message_txt.text ); gotoAndPlay("Scene 2", 1);
	}
}
4. делаем новый слой (script_send), в первом кадре пишем (почему в разных слоях? - мне так проще, хотите объединяйте):
Код AS1/AS2:
//Функция отправки сообщения
F_sendMail = function (Name, Email, Message) {
	// Создаём мувик для хранения переменных
	_root.createEmptyMovieClip("v", 120);
	v.name = Name;
	v.email = Email;
	v.message = Message;
	// Отправляем данный php - скрипту - адрес сайта где лежит PHP и название файла! адрес лучше указывать полный! о то бывает и не срабывает :(
	v.loadVariables("http://www.yoursite.com/mail.php", "POST");
};
// Что бы не было проблем с кодировкой при передачи текста php
System.useCodepage = true;
5. делаем PHP (называем - понятно: mail.php) (укладываем - понятно: http://www.yousite.com):
PHP код:
<?php
    $name 
$_POST['name'];
    
$email $_POST['email'];
    
$message $_POST['message'];
        
//создаём собственно сообщение, адрес электронки куда оно придёт и далее текст сообщения (можно конечно всё это украсить)
    
mail("youraddres@yoursite.com","Сообщение с сайта","Имя : $fame\n Эл.адрес: $name\n Сообщение : $message");
?>
6. создаём сцену 2 - там делаем полностью идентичный мувик (нашему мувику с формами) но пишем большими буквами "отправлено", собственно на кнопку вешаем (лучше сделать кнопку, вдруг человечек захочет ещё чего отослать):
Код AS1/AS2:
on (release) {
	gotoAndPlay("Scene 1", 1);
}
7. закидываем PHP и SWF на сайт или локалхост (не забываем править пути и имена, если на локалхосте то инет должен быть на машине) SWF вешаем на страницу и пробуем (вообще если всё сделали как надо работать будет 100% - сам такой пользуюсь на сайтах), при желании и усилиях, ну и знаниях соответственно можно усложнить и разукрасить как вам будет угодно.

P.S. есть одна во всём этом проблема - на хосте может стоять запрет на отслыку почты через (скрипты и формы), на большинстве хостов с этим проблем нет, но встречается и фигня, несколько часов бился (не отпраялет письмо хоть ты тресни) - позвонил в службу тех.поддержки хостинга и задал вопрос в лоб - что надо сделать и где чего у них включить и приписать, объяснили - РАБОТАЕТ


Последний раз редактировалось desancheg; 28.06.2011 в 14:45.