PDA

Просмотр полной версии : можно ли через PHP зпгрузить в мув тест из файла *txt


3r0jan
12.03.2006, 20:17
значится так ... в кнопке в муве делаю вот это
submit = "braslet"
loadVariablesNum("db.php", 0);
str = DataAr
out2 = "";
my_arr = str.split("&");
for (p=Number(nomer)+1; p<max_nomer; p++) {
out2 += my_arr[p]+"&";
}
my_arr = my_arr[nomer].split(",");
my_arr0 = my_arr[0];
my_arr9 = my_arr[9];
нажимаю значит на неё отправляю переменную submit в PHP с кодом $filenameout = "$submit.txt";
$fp = fopen( $filenameout,"r");
$Data = fread($fp, 80000);
fclose( $fp );
print "DataAr=$Data"; ну и ожидал получить данные в мув и там уже существующим кодом их расщипить и забить в нужные окна как показанно в первом коде... в ответ получаю undefined... где не так зделал ? помогите а ?

serzhman
12.03.2006, 20:46
В PHP echo наверное надо писать. И вообще я пользуюсь sendAndLoad для передачи данных и их получения от PHP скрипта. Получаю данные на событие onData.

3r0jan
12.03.2006, 21:32
ЧТО В php И ЧТО В Flash пишеш не выложиш глянуть ? ато чтот невсеку никак (((

Antares
13.03.2006, 01:29
onData? И сам их ручками парсишь? Ужас.
Flash Remoting рулит.

son_of_war
13.03.2006, 07:07
Дело все в том, что операции по передаче данных по сети флэш выполняет асинхронно. Это из за того, что данные могут ходить по сети долго или вообще не придут в итоге. Когда придут данные возникает событие, в котором и надо их обрабатывать. То есть если ты пишешь в одной строке команду - запрос к внешнему скрипту и тут же пытаешься обрабатывать полученные данные - работать не будет, так как данные не пришли еще...

Как обрабатывать событие зависит от того под какую версию флэшплеера ты пишешь...

Если ты работаешь под 5, то тебе надо создать клип и в нем указать обработчик onClipEvent(data) и этому же клипу давать команду loadVariables
Если под 6 и выше, то можно оставить loadVariablesNum... как у тебя и указать обработчик _root.onData = function(){
}, где можно производить обработку данных
Опять же начиная с 6 версии появился отдельный объект для передачи данных, называется loadVars, если позволяет версия флэшплеера советую использовать его (кстати sendAndLoad - это как раз один из методов объекта loadVars)

3r0jan
13.03.2006, 19:57
блин слишком замароченно =// не разберусь походу ((( а если на прямки TXT читать с сервака ? ну тоесть сделать чтото типа проверки загружен файл или нет (у меня читает его из кэша а надо чтоб с сервера грузил из за этого и вся замута)

son_of_war
14.03.2006, 06:18
Все правильно, что кэширует, чтобы на кэшировал нужно специальные заголовки слать, опять таки из скрипта, вот попробуй так - из твоего же кода составлено:
var my_lv = new LoadVars();
my_lv.onLoad = function(success) {
if (success)
{
str = my_lv.DataAr;
out2 = "";
my_arr = str.split("&");
for (p=Number(nomer)+1; p<max_nomer; p++) {
out2 += my_arr[p]+"&";
}
my_arr = my_arr[nomer].split(",");
my_arr0 = my_arr[0];
my_arr9 = my_arr[9];
}
delete(my_lv);
}
my_lv.load("db.php");

3r0jan
14.03.2006, 16:53
ок ... спасибо попробую... )

3r0jan
14.03.2006, 18:40
а как зделать чтоб это читалось не с кэша а с сервака ? чтото между кодами схожее есть только никак не допру
var my_xml:XML = new XML();
var fname:String = submit+".txt";
my_xml.ignoreWhite = true;
my_xml.onData = function(str) {
my_arr = str.split("&");
for (p=Number(nomer)+1; p<max_nomer; p++) {
out2 += my_arr[p]+"&";
}
my_arr = my_arr[nomer].split(",");
my_arr0 = my_arr[0];
my_arr1 = my_arr[1];
my_arr2 = my_arr[2];
};
my_xml.load(fname);

__i
14.03.2006, 19:09
В пхп пишешь

header("Pragma: no-cache");

подробнее почитай хелп по этой функции

3r0jan
14.03.2006, 19:38
так... стоп ) сами запутались и меня запутались ) кароче ситает из кэша в этом случае (когда читаю на прямки из *txt)
var my_xml:XML = new XML();
var fname:String = submit+".txt";
my_xml.ignoreWhite = true;
my_xml.onData = function(str) {
out2 = "";
my_arr = str.split("&");
for (p=Number(nomer)+1; p<max_nomer; p++) {
out2 += my_arr[p]+"&";
}
my_arr = my_arr[nomer].split(",");
my_arr0 = my_arr[0];
my_arr1 = my_arr[1];
my_arr2 = my_arr[2];
my_arr3 = my_arr[3];};
my_xml.load(fname);
когда читаю этот же *txt
submit = "braslet"
loadVariablesNum("db.php", 0, "POST");
str = DataAr
my_arr = str.split("&");
for (p=Number(nomer)+1; p<max_nomer; p++) {
out2 += my_arr[p]+"&";
}
my_arr = my_arr[nomer].split(",");
my_arr0 = my_arr[0];
my_arr1 = my_arr[1];
my_arr2 = my_arr[2];
my_arr3 = my_arr[3];
через PHP $filenameout = "$submit.txt";
$fp = fopen( $filenameout,"r");
$Data = fread($fp, 80000);
fclose( $fp );
print "DataAr=$Data"; мне пишет undefined вот и хочу узнать что я в php зделал не так ! и хочу зделать чтоб читать *txt не через php чтоб без лишнего нимора а на прямки но не из кэша

3r0jan
15.03.2006, 18:41
и тишина (((

son_of_war
16.03.2006, 06:04
А зачем ты через XML.load читаешь простой текстовик, который не XML вовсе - читай через loadVars - я же тебе писал, только подключайся не к txt файлу а к скрипту php. Второй код выдает undefined потому, что он пытается данные обрабатывать когда они не пришли еще

var my_lv = new loadVars();
my_lv.onLoad = function(success) {
my_arr = my_lv.DataAr.split("&");
out2 = "";
for (p=Number(nomer)+1; p<max_nomer; p++) {
out2 += my_arr[p]+"&";
}
my_arr = my_arr[nomer].split(",");
my_arr0 = my_arr[0];
my_arr1 = my_arr[1];
my_arr2 = my_arr[2];
my_arr3 = my_arr[3];};
my_lv.load("db.php");

примерно так, только разберись с именами переменных, которые ты отсылаешь