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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.10.2011, 13:05
alex3dsflash вне форума Посмотреть профиль Отправить личное сообщение для alex3dsflash Найти все сообщения от alex3dsflash
  № 1  
Ответить с цитированием
alex3dsflash
[+1.3 30.09.11]
[+ 31.08.11]

Регистрация: Sep 2010
Сообщений: 95
По умолчанию Flash +xml+php (переменные:отпр/загр)

Вот такой вопрос.

на сервере лежит код
PHP:

PHP код:
 <?php 
 
if (isset($GLOBALS["HTTP_RAW_POST_DATA"])){
     
$xml $GLOBALS["HTTP_RAW_POST_DATA"];
     
$file fopen("users.xml","wb");
     
fwrite($file$xml);
     
fclose($file);
 } 
 
?>



есть тестовое приложение на флеше :

http://www.shlagbaum-service.ru/82/reg005.swf

Смысл вопроса в том, что под Оперой все работает.
А под мозилой - временами - то да то нет,
А под IE вообще не работает - грузятся параметры флеша из кэш, а не с сервера, и отправлять данные в php не получается.
Данные отсылаются в строковом формате и их ловить должна $xml
А потом флеш считывает users.xml по новой, и все отображается.
Можно ли решить вопрос на уровне html - встроить флеш в страничку и там что-нибудь прописать, или на уровне php ?
Если кто-нибудь знает в чем дело, или сталкивался с подобным, помогите советом пожалуйста.
Вот запрос к php :
PHP:
var request:URLRequest = new URLRequest("http://www.shlagbaum-service.ru/82/users.php"+"?"+rnd);


где rnd - это цифры - каждый раз разные (переменная времени)

вот код программы:

Код AS3:
//------- Импорт классов -----------
import flash.events.MouseEvent;
import flash.display.*; 
import flash.net.URLRequest; 
import flash.events.Event;
import flash.display.DisplayObject;
import flash.events.*;
 
import flash.net.navigateToURL;
import flash.net.URLRequest;
import flash.net.URLVariables;
import flash.net.URLLoader;
//----------------------------------
 
//***********************
var Name_:String="";///**
var Passw_:String="";//**
var Us_id:int=-1;       //**
//***********************
 
 
////////////////////////////////////////////////////////////////////////////////////////////
 
//--------------------- Переменные для загрузки xml и операций с ним -------------------------------------
var File_Name:String ; //строковая переменная - имя загружаемого файла
var myXML:XML= new XML();  // наш объект xml
var xmlList:XMLList;       // сие преобразует тему в лист (листинговый формат xml ориентированый на теги)
var Nomer_swf:int;  // номер позиции в листинге тегов  pic
 
var Num_Stroka:int=0; // номер текущей загружаемой SWF-ки
//------------------------------------------------------------------------------------------
 
 
//############################################################################################3
var rnd:int = new Date().getTime();
trace("rnd==="+rnd);
 
 
 
 
//==========================   ЗАГРУЖАЕМ XML  =======================================================
var XML_urlLoader:URLLoader = new URLLoader(); //новый лоадер для XML
var XML_urlRequest:URLRequest = new URLRequest("http://www.shlagbaum-service.ru/82/users.xml"+"?"+rnd); // имя файла  (URLRequest - урл запрос) то есть запрос на такой-то файл по такому-то адресу
//============================================================================================
 
 
 
 
 
 
 
var User_v_seti:int=0; //если совпало с xml то   User_v_seti=1
Exit_mc.visible=false;
 
 
var Mess_:String="";
 
//===========================================ВХОД============================================================
Pan_vhod.visible=false;Vhod_mc_OK.visible=false; Vhod_mc_texttt.visible=false; Name.visible=false; Passw.visible=false;
Vhod_mc.addEventListener(MouseEvent.MOUSE_DOWN,Vhod_F); function Vhod_F(event:MouseEvent){
Pan_vhod.visible=true;Vhod_mc_OK.visible=true;Vhod_mc_texttt.visible=true;Name.visible=true;Passw.visible=true;
}
Vhod_mc_OK.addEventListener(MouseEvent.MOUSE_DOWN,Vhod_mc_OK_F); function Vhod_mc_OK_F(event:MouseEvent){
 
rnd = new Date().getTime();//###############
 
Name_=Name.text;
Passw_=Passw.text;
Load_Private();
 
 
 
}
 
function Load_Private(){rnd = new Date().getTime();//###############
XML_urlLoader.load (XML_urlRequest);  // загружаем XML ( объект ЛОАДЕР  )
XML_urlLoader.addEventListener (Event.COMPLETE,fileLoaded);//
 
 
}
 
 
 
 
 
Exit_mc.addEventListener(MouseEvent.MOUSE_DOWN,Exit_mc_F); function Exit_mc_F(event:MouseEvent){
Registr_mc.visible=true;Vhod_mc.visible=true;Exit_mc.visible=false;
Name_="";
Passw_="";
Name.text="";
Passw.text="";
Name_regg.text="";
Passw_regg.text="";
Us_id=-1;
User_v_seti=0;
BLOG.text="???"
Mess_="";
trace("Us_id  = "+Us_id);
}
//==================================== ===================================
 
 
 
 
//===========================================РЕГИСТРАЦИЯ============================================================
Pan_reg.visible=false;Reg_mc_texttt.visible=false; Name_regg.visible=false; Passw_regg.visible=false; Town_regg.visible=false; Registr_mc_OK.visible=false;
Registr_mc.addEventListener(MouseEvent.MOUSE_DOWN,Registr_F); function Registr_F(event:MouseEvent){
Pan_reg.visible=true;Reg_mc_texttt.visible=true; Name_regg.visible=true; Passw_regg.visible=true; Town_regg.visible=true; Registr_mc_OK.visible=true;
}
Registr_mc_OK.addEventListener(MouseEvent.MOUSE_DOWN,Registr_mc_OK_F); function Registr_mc_OK_F(event:MouseEvent){
Pan_reg.visible=false;Reg_mc_texttt.visible=false; Name_regg.visible=false; Passw_regg.visible=false; Town_regg.visible=false; Registr_mc_OK.visible=false;
Registr();
Pan_vhod.visible=false;Vhod_mc_OK.visible=false; Vhod_mc_texttt.visible=false; Name.visible=false; Passw.visible=false;
}
 
function Registr(){rnd = new Date().getTime();//###############
 
	if(Name_regg.text !="" && Passw_regg.text !="" ){
Name_=Name.text;
Passw_=Passw.text;
sendData();
	}
 
}
//==================================== ===================================
 
 
 
 
var i:int;
 
//-------------------------------------------------------------------------
function fileLoaded(event:Event){ // её вызывает объект ЛОАДЕР
var loader_xxx:URLLoader = event.target as URLLoader;// темповый объект загрузки 
myXML.ignoreWhitespace = true; // игнорируем пробелы
myXML = XML(loader_xxx.data);  // вообще, data - это то что прицепилось к лоадеру, то е сть xml загружена!
xmlList = myXML.child("user");  // здесь мы типа говорим, что рассматриваем теги  :  pic
rnd = new Date().getTime();//###############
//trace("namee 0 "+xmlList[0].namee);
//trace("nnn xmlList  = "+xmlList.length());
 
for(i=0; i<=xmlList.length()-1; i++){
if ( xmlList[i].namee == Name_ && xmlList[i].passwordd == Passw_ ) {
Us_id=i//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!;
User_v_seti=1;
Pan_vhod.visible=false;Vhod_mc_OK.visible=false;Vhod_mc_texttt.visible=false;Name.visible=false;Passw.visible=false;Vhod_mc.visible=false;
Exit_mc.visible=true;
Registr_mc.visible=false;
 
myXML.user.mess[Us_id]
BLOG.text=myXML.user.mess[Us_id];
}//else{User_v_seti=0;}
}
trace("Us_id  = "+Us_id);
//trace("User_v_seti  = "+User_v_seti);
 
}
//-------------------------------------------------------------------------
 
//=============================== загрузили XML ... ====================================================
 
 
 
 
 
 
 
 
 
 
 
 
 
 
function sendData ():void {
    Name_=Name_regg.text;
    Passw_=Passw_regg.text;
// Создаем новый xml код с данными юзверя
	var newItem:XML = XML("<user><namee>" + Name_ + "</namee><passwordd>" + Passw_ + "</passwordd><mess>" + Mess_ + "</mess></user>");
	// Добавляем новый xml код к оригинальному xml коду 'myXML'
	myXML.appendChild (newItem);
	// Создаем новый запрос для php файла
 
	rnd = new Date().getTime();
 
	var request:URLRequest = new URLRequest("http://www.shlagbaum-service.ru/82/users.php"+"?"+rnd);
	request.data = myXML;
	request.contentType = "text/xml";
	request.method = URLRequestMethod.POST;
	// Посылаем xml данные в php
	var loader:URLLoader = new URLLoader(  );
	loader.load ( request );
	loader.addEventListener ( Event.COMPLETE, loaderDone );
	trace(myXML.toXMLString());
}
 
 
function loaderDone (evt:Event):void {
rnd = new Date().getTime();
 
Name.text="";
Passw.text="";
Name_regg.text="";
Passw_regg.text="";
 
 
    //Name_="";
    //Passw_="";
XML_urlLoader.load (XML_urlRequest);  // загружаем XML ( объект ЛОАДЕР  )
XML_urlLoader.addEventListener (Event.COMPLETE,fileLoaded);//
}
__________________
Чем больше вероятностей, тем меньше их сумма.

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

Регистрация: May 2010
Сообщений: 543
Код не смог дочитать, у меня стали вытекать глаза.

Чтобы ответ не закэшировал fp добавляйте случайный параметр (что вы вроде бы и делаете) или используйте метод POST.
Чтобы не было кэша в браузере - читстите кэш браузера. Вот.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)

Старый 05.10.2011, 13:11
alex3dsflash вне форума Посмотреть профиль Отправить личное сообщение для alex3dsflash Найти все сообщения от alex3dsflash
  № 3  
Ответить с цитированием
alex3dsflash
[+1.3 30.09.11]
[+ 31.08.11]

Регистрация: Sep 2010
Сообщений: 95
Помогите пожалуйста решить проблему загрузки/отправки переменных, я уже третьи сутки бьюсь - не могу ни чего сделать, ищу тут же в форуме варианты решений - не могу найти приемлемое.
Хотя тут благодарить наверное не принято, но я за помощь хотел-бы не остаться в долгу. Могу предложить полет на параплане. Или ужин в ресторане.
Спасибо огромное всем кто откликнется!

Добавлено через 3 минуты
Метод POST использую.

Код AS3:
var request:URLRequest = new URLRequest("http://www.shlagbaum-service.ru/82/users.php"+"?"+rnd);
request.data = myXML;
request.contentType = "text/xml";
request.method = URLRequestMethod.POST;
но не полмогает. А как кэш чистить?
__________________
Чем больше вероятностей, тем меньше их сумма.

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

Регистрация: May 2010
Сообщений: 543
Код AS3:
var customRequest:URLRequest = new URLRequest("http://mysite.com/");
var requestParams:URLVariables = new URLVariables();
 
requestParams['id'] = 1;
requestParams['param1'] = 2;
requestParams['param3'] = 3;
requestParams['rnd'] = new Date().getTime();
 
customRequest.data = requestParams;
 
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
urlLoader.addEventListener(Event.COMPLETE, _onAnswer);
urlLoader.load(customRequest);
 
.................
 
private function _onAnswer(e:Event){
       var loader:URLLoader = URLLoader(urlLoader);
       var data:XML = new XML(loader.data);
       trace(data);
}
Может как-то так?

upd: Ой.. перечитал первый пост. Нам нужно отправить xml или получить? Судя по php - получить... Хотя в принципе моей писанины хватит, чтобы и отправить, немножко подредактируйте.
__________________
Вы грабите бедных людей. Парень со свирелью накажет вас. Хонгильдон (с)


Последний раз редактировалось carrotoff; 05.10.2011 в 13:42.
Старый 05.10.2011, 16:49
alex3dsflash вне форума Посмотреть профиль Отправить личное сообщение для alex3dsflash Найти все сообщения от alex3dsflash
  № 5  
Ответить с цитированием
alex3dsflash
[+1.3 30.09.11]
[+ 31.08.11]

Регистрация: Sep 2010
Сообщений: 95
Спасибо, буду пробовать.
__________________
Чем больше вероятностей, тем меньше их сумма.

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

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

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


 


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


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