PDA

Просмотр полной версии : Проблема в заимодействии между Flash AS3 и PHP


forhaxed
24.06.2009, 15:08
немогу коорректно выполнить код, он посстоянно возращает одинковые значения, хотя значения которые возращаются при каждом запросе разные.
вот код: где ошибка?(

import com.hurlant.crypto.hash.MD5;
import com.hurlant.util.Hex;
import com.hurlant.util.Base64;


function Call(method:String,p1:String ="", p2:String ="",p3:String ="",p4:String ="",p5:String ="",p6:String ="") {
//if($sig==md5($method.$param1.$param2.$param3.$para m4.$param5.$param6."doforhaxed"))
var address_api:String = "http://api.ru/api.php";
var signature:String=method+p1+p2+p3+p4+p5+p6+"doforha xed";
var bytes:ByteArray = new ByteArray();
bytes.writeUTFBytes(signature);
bytes = new MD5().hash(bytes);

var sig:String=Hex.fromArray(bytes);

var request:URLRequest = new URLRequest(address_api);
var vars:URLVariables = new URLVariables();

trace("?method="+method+"&p1="+p1+"&p2="+p2+"&p3=" +p3+"&p4="+p4+"&p5="+p5+"&p6="+p6+"&sig="+sig);
request.contentType = "text/xml";
request.method = "GET";
var loader:URLLoader = new URLLoader();
vars.method=method;
vars.p1=p1;
vars.p2=p2;
vars.p3=p3;
vars.p4=p4;
vars.p5=p5;
vars.sig=sig;

request.data = vars;

loader.addEventListener(Event.COMPLETE, completeHandler);
loader.load(request);

}

function completeHandler(event:Event):void
{
var dataXML:XML = XML(event.target.data);
trace(dataXML.toXMLString());
event.target.removeEventListener(Event.COMPLETE, completeHandler);
event.target.close();
}

function Button1Click(event:MouseEvent):void
{


Call("getUptimeServer");

}


по идее должен возращать значения:
?method=getUptimeServer&p1=&p2=&p3=&p4=&p5=&p6=&si g=965830ad08b3d3a2fce485314ca19d2c
<response>
<val>1239856898</val>
</response>
через секунду:
?method=getUptimeServer&p1=&p2=&p3=&p4=&p5=&p6=&si g=965830ad08b3d3a2fce485314ca19d2c
<response>
<val>1239856899</val>
</response>
через секунду:
?method=getUptimeServer&p1=&p2=&p3=&p4=&p5=&p6=&si g=965830ad08b3d3a2fce485314ca19d2c
<response>
<val>1239856900</val>
</response>

а на деле возращает:
?method=getUptimeServer&p1=&p2=&p3=&p4=&p5=&p6=&si g=965830ad08b3d3a2fce485314ca19d2c
<response>
<val>1239856898</val>
</response>
?method=getUptimeServer&p1=&p2=&p3=&p4=&p5=&p6=&si g=965830ad08b3d3a2fce485314ca19d2c
<response>
<val>1239856898</val>
</response>
?method=getUptimeServer&p1=&p2=&p3=&p4=&p5=&p6=&si g=965830ad08b3d3a2fce485314ca19d2c
<response>
<val>1239856898</val>
</response>

P.S. 2Администрация, зачем же так серьзно то? сразу клосить тему? дали бы мне знать я бы переименовал тему.

iNils
24.06.2009, 15:36
2Администрация, зачем же так серьзно то? сразу клосить тему? дали бы мне знать я бы переименовал тему.Правила надо читать.

dimarik
24.06.2009, 16:16
он посстоянно возращает одинковые значения, хотя значения которые возращаются при каждом запросе разные.

Вы читали свой вопрос? "одинаковые значения, хотя значения разные".

По сути: если Вы уверены, что на один и тот же запрос должны приходить разные ответы - то проблема на серверной стороне.

etc
24.06.2009, 18:38
Добавьте к запросу параметр с случайным значением.

AL.exe
24.06.2009, 21:48
Похоже, что кешируется просто. Добавляйте к запросу парметр с timestamp, например.

forhaxed
24.06.2009, 22:37
насчет кэширование вполне возможно, добавление параметра тайм-стамп не дало результата, так же пробывал добавлять random значения.
И никаких проблем нету в серверной части, через браузер все работает нормально.

Добавлено через 4 часа 32 минуты
исправил я проблемму:
vars.random=Math.random;

с итоге: каждый запрос уникален

dimarik
25.06.2009, 12:44
В итоге - проблемы на серверной стороне, как я ранее и указал.