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

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

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

Регистрация: Mar 2011
Адрес: Забайкальский край
Сообщений: 10
Question flash+php

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

У меня возникла следующая проблема - не получается совместить php и Macromedia Flash. Работаю по книге Дмитрия Гурского, но может в книжке опечатки или это я такой не мовсем умный, но у меня ничего не получается. Предлагаю вашему вниманию скрипты на Flash и php.

Macromedia Flash MX Professional 2004
Код AS1/AS2:
System.useCodepage=true;
var s_and_1_obj:LoadVars=new LoadVars(); // Отправитель
var rec_obj:LoadVars=new LoadVars();     // Получатель
send.onPress=function():Void {
	s_and_1_obj.sender_name=sender_name.text;
	s_and_1_obj.sender_mail=sender_mail.text;
	s_and_1_obj.receiver_mail=receiver_mail.text;
	s_and_1_obj.subject=subject.text;
	s_and_1_obj.letter_text=letter_text.text;
	s_and_1_obj.sendAndLoad("http://localhost/test", rec_obj, "POST"};
	info.text="Письмо отправляется...";
};
rec_obj.onData=function(text:String):Void {
	info.text="Сервер сообщает:"+text;
};
php
PHP код:
<html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Untitled Document</title>
 </head>
 <body>
   <?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 
'Письмо успешно отправлено';
    } else {
        echo 
'Письмо отправить не удалось. Проверьте, все ли поля заполнены.';
    }
   
?>
 </body>
</html>
Всем заранее большое спасибо.

Старый 10.03.2011, 22:41
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 2  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
Что именно не работает?

Попробуйте вместо http://localhost/test поставить точный путь до скрипта, например http://localhost/test/script.php.

Для пхп-скрипта, который будет отвечать на запросы из флэшки хтмл-тэги не нужны.
__________________
hauts.ru

Старый 10.03.2011, 23:03
Oleg_Rus вне форума Посмотреть профиль Отправить личное сообщение для Oleg_Rus Найти все сообщения от Oleg_Rus
  № 3  
Ответить с цитированием
Oleg_Rus
 
Аватар для Oleg_Rus

Регистрация: Mar 2011
Адрес: Забайкальский край
Сообщений: 10
А это может произойти из-зи того, что у меня Macromedia Flash, а не как у всех от компании Adobe?

Hauts, нет, ничего не работает. Ткнул, как вы и сказали в файл и ничего...

Старый 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.
Старый 11.03.2011, 16:19
Oleg_Rus вне форума Посмотреть профиль Отправить личное сообщение для Oleg_Rus Найти все сообщения от Oleg_Rus
  № 5  
Ответить с цитированием
Oleg_Rus
 
Аватар для Oleg_Rus

Регистрация: Mar 2011
Адрес: Забайкальский край
Сообщений: 10
Hauts, первый тест, который вы мне предоставили, ничего не выдает. Окошко Output как было пустым, таким и осталось... А вы сможете оказать мне помощь по аське? Просто я только начинаю изучать флэш и хотелось бы, чтобы был кто-то к кому можно было обратиться за помощью.

Создать новую тему Ответ Часовой пояс GMT +4, время: 15:52.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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