Просмотр полной версии : можно ли через PHP зпгрузить в мув тест из файла *txt
значится так ... в кнопке в муве делаю вот это
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.
ЧТО В php И ЧТО В Flash пишеш не выложиш глянуть ? ато чтот невсеку никак (((
onData? И сам их ручками парсишь? Ужас.
Flash Remoting рулит.
son_of_war
13.03.2006, 07:07
Дело все в том, что операции по передаче данных по сети флэш выполняет асинхронно. Это из за того, что данные могут ходить по сети долго или вообще не придут в итоге. Когда придут данные возникает событие, в котором и надо их обрабатывать. То есть если ты пишешь в одной строке команду - запрос к внешнему скрипту и тут же пытаешься обрабатывать полученные данные - работать не будет, так как данные не пришли еще...
Как обрабатывать событие зависит от того под какую версию флэшплеера ты пишешь...
Если ты работаешь под 5, то тебе надо создать клип и в нем указать обработчик onClipEvent(data) и этому же клипу давать команду loadVariables
Если под 6 и выше, то можно оставить loadVariablesNum... как у тебя и указать обработчик _root.onData = function(){
}, где можно производить обработку данных
Опять же начиная с 6 версии появился отдельный объект для передачи данных, называется loadVars, если позволяет версия флэшплеера советую использовать его (кстати sendAndLoad - это как раз один из методов объекта loadVars)
блин слишком замароченно =// не разберусь походу ((( а если на прямки 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");
ок ... спасибо попробую... )
а как зделать чтоб это читалось не с кэша а с сервака ? чтото между кодами схожее есть только никак не допру
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);
В пхп пишешь
header("Pragma: no-cache");
подробнее почитай хелп по этой функции
так... стоп ) сами запутались и меня запутались ) кароче ситает из кэша в этом случае (когда читаю на прямки из *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 чтоб без лишнего нимора а на прямки но не из кэша
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");
примерно так, только разберись с именами переменных, которые ты отсылаешь
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.