ActionScript3でサーバー上のXMLデータの更新をしたいのですが

どの様に行えばよいか分かりません。
※1.xml内の内容を変えるなどです。
もしくはできないのでしょうか?

やり方は、または良い方法をお教えいただけませんでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2008/04/13 12:36:06
  • 終了:2008/04/20 12:40:02

回答(3件)

id:makiton No.1

makiton回答回数23ベストアンサー獲得回数32008/04/13 14:22:14

ポイント27pt

私ならサーバ側にPHPなどで実装した更新用のスクリプトを置いて、それにActionScriptからデータを渡します。

手元に環境が無いので試していませんが、疑似コードです。

ActionScript

import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.net.URLVariables;
import flash.events.Event;

var request:URLRequest = new URLRequest('http://example.jp/write.php');
var data:URLVariables = new URLVariables();
data.hoge = '更新したいデータ';
data.fuga = 'データその2';
request.data = data;

var ua:URLLoader = new URLLoader(request);
ua.addEventListener(Event.COMPLETE, completeListener);
ua.load();

function completeListener(event:Event){
};

write.php


$nodes = simplexml_load_file('hoge.xml');
var_dump($nodes); //この内容によって、以下は書き変えてください

$nodes[0]->hoge = $_GET['hoge'];
$nodes[0]->fuga = $_GET['fuga'];

file_put_content('hoge.xml', $nodes->asXML);

<?xml version="1.0" encoding="UTF-8"?>
<rootnode>
    <node>
        <hoge>更新したいデータ</hoge>
        <fuga>データその2</fuga>
    </node>
    <node>
        <hoge></hoge>
        <fuga></fuga>
    </node>
</rootnode>

PHPのXML書き込み部分が非常にアヤシイですが、参考になれば幸いです。

flash.net.URLLoader (ActionScript 3.0)

【PHPウォッチ】第3回 PHP5でXMLサポートが大幅強化:ITpro

PHP: simplexml_load_file - Manual

id:makocan

ありがとうございます。

私のPHP送信のイメージはPHPの画面に遷移してしまうものかと思ってました!

ただ、サーバー側が処理もしてくれません。

ローカル環境で、SWFを実行しているためでしょうか?

2008/04/13 14:57:46
id:pahoo No.2

pahoo回答回数5960ベストアンサー獲得回数6332008/04/13 16:18:50

ポイント27pt

#1さんの回答に補足です。

  1. ActionScript側からは、更新したXMLオブジェクト全体をPHPにPOST渡しした方が良いでしょう。
  2. PHP側の受け取りはDOM XMLで、domxml_open_fileを利用します。(#1さんの回答のようにSimpleXML関数でも良いのですが、DOMでないと保存が面倒になるため)
  3. PHPでのXMLファイルへの書き出しはDOM::saveXMLメソッドを使いましょう。

参考サイト

id:makiton No.3

makiton回答回数23ベストアンサー獲得回数32008/04/13 17:45:03

ポイント26pt

>ただ、サーバー側が処理もしてくれません。

本当に処理をしていないのかどうか、問題の切り分けはされましたでしょうか。

例えば上記で示した例では、

http://example.jp/write.php?hoge=testhoge&fuga=testfuga

などとしてブラウザから直接アクセスして成功するようなら、ActionScriptに問題があることが分かります。

また開発中はPHPの設定などで、error_reporting = E_ALL, display_errors = Onにすると良いです。

スクリプト中でも設定できます。

error_reporting(E_ALL);
ini_set('display_errors', 'On');

まずはPHP側、ActionScript側どちらに問題があるかを確認すると良いと思います。

error_reporting

エラー処理およびログ記録関数

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

  • php+actionscript暗号化関連 ActionScript3でサーバー上のXMLデータの更新をしたいのです.. - 人力検索はてな PHP暗号化ガイド - japan.internet.com ActionScript 3.0で暗号化・復号化のメモ(2) ハッシュ関
「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません