Просмотр полной версии : Сохранение XML
Мне надо сохранить обьект типа XML на жесткий диск, но не через оболочку - тоесть чтобы потом его можно было опубликовать на сайте. Знаю что функция SaveAndLoad сохраняет, но как я понял в браузер, т.е. надо публиковать в хтмл, но вот как сохранить этот хмл в папку на сервере, допустим "xml/data.xml"? Или для этого нужно знать ещё и php?
это вы где saveAndLoad нашли? знаю только sendAndLoad, передает ваш xml скрипту и грузит ответ, с помощью нее (или проще send) и скрипта (например php) можете сохранять на сервер
Alkaz, вы правы sendAndLoad, опечатка. Можно линк на пример, а то я впервые этим занимаюсь. Тут на форуме когда-то такое видел, давно, но теперь даже поиском найти не могу(( Буду очень благодарен.
var login_str:String = "<login username=\""+username_txt.text+"\" password=\""+password_txt.text+"\" />";
var my_xml:XML = new XML(login_str);
var myLoginReply_xml:XML = new XML();
myLoginReply_xml.ignoreWhite = true;
myLoginReply_xml.onLoad = myOnLoad;
my_xml.sendAndLoad("http://www.flash-mx.com/mm/login_xml.cfm", myLoginReply_xml);
function myOnLoad(success:Boolean) {
if (success) {
if ((myLoginReply_xml.firstChild.nodeName == "packet") &&
(myLoginReply_xml.firstChild.attributes.success == "true")) {
gotoAndStop("loggedIn");
} else {
gotoAndStop("loginFailed");
}
} else {
gotoAndStop("connectionFailed");
}
}
Пример из хелпа я тоже видел. Я во флеше уже немного понимаю, а меня интересует как должен выглядеть php файл, который не проверяет пароль, а сохраняеет данные переданные флешем на сервер.
Ну вот как-то так:
var myXML:XML = "<root><test>someText</test></root>";
var way:String = "http://somePath/serv.php";
var send:LoadVars = new LoadVars();
var load:LoadVars = new LoadVars();
send.myDataSend = myXML;
send.sendAndLoad(way, load);
load.onLoad = function(){
trace(load.serverResponse);
}
serv.php :
<?
if(isset($_POST["myDataSend"]))
{
$str=$_POST["myDataSend"];
$p=fopen("myXml.xml","w");
$s= $str;
echo "serverResponse=$str";
fputs($p,$s);
fclose($p);
}
?>
Хотя, возможно, этот вариант слегка быдлокодерский с точки зрения пхп.
P.S.: Писал на «коленке», но работать должно.
возвращает undefined((( Как тут можно что-то сделать?
возвращает undefined((( Как тут можно что-то сделать?
Блин, дико извиняюсь, ошибка в строке
$str=$_POST["send1"];
Предыдущий пост исправил.
Спасибо, что помогаете, но тут опять возникает проблема. Я закинул пхп на свой сайт и переделал свф под ХМЛ, а не на loadVars, но почему то трейсит что-то совсем не то<SCRIPT language="JavaScript">var lgn='flashki'</SCRIPT> вот код свф - var login_str:String = "<root><test>someText</test></root>";
var myXML:XML = new XML(login_str);
var myDataSend:XML = new XML();
myDataSend.ignoreWhite = true;
myDataSend.onLoad = myOnLoad;
myXML.sendAndLoad("http://flashki.ho.ua/serv.php", myDataSend);
function myOnLoad(success:Boolean) {
if (success) {
trace(myDataSend.firstChild);
}
}
З.Ы. Хостинг поддерживает ПХП.
З.Ы.Ы. Упс. Помойму мой хостинг ХМЛ не читает((( Значит выход - делать из своего компа сервер? или мот кто бесплатный хост порекомендует с хмл и пхп?
З.Ы.Ы. Упс. Помойму мой хостинг ХМЛ не читает((( Значит выход - делать из своего компа сервер? или мот кто бесплатный хост порекомендует с хмл и пхп?
Т. е. вы хотите сказать, что у вас такой уникальный хостинг, который обычные текстовые файлы с определенно отформатированным содержимым не переваривает?
... но почему то трейсит что-то совсем не то
Что именно трейсит?
__etc, ну я не знаю, т.к. нигде не нашол что хостинг поддерживает ХМЛ. У меня ж бесплатный хостинг.
Obi, как я уже говорил, изменил код под ХМЛ, а вместо трейса serverResponses я трейсю содержимое первого дочернего узла ХМЛ. Но трейсит что-то не то - <SCRIPT language="JavaScript">var lgn='flashki'</SCRIPT>
попробуйте изменить в пхп файле эти строки:
if(isset($_POST["myDataSend"]))
{
$str=$_POST["myDataSend"];
на
if(isset($_POST))
{
$str=$_POST;
возвращает serverResponse=ArrayНа серве создается новый хмл с текстом Array.
возвращает serverResponse=ArrayНа серве создается новый хмл с текстом Array.
Блин, ну во-первых, от сервера вам валидный хмл придти не может, сервер отправляет вам скорее всего что-то типа:
serverResponse=<root><test>someText</test></root>
Соответственно, чтобы пришел валидный хмл, нужно строку
echo "serverResponse=$str";
заменить на
echo "$str";
Тогда от сервера вам придет в точности то, что вы отправили.
От этого и пляшите дальше. Да и к тому-же, не трейсите firstChild — его всегда успеете, трейсите для начала полный ответ, чтобы видеть картину происходящего.
__etc, ну я не знаю, т.к. нигде не нашол что хостинг поддерживает ХМЛ. У меня ж бесплатный хостинг.[/CODE]
XML — это текстовый файл. И всё. Если хостинг поддерживает заливку файлов на сервер, то и XML, txt и вообще любые файлы тоже.
Obi, большое спасибо. Я в свф позорную ошибку допустил. И правда, мой хостинг поддерживает ХМЛ.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.