Просмотр полной версии : помогите получить данные из пхп
имеется скрипт такого рода находящися во флешке которая грузиться в файле test.php
var my_lv:LoadVars = new LoadVars();
function showtext (fileName) {
my_lv.load(fileName, my_lv);
my_lv.onData = function(src:String) {
if (src == undefined) {
trace("Ошибка загрузки данных.");
return;
}
lv_fun(src);
};
lv_fun = function (src) {
if (src = "File Already Existed"){
uploadButn.enabled = false;
}
if(src = "Press Upload"){
uploadButn.enabled = true;
}
radl2 = src;
};
}
showtext("http://домен.ру/sup/is.php?fname="+fileRef.name);
где radl2 - текстовое динамическое поле, отображает значение полученное путем запроса showtext.
сделал скрипт, запустил, проверил, все нормально...
после нескольких попыток замечаю что он не грузит результат запроса с "http://домен.ру/sup/is.php?fname="+fileRef.name а берет данные вроде как из кеша...
как быть, что посоветуете???
мб, просто страничка именно из кеша грузится
+ не там вопрос задали, да еше и правило нарушили
firelord
01.02.2007, 15:53
а просто рандомный параметр ему в URL подсовывать не пробовали? классическая техника... типа:
showtext("http://домен.ру/sup/is.php?fname="+fileRef.name+"&r="+Math.random()*100000);
Вы читали правила раздела?
Вы читали правила раздела?
извеняюсь, но я читал их еще когда регистрировался, но долго отсутствовал на сайте, можно узнать что я нарушил????
Я говорю о правилах раздела, их не показывают при регистрации, их можно увидить в Важных топиках этого раздела
Так же перед тем как зайти в раздел, в кратком описании есть ссылка 16413
пернес в раздел для начинающих, первое и последнее устное предупреждение.
1. Выбрали не тот раздел,
2. Не оформили код, как полагается,
3. Создали дубль-тему.
1. Выбрали не тот раздел,
2. Не оформили код, как полагается,
3. Создали дубль-тему.
давайте попорядку...
1. каков раздел должен был выбрать по Вашему мнению???
2. согласен, исправлюсь
3. где дубль-тема???
Должен быть - раздел для новичков, ваш топик не имеет никакого отношения к профессионалам.
вы еще не исправились
черт знает.
Господи ты мой, оформлять код нужно тегами а не [html] неужели так трудно прочесть правила, где все разьясняется?=))))
во первых почему для новичков если тут вопрос о возможном кешировании пхп запросов флешем...
а во вторых я так и не понял насчет дублирования темы...
и правила только что прочитал снова и фак тоже
в чем моя проблема????
тут помощь предложат или только хаить будут???
во первых почему для новичков если тут вопрос о возможном кешировании пхп запросов флешем...
Потому что в разделе для профи пишут профи.
тут помощь предложат или только хаить будут???
на первой странице в начале топика есть можно посмотреть третий пост.
Автор ответа совершенно прав, это нормальная практика.
+ К тому если бы вы перед публикацией подумали, то могли бы понять, что даже если вы профи вам нужно постится не в разделе ActionScript а в Flash и Другие Технологии, где как раз таки обсуждаются вопросы связки с серверами\оболочками, неужели так сложно прочесть описания форумов, они не занимают даже страницы печатного текста, по моему это нулевая нагрузка.
я извеняюсь, а модератор пробежался взглядом по коду прежде чем переместить тему???
ситуация такова - готовлю систему управляющую процессом от поступления заявки до получения готового продукта. почти все готово последний ньюанс - во флеше необходимо отправить файл на производство, при выборе файла формируется запрос на сервер(ни страничка ни флеш не перезагружаются) с проверкой наличия такого файла, если файла нет активизируется кнопка отправки и файл отправляется опятьже не перезагружая ни страничку ни флеш.
проблема получить динамическиподгружаеммые данные путем запроса через my_lv.load(fileName, my_lv); не перезагружая ни флеш ни страничку.
повторяю. вы как супер гуру флэша, способы ознакомится с третьим постов в данном топике и сказать мне работает или нет.
далее раз вы такой профи, вы можете ответить кэшируются файлы или нет, а не "может быть", можно же отследить через файр вол или HTTP трейсер откуда пришли данные от сервера или кеша.
и если вы такой гений, почему бы вам не прочитать про все методы класса LoadVars и понять что без перегрузки все очень легко делается?
а просто рандомный параметр ему в URL подсовывать не пробовали? классическая техника... типа:
showtext("http://домен.ру/sup/is.php?fname="+fileRef.name+"&r="+Math.random()*100000);
ситуация не исправилась, даю весь код с заменой доменного имени
var my_lv = 0;
var my_lv:LoadVars = new LoadVars();
var src = 0;
var fileName = 0;
function showtext (fileName) {
my_lv.load(fileName, my_lv);
my_lv.onData = function(src:String) {
if (src == undefined) {
trace("Ошибка загрузки данных.");
return;
}
lv_fun(src);
};
lv_fun = function (src) {
if (src = "File Already Existed"){
uploadButn.enabled = false;
}
if(src = "Press Upload"){
uploadButn.enabled = true;
}
radl2 = src;
};
}
_root.radl2 = "status message"
//import the FileReference Object
import flash.net.FileReference;
//initial settings - since no upload file type selet yet user cannot upload a file
uploadButn.enabled = false;
if (fileRef.name != ''){
browseButn.enabled = true;
fileDescription = "Images";
fileExtension = "*.jpg; *.jpeg; *.rar; *.zip";
reDrawPB ("progressBar", 23, 44);
}
else {
browseButn.enabled = false;
}
//create a new FileReference object
var fileRef:FileReference = new FileReference();
//create a listener object for FileReference events
var fileRefListener:Object = new Object();
//create a listener object for comboBox events
var myComBoxListener:Object = new Object();
var isDefault:Boolean = false;
//a small function to redraw (reset) the progress bar
function reDrawPB (pb, xCor, yCor) {
_root.destroyObject(pb);
_root.createObject("ProgressBar",pb,0);
_root.progressBar.move(xCor,yCor);
}
//===================== COMBO BOX EVENT HANDLER =====================//
myComBoxListener.change = function(obj) {
status_txt.vPosition = status_txt.maxVPosition;
if (isDefault == true) {
//if user select the file type option it will clear the text area
status_txt.text="";
browseButn.enabled = false;
isDefault = false;
}else {
status_txt.text = fileDescription + ' ' + '('+fileExtension+')'+'\n';
// browseButn.enabled = true;
}
}
//apply object listener to the file reference object
fileType.addEventListener("change", myComBoxListener);
//===================== FILEREFERENCE EVENT HANDLER =====================//
//When user selects a file from the file-browsing dialog box,
//the onSelect() method is called, and passed a reference to the FileReference object
fileRefListener.onSelect = function (fileRef:FileReference):Void {
showtext("http://домен.ру/sup/is.php?fname="+fileRef.name+"&r="+Math.random()*100000);
browseButn.enabled = false;
// uploadButn.enabled = true;
reDrawPB("progressBar", 23, 44);
status_txt.vPosition = status_txt.maxVPosition;
status_txt.text += "File is selected to upload \n";
status_txt.vPosition = status_txt.maxVPosition;
status_txt.vPosition = status_txt.maxVPosition;
status_txt.text += "-------------------------------FILE DETAILS------------------------------- \n";
status_txt.vPosition = status_txt.maxVPosition;
// status_txt.text += "File Size: " + fileRef.size + " bytes" + '\n';
// status_txt.vPosition = status_txt.maxVPosition;
// status_txt.text += "File Type: " + fileRef.type + '\n';
// status_txt.vPosition = status_txt.maxVPosition;
status_txt.text += "File Name: " + fileRef.name + '\n';
status_txt.vPosition = status_txt.maxVPosition;
// status_txt.text += "Date Created: " + fileRef.creationDate + '\n';
// status_txt.vPosition = status_txt.maxVPosition;
status_txt.text += "Date Modified: " + fileRef.modificationDate + '\n';
status_txt.vPosition = status_txt.maxVPosition;
status_txt.text += "--------------------------------------------------------------------------------- \n";
}
//When user dismiss the file-browsing dialog box,
//the onCancel() method is called, and passed a reference to the FileReference object
fileRefListener.onCancel = function (fileRef:FileReference):Void {
status_txt.vPosition = status_txt.maxVPosition;
status_txt.text +="User terminated file upload. \n";
}
//When the file upload/download process started,
//the onOpen() method is called, and passed a reference to the FileReference object
fileRefListener.onOpen = function (fileRef:FileReference):Void {
status_txt.vPosition = status_txt.maxVPosition;
status_txt.text +="Opening file " + fileRef.name + '\n';
}
//The onProgress() method is called periodically during the file upload operation
fileRefListener.onProgress = function (fileRef:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
//setting the status bar function
progressBar.mode = "manual";
progressBar.setProgress(bytesLoaded, bytesTotal);
}
//When the file upload/download operation is successfully complete,
//the onComplete() method is called, and passed a reference to the FileReference object
fileRefListener.onComplete = function (fileRef:FileReference):Void {
status_txt.vPosition = status_txt.maxVPosition;
status_txt.text += "The '"+fileRef.name + "' has been uploaded.\n";
//upload is now complete, disable the upload & browse button
uploadButn.enabled = false;
}
//********************************* ERROR EVENT HANDLING *********************************//
//This method will be called if and only if an upload fails because of an HTTP error
fileRefListener.onHTTPError = function (fileRef:FileReference, error:Number) {
status_txt.vPosition = status_txt.maxVPosition;
status_txt.text +="HTTP error: with " + fileRef.name + " :error #" + error + '\n';
}
//This method will be called if and only if a file input/output error occur
fileRefListener.onIOError = function (fileRef:FileReference) {
status_txt.vPosition = status_txt.maxVPosition;
status_txt.text +="HTTP error: with " + fileRef.name + '\n';
}
//This method will be called if and only if an upload fails because of a security error
//9 out of 10 time this error occus is because of the user Flash8 player security settings
fileRefListener.onSecurityError = function (fileRef:FileReference, errorString:String) {
status_txt.vPosition = status_txt.maxVPosition;
status_txt.text +="Security error: with " + fileRef.name + " : " + errorString + '\n';
}
//****************************************************************************************//
//attach Listener to the FileReference Object
fileRef.addListener(fileRefListener);
//button event for the browse button
browseButn.clickHandler = function () {
//The browse function is the key, coz it displays a file-browsing dialog box
//in which the user can select a local file to upload
fileRef.browse([{description: fileDescription, extension: fileExtension}]);
}
//Button event for the upload button
uploadButn.clickHandler = function () {
status_txt.vPosition = status_txt.maxVPosition;
status_txt.text +="Attempting to upload " + fileRef.name + '\n';
//upload the file to the PHP script on the server
//put your domain in the upload() method
fileRef.upload("http://домен.ру/sup/upload.php");
// status_txt.vPosition = status_txt.maxVPosition;
}
//}
и даю скрипт от is.php
<?php
$uploaddir = "d:\\temp\\files\\";
if(file_exists("$uploaddir/$fname")){
$res = "File already existed";
}else{
$res = "Press Upload";
}
echo $res;
?>
Потому что в разделе для профи пишут профи.
на первой странице в начале топика есть можно посмотреть третий пост.
Автор ответа совершенно прав, это нормальная практика.
+ К тому если бы вы перед публикацией подумали, то могли бы понять, что даже если вы профи вам нужно постится не в разделе ActionScript а в Flash и Другие Технологии, где как раз таки обсуждаются вопросы связки с серверами\оболочками, неужели так сложно прочесть описания форумов, они не занимают даже страницы печатного текста, по моему это нулевая нагрузка.
переменная с именем файла тоже добаляет разнообразия в запрос но это не помогло, так же как и подстановка рандомного числа..
вопрос гораздо глубже начинающих, и мне не понятно Ваше несогласие с этим
данные точно кешируются?
после отправки файла выходит на все файлы один результ - Press Upload
хотя точно файлы на сервере я вижу и при запросе непосредственно из строки браузера а не флеша я получаю другой ответ
если перепишете код в АС2 я в нем разберусь, в ас1 мне влом копатся.
а вопрос по любому не подходит в категорию ActionScript для Профессионалов, я уже сказал для интеграции с сервером есть специальный раздел, но туда попадают только те кто соблюдает правила. форума. так то =)
а исходя из чего Вы решили что это код АС1???
АС2 код пишется на чистых классах.
может эта проблема и возникла из-за соединения скриптов из АС1(получение результата проверки наличия файла) и АС2(форма выбора файла и загрузки его на сервер)
3. где дубль-тема???
Удалена модератором.
может эта проблема и возникла из-за соединения скриптов из АС1(получение результата проверки наличия файла) и АС2(форма выбора файла и загрузки его на сервер)
У вас нету нигде в коде ActionScript 2.0
У вас нету нигде в коде ActionScript 2.0
я конечно не гуру и не спец, учусь на личной практике, и методом тыка... :)
но вот такой момент(работаю в 8 флеше) - если в настройках паблиша ставлю не ас2 а ас1 то у меня флешка не работает... меня это и натолкнуло на мысль что это именно ас2
просмотрел логи апача - интересный момент, апач получает запрос и именно с тем именем файла какой нужен, почему же он не использует ответ в качестве отображаемой переменной, может проблема не в кешировании пхп ответа а в кешировании переменной которая потом выводится в статусе - radl2, либо требуется сбросить както my_lv:LoadVars = new LoadVars();
но я только не давно с флешом, до этого лишь на пхп писал, может кто подскажет?
Удалена модератором.
я извеняюсь за нелепость, но создавал одну лишь тему, а дубль видать всплыл когда модератор переносил тему в другой топик
23Ton
вчера примерно написал что вы писали на 1 стр
все работает даже без ?random=
видимо дело в настройках сервера или броузера
23Ton
вчера примерно написал что вы писали на 1 стр
все работает даже без ?random=
видимо дело в настройках сервера или броузера
а пробовали сделать аплоуд файла из этой формы?
именно после аплоуда файла у меня перестает принимать нормально данные ответа
пробовал и эксплорером и файрфоксом, и с разных компов и чистил кеш в браузерах.
а что может быть с настройками сервера???
хм, да точно он запоминает только тот файл который был первоначально
даже если запусить флеш что то подгрузить
потом ручкаме на сервере удалить\заменить файл
снова выполнить что то на флеш, то он будет юзать старый
не знаю как это так :) но это точно не флеш кеширует
однако если флеш перезапустить то все ок
видимо как то сервер открывает соединение 1 раз для флеш
хотя точно не могу сказать тут я не спец
а что модератор скажет???
может вернуть тему в назначеный топик???
однако если флеш перезапустить то все ок
видимо как то сервер открывает соединение 1 раз для флеш
хотя точно не могу сказать тут я не спец
а можно поинтересоваться как вы флеш перезапускаете???
я запускаю из флеш редактора testmovie (ctrl+enter) тестирую, потом выгружаю редактор и запускаю снова - запрос не проходит по новой а подгружает старые данные
и еще один момент, запустил пару раз флешку из браузера и сразу посмотрел логи апача
апач запрос принял и дал ответ а флешка в браузере пишет что статус запроса(ожидание ответа от domain.ru)... почему так???
еще один момент, нормально дает ответ или нет он всегда обращается еще и к файлу crossdomain.xml в корне сайта
нет я тестил все на сервере
просто F5 нажимал и все работало
уже с изменениями без кэша
да всегда обращается к crossdomain.xml
это во всех книгах описано почему
нет я тестил все на сервере
просто F5 нажимал и все работало
уже с изменениями без кэша
да всегда обращается к crossdomain.xml
это во всех книгах описано почему
уже нашел, создал этот файл с разрешением доступа всем хостам
нипомогает...
так у тебя заработало или нет???
у меня после первой отсылки все равно пишет что файла нет и можно аплодить
может кто знает другой способ отсылки запроса и получения переменной из пхп???
все работает отлично но до первой отправки файла, после чего выдает последнепринятое значение.
может пробема в отправке файла???
может не так отправляю???
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.