Тема: flash+php
Показать сообщение отдельно
Старый 11.03.2011, 09:28
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 4  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Флэш, по-хорошему, лучше поновее поставить, конечно.

Давайте так:

1. Создаете папку, в ней текстовый файл script.php, и в нем пишите:
Код:
response=hello from flash!
Сохраняете в utf-8 обязательно.

2. Создаете новый флэш-файл в той же папке. И в первом кадре основной временной шкалы пишите код:
Код AS1/AS2:
var lv:LoadVars = new LoadVars();
lv.onLoad = function() {
	trace(this.response);
};
lv.sendAndLoad("script.php",lv);
3. Жмете Ctrl + Enter и должны увидеть окно с "hello from flash!"

Если это работает, потом делаете следующее: переносите файл script.php туда же, откуда вы до этого пытались грузить (на localhost/test) и во флэше прописывайте новый его адрес. Запускаете.

Если не сработает — значит у вас ошибка с путями или денвер не запущен. Если сработает, то можно продолжить дальше и в пхп принимать переменные и отдавать необходимый ответ, почти так же, как вы пытались делать, только убрав html-тэги:

Код:
   <?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 'result=Письмо успешно отправлено'; 
    } else { 
        echo 'result=Письмо отправить не удалось. Проверьте, все ли поля заполнены.'; 
    } 
   ?>
А во флэше, соответственно, меняем код:
Код AS1/AS2:
var lv:LoadVars = new LoadVars();
lv.sender_name = sender_name.text;
lv.sender_mail = sender_mail.text;
lv.receiver_mail = receiver_mail.text;
lv.subject = subject.text;
lv.letter_text = letter_text.text;
lv.onLoad = function() {
	trace(this.result);
};
lv.sendAndLoad("http://localhost/test/script.php",lv);
Только учтите, что с денвера письма не будут отправлены, там заглушка стоит, насколько мне известно.
Ну и System.useCodepage=true; никогда не используйте. Если так же и в книге написано, то выкиньте ее.
__________________
hauts.ru


Последний раз редактировалось Hauts; 11.03.2011 в 11:17.