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

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

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

Регистрация: May 2013
Сообщений: 26
Question Не работает отправка на почту с других ПК

Реализована функция отправки сообщения на почту. На моем компе все работает, на других компах не работает. Сам php файл лежит на сервере. В чем проблема?

Код AS3:
package  
{
	/**
	 * ...
	 * @author 123
	 */
	import flash.display.*;
	import flash.events.*;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.net.URLVariables;
	import flash.text.*;
 
	public class SendMail extends Sprite
	{
		private var mailSpite:Sprite = new Sprite();
		private var sprite:Sprite = new Sprite();
		private var formatText1:TextFormat = new TextFormat();
		private var formatText2:TextFormat = new TextFormat();
		private var formatMenuScheme:TextFormat = new TextFormat();
		private var nextbutton:MiniCustomSimpleButton = new MiniCustomSimpleButton();
		private var nextButtonText:TextField = new TextField();
		private var infoText1:TextField = new TextField();
		private var infoText2:TextField = new TextField();
		private var infoTextFormat:TextFormat;
 
		public function SendMail() 
		{
			formatText1.font = "Tahoma";
			formatText1.size = 20;
			formatText1.color = 0x666666;
			formatText1.align = TextFormatAlign.JUSTIFY;
 
			formatText2.bold = true;
			formatText2.font = "Tahoma";
			formatText2.size = 16;
			formatText2.color = 0x666666;
 
			formatMenuScheme.bold = true;
			formatMenuScheme.font = "Tahoma";
			formatMenuScheme.size = 16;
			formatMenuScheme.color = 0x666666;
 
			infoTextFormat = new TextFormat();
			infoTextFormat.font = "Tahoma";
			infoTextFormat.size = 20;
			infoTextFormat.color = 0x666666;
 
			var windowFrame:Sprite = new Sprite();
			windowFrame.graphics.lineStyle(3, 0x999999);
			windowFrame.graphics.beginFill(0xFFFFFF, 1);
			windowFrame.graphics.drawRoundRect(250, 180, 540, 130, 15, 15);
			windowFrame.graphics.endFill();
 
			var text1:TextField = new TextField();
			text1.text = MainMenu.lang.SendMailText1;    //"Для завершения выполнения работы необходимо заполнить данные, которые будут отправлены преподавателю в виде отчета о выполнении лабораторной работы.";
			text1.autoSize = TextFieldAutoSize.LEFT;
			text1.x = 10;
			text1.y = 80;
			text1.setTextFormat(formatText1);
			text1.wordWrap = true;
			text1.width = 980;
 
			var text2:TextField = new TextField();
			text2.text = MainMenu.lang.SendMailText2;          //   "ФИО:";
			text2.autoSize = TextFieldAutoSize.LEFT;
			text2.x = 270;
			text2.y = 215;
			text2.setTextFormat(formatText2);
			text2.wordWrap = true;
			text2.width = 80;
			text2.height = 30;
 
			var text3:TextField = new TextField();
			text3.text = MainMenu.lang.SendMailText3;  //"Группа:";
			text3.autoSize = TextFieldAutoSize.LEFT;
			text3.x = 270;
			text3.y = 255;
			text3.setTextFormat(formatText2);
			text3.wordWrap = true;
			text3.width = 80;
			text3.height = 30;		
 
 
			infoText1.type = TextFieldType.INPUT;
			infoText1.border = true;
			infoText1.borderColor = 0xFF0000;
			infoText1.background = true;
			infoText1.backgroundColor = 0xCCCCCC;
			infoText1.restrict = "a-z A-Z а-я А-Я";
			infoText1.x = 350;
			infoText1.y = 210;
			infoText1.width = 400;
			infoText1.height = 30;
			infoText1.maxChars = 35;   // количество символов
			infoText1.defaultTextFormat = infoTextFormat;
 
			infoText2.type = TextFieldType.INPUT;
			infoText2.border = true;
			infoText2.borderColor = 0xFF0000;
			infoText2.background = true;
			infoText2.backgroundColor = 0xCCCCCC;
			infoText2.restrict = "a-z A-Z а-я А-Я 0-9";
			infoText2.x = 350;
			infoText2.y = 250;
			infoText2.width = 400;
			infoText2.height = 30;
			infoText2.maxChars = 35;   // количество символов
			infoText2.defaultTextFormat = infoTextFormat;
 
 
			nextbutton.x = 900;
			nextbutton.y = 1;
			nextbutton.visible = false;
 
			nextButtonText.text = MainMenu.lang.SendMailText4;    //"Отправить";
			nextButtonText.autoSize = TextFieldAutoSize.CENTER;
			nextButtonText.x = 920;
			nextButtonText.y = 10;
			nextButtonText.setTextFormat(formatMenuScheme);
			nextButtonText.mouseEnabled = false;  // отвечает за перекрытие - отключено (с. 607)			
			nextButtonText.visible = false;
 
 
 
			mailSpite.addChild(nextbutton);
			mailSpite.addChild(nextButtonText);
			mailSpite.addChild(windowFrame);
			mailSpite.addChild(text1);
			mailSpite.addChild(text2);
			mailSpite.addChild(text3);
			mailSpite.addChild(infoText1);
			mailSpite.addChild(infoText2);
			addChild(mailSpite);
 
			nextbutton.addEventListener (MouseEvent.CLICK, clickNextButton);
 
			infoText1.addEventListener(Event.ENTER_FRAME, vis);
			infoText2.addEventListener(Event.ENTER_FRAME, vis);
 
 
		}
 
		private function clickNextButton (e:MouseEvent):void {
			var url:String = "http://........../11/emailLR1.php";
			var request:URLRequest = new URLRequest(url);
			var v:URLVariables = new URLVariables();
			var urlLoader:URLLoader = new URLLoader();
			v.name = infoText1.text;     // 'Petya';
			v.message = infoText2.text;   //'hello';
			request.data = v;
			request.method = "POST";
			urlLoader.load(request);
 
			removeChildAt(0);
			sprite = new Sprite();
			var newMainMenuPage:MainMenu = new MainMenu();
			sprite.addChild(newMainMenuPage);
			addChild(sprite);
		}
 
		private function vis (e:Event):void {
			if(infoText1.text!="" && infoText2.text!="")
				{
					nextbutton.visible = true;
					nextButtonText.visible = true;
				} else { 
					nextbutton.visible = false;
					nextButtonText.visible = false;
				}
 
		}
 
	}
 
}

PHP код:
<?php 
header
('Content-Type: text/html; charset=utf-8'); 
 
$name =iconv("utf-8""cp1251"$_POST["name"] );
 
$message =iconv("utf-8""cp1251"$_POST["message"] ); 
  
 
mail("petya@mail.ru","ЛР №1 выполнена"
      
"Студент : $name\nГруппа : $message""Content-type:text/plane; Charset=windows-1251\r\n"); 
?>

Старый 19.06.2013, 00:09
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 2  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Подпишитесь на IOErrorEvent, SecurityErrorEvent в loader и скажите, с какой именно ошибкой не работает код. Или отладочный плеер поставьте. Скорее всего, securityError (нет crossdomain.xml), но могут быть и другие варианты.

Старый 19.06.2013, 00:32
TuMko вне форума Посмотреть профиль Отправить личное сообщение для TuMko Найти все сообщения от TuMko
  № 3  
Ответить с цитированием
TuMko

Регистрация: May 2013
Сообщений: 26
SecurityErrorEvent выдало следующее:

[SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048"]

IOErrorEvent ничего не выдал.

Старый 19.06.2013, 00:49
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 4  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Ага. crossdomain.xml нужен по адресу "http://........../crossodmain.xml" (в корне домена). В простейшем случае пойдет
Код:
<?xml version="1.0" ?>
<cross-domain-policy>
    <allow-access-from domain="*"/>
    <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
(доступ флешки с любого домена)

Для более сложных случаев читайте документацию.

Старый 19.06.2013, 01:49
TuMko вне форума Посмотреть профиль Отправить личное сообщение для TuMko Найти все сообщения от TuMko
  № 5  
Ответить с цитированием
TuMko

Регистрация: May 2013
Сообщений: 26
спасибо, завтра проверю, но есть подозрение, что на другом компе пхп файл даже не вызывается при обращении.

Старый 19.06.2013, 20:07
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 6  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
100% проблема из-за URLLoader'ов, URLRequest'ов и прочего
Решается подгрузкой кросдоменного файла, пример которого написал товарищ maxkar. Загружайте в самом начале программы с помощью
Код AS3:
 System.security.loadPolicyFile("http://..../pf.xml");
Цитата:
но есть подозрение, что на другом компе пхп файл даже не вызывается при обращении.
Все верно, пока не скормите ему кросдомейн - не будут работать URL реквесты

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

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

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


 


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


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