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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.05.2011, 21:01
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 11  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
он еще там и пишет =)
__________________
low +

Старый 01.06.2011, 02:49
anderson s вне форума Посмотреть профиль Отправить личное сообщение для anderson s Найти все сообщения от anderson s
  № 12  
Ответить с цитированием
anderson s
 
Аватар для anderson s

Регистрация: Jan 2010
Сообщений: 37
Отправить сообщение для anderson s с помощью ICQ Отправить сообщение для anderson s с помощью Skype™
В смысле?

Добавлено через 14 минут
Код на actionscript3/0 который отсылает на php скрипт
Код AS3:
contact_name.text=contact_email.text=contact_subject.text=contact_message.text=message_status.text="";
 
send_button.addEventListener(MouseEvent.CLICK,submit);
reset_button.addEventListener(MouseEvent.CLICK,reset);
 
var timer:Timer
var var_load:URLLoader=new URLLoader;
var URL_request=new URLRequest("send_email.php");
URL_request.method=URLRequestMethod.POST;
 
function submit(e:MouseEvent):void{
if(contact_name.text==""||contact_email.text==""||contact_subject.text==""||contact_message.text=="")
{
message_status.text="Please enter the valid email adress.";
}
else
{
message_status.text="sending...";
var email_data:String="name="+contact_name.text
+"&email="+contact_email.text
+"&subject="+contact_subject.text
+"&message="+contact_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);
var_load.addEventListener(Event.COMPLETE,receive_responce);
}
}
function reset(e:MouseEvent):void
{
contact_name.text=contact_email.text=contact_subject.text=contact_message.text=message_status.text="";
}
function validate_email(s:String):Boolean
{
var p:RegExp=/(w|[_.\-])+@((\w|-)+\W{2,4}+/;
var r:Object=p.exec(s);
if(r==null)
{
return false;
}
return true;
}
 
function receive_responce(e:Event):void
{
var loader:URLLoader=URLLoader(e.target);
var email_status=new URLVariables(loader.data).success;
 
if(email_status=="yes")
{
message_status.text="Success!Your message was sent.";
timer=new Timer(500);
timer.addEventListener(TimerEvent.TIMER,on_timer);
timer.start();
}
else
{
message_status.text="Failed!Tour message cannot sent.";
}
}
function on_timer(te:TimerEvent):void
{
if(timer.currentCount>=10)
{
contact_name.text=contact_email.text=contact_subject.text=contact_message.text=message_status.text="";
timer.removeEventListener(TimerEvent.TIMER,on_timer);
}
}
Код на php send_email
PHP код:
<?php
$contact_name 
$_POST['name'];
$contact_email $_POST['email'];
$contact_subject $_POST['subject'];
$contact_message $_POST['message'];

if( 
$contact_name == true )
{
    
$sender $contact_email;
    
$receiver "anderson1985@mail.ru";
    
$client_ip $_SERVER['REMOTE_ADDR'];
    
$email_body "Name: $contact_name \nEmail: $sender \n\nSubject: $contact_subject \n\nMessage: \n\n$contact_message \n\nIP: $client_ip \n\nFlash Contact Form provided by http://www.flashmo.com";        
    
$extra "From: $sender\r\n" "Reply-To: $sender \r\n" "X-Mailer: PHP/" phpversion();

    if( 
mail$receiver"Flash Contact Form - $contact_subject"$email_body$extra ) ) 
    {
        echo 
"success=yes";
    }
    else
    {
        echo 
"success=no";
    }
}
?>
код на php send_email_auto_responce
PHP код:
<?php
$contact_name 
$_POST['name'];
$contact_email $_POST['email'];
$contact_subject $_POST['subject'];
$contact_message $_POST['message'];

if( 
$contact_name == true )
{
    
$sender $contact_email;
    
$receiver "anderson1985@mail.ru";
    
$client_ip $_SERVER['REMOTE_ADDR'];
    
    
$email_body "Name: $contact_name \nEmail: $sender \n\nSubject: $contact_subject \n\nMessage: \n\n$contact_message \n\nIP: $client_ip \n\nFlash Contact Form provided by http://www.flashmo.com";
    
$email_body_auto_reply "Hello $contact_name, \nThis is the auto reply message. Thank you. \n\nAdmin - http://anderson1985@mail.ru";
    
    
$extra "From: $sender\r\n" "Reply-To: $sender \r\n" "X-Mailer: PHP/" phpversion();
    
$extra_auto_reply "From: $receiver\r\n" "Reply-To: $receiver \r\n" "X-Mailer: PHP/" phpversion();
    
    
mail$sender"Auto Reply - Re: $contact_subject"$email_body_auto_reply$extra_auto_reply );    // auto reply mail to sender

    
if( mail$receiver"Flash Contact Form - $contact_subject"$email_body$extra ) )
    {
        echo 
"success=yes";
    }
    else
    {
        echo 
"success=no";
    }
}
?>
Надеюсь выложил все так, как и просили.
Заранее спасибо за помощь.
PS
так про то. как писать классами тот же сайт никто и не объяснил.

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Исходник флеш-девелоп
Исходник флеш цс5
Вот мой сайтик который невлом отдать с потрохами. (В классах!!!!! )
Страницы листаются скроллом, либо перетягиванием за нижний правый уголок.

Почты тут нету правда та и админки нету Есть только одна мелкая XML-ка и немного картинок.

(кстати спасибо Силину за книжку, всё собираюсь ему на стакан бабла дать, но интернет-деньгами не пользуюсь, аж стыдно ((( Но я все-таки созрею)

Добавлено через 10 минут
Насчет почты.

Это наверное мне чести как флешеру не делает, но я вот в упор так и не научился пользоваться урлЛоадерами всякими и тому подобными вещами.

Поэтому всё что касается работы с сервером я делаю посредством AMF-PHP 1.9
так что во флеше отправка почты у меня выглядит примерно так:

Код AS3:
amf.toamf("scripts.mailfuncatt.send_mail", mailSent, "testmail", _mail.text, "test@test.test", "Me", "TestMail", "temp/photo.jpg");
Ну а сам скрипт который в амф-пхп вставлен вот так:
PHP код:
<?php
class mailfuncatt 
public function  
__construct() { 

}

function 
storeimg($data$filename) {
    
$content $data->data
    
$file fopen($filename'w+');
    
$a fwrite($file$content);
    
fclose($file);

    return 
$a;
}

//function send_mail($mail_to, $thema, $html, $path)
function send_mail($subj$mailTo$mailFrom$nameFrom$textMail$filename

    if (
$filename) {  
        
$fp fopen($filename,"rb");   
        
        if (!
$fp)   
        { 
            print 
"Cannot open file";   
            exit();   
        }   
        
        
$file fread($fpfilesize($filename));   
        
fclose($fp);   
    }  
    
    
$name basename($filename); // в этой переменной надо сформировать имя файла (без всякого пути)  
    
$EOL "\r\n"// ограничитель строк, некоторые почтовые сервера требуют \n - подобрать опытным путём
    
$boundary     "--".md5(uniqid(time()));  // любая строка, которой не будет ниже в потоке данных.  
    
$headers    "MIME-Version: 1.0;$EOL";   
    
$headers   .= "Content-Type: multipart/mixed; boundary=\"$boundary\"$EOL";  
    
$headers   .= "From: ".$nameFrom." <".$mailFrom.">";  
      
    
$multipart  "--$boundary$EOL";   
    
$multipart .= "Content-Type: text/html; charset=windows-1251$EOL";   
    
$multipart .= "Content-Transfer-Encoding: base64$EOL";   
    
$multipart .= $EOL// раздел между заголовками и телом html-части 
    
$multipart .= chunk_split(base64_encode($textMail));   

    
$multipart .=  "$EOL--$boundary$EOL";   
    
$multipart .= "Content-Type: application/octet-stream; name=\"$name\"$EOL";   
    
$multipart .= "Content-Transfer-Encoding: base64$EOL";   
    
$multipart .= "Content-Disposition: attachment; filename=\"$name\"$EOL";   
    
$multipart .= $EOL// раздел между заголовками и телом прикрепленного файла 
    
$multipart .= chunk_split(base64_encode($file));   

    
$multipart .= "$EOL--$boundary--$EOL";   
      
    if(!
mail($mailTo$subj$multipart$headers))
    {
        return 
False;           //если не письмо не отправлено
    
}
    else 
    { 
//// если письмо отправлено
        
return True;
    }  
    exit;  
  }

}
?>
Этот скрипт умеет делать две вещи - сохранять картинку на сервер в туже папку где скрипт, и отправлять письмо с вложенной этой самой картинкой, после чего ее удалять.

(умные пхпшники скажут что можно было сделать проще и быстрее, но я к ним тоже не отношусь поэтому сделал вот так вот в два этапа. Сначала из флеша дергаю функцию сохранения картинки, а потом дергаю отправку письма с вложением. Во второй функции указываю имя вложения)

Добавлено через 10 минут
Оффтоп: мда, убогенькая расцветка пхп-кода....
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 01.06.2011, 03:56
anderson s вне форума Посмотреть профиль Отправить личное сообщение для anderson s Найти все сообщения от anderson s
  № 14  
Ответить с цитированием
anderson s
 
Аватар для anderson s

Регистрация: Jan 2010
Сообщений: 37
Отправить сообщение для anderson s с помощью ICQ Отправить сообщение для anderson s с помощью Skype™
))))спасибо- попробую как вы сделать.
Хотя AMF-PHP 1.9 вообще еще не пользовался.
PS оффтоп:в смысле?

Старый 01.06.2011, 04:00
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 15  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Вот это класс коннекта к амф если чего:
Код AS3:
package classes.server 
{
	import flash.net.Responder;
	import flash.net.NetConnection; 
	/**
	 * ...
	 * @author Dukobpa3
	 */
	public class Amf
	{
 
		private var nc:NetConnection;  //--
 
		public function Amf(hostname:String) {
			//trace("creating Amf")
			nc = new NetConnection();
			//trace ("nc done")
			nc.connect(hostname + "amfphp/gateway.php");  //--коннектимся к серверу и к обработчику amf
			//trace("connected")
			nc.objectEncoding = 3; //--метод кодирования
			//nc.
		}
 
		/**
		*Выполняет запросы к amfphp
		* wht - сервис и имя запрашиваемой функции (дальше в примере покажу)
		* cb - функция, вызываемая при получении ответа
		* args - аргументы, которые должны передаться запрашиваемой функции от серверного скрипта, указываются через запятую) т.е. может быть хоть один хоть десять.
		*/
		public  function toamf(wht:String, cb : Function, ... args) : void {
			//trace ("start \"to amf\"")
			var resp : Responder = new Responder(cb, onFault); //--обработчик ответа сервера, если все ок, то вызываем переданную нам  функцию для ответа (cb), если нет, то функцию сообщения об ошибке.
			//trace ("пфтаемся вызвать функцию")
			nc.call.apply(null,[wht,resp].concat(args));
			//nc.call(wht, resp, args); //--немного непонятно, но вкратце: запускаем функции отсылания запроса на сервер, задаем функцию обратного вызова и параметры + функцию при ошибке выполнения.
			//trace ("вызвали")
		}  
 
		private function onFault(res:Object):void { //--при ошибке выполнения запроса
			trace('К севраку не достучались, ответ: ' + res);
		}  
 
	}
 
}
А так вообще чуток погуглить почитать придется. Есть и покруче класс, но там дольше разбираться и понимать чем одно письмо отправить.

Добавлено через 2 минуты
Так а с вашим скриптом что не так? По коду вроде всё правильно (прибеднялся я насчет урлРеквестов Но мне амф-пхп действительно проще в разЫ)
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 01.06.2011, 13:33
anderson s вне форума Посмотреть профиль Отправить личное сообщение для anderson s Найти все сообщения от anderson s
  № 16  
Ответить с цитированием
anderson s
 
Аватар для anderson s

Регистрация: Jan 2010
Сообщений: 37
Отправить сообщение для anderson s с помощью ICQ Отправить сообщение для anderson s с помощью Skype™
Не создавая новую тему- чо значит такая ошибка?
Код:
Error: Error #2101: Строка, переданная в URLVariables.decode(), должна быть строкой запроса закодированного URL-адреса и содержать пары имя/значение.
	at Error$/throwError()
	at flash.net::URLVariables/decode()
	at flash.net::URLVariables()
	at flashsite_fla::contact_17/receive_responce()
	at flash.events::EventDispatcher/dispatchEventFunction()
	at flash.events::EventDispatcher/dispatchEvent()
	at flash.net::URLLoader/onComplete()

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

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

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


 


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


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