itsukichang

フロントエンドが得意なエンジニア.ダーツと旅行とギターが好き

flashからphpへ値を送って,ページ遷移でそれを反映させるまとめメモ

インターンで東京に来てます.
もうすぐ終わりますが><
そこで,phpやらMySQLやら使って画像投稿サービスを作ってるんですが,Flashもちょっと絡めてるのでそこで調べた事のメモとか.

方法

方法は大きく分けて2つ.
phpが$_POSTで受け取るやり方.と,$_GETで受け取るやり方.

GETを使う

$_GETの方は単純.
test.phpとかいうファイルがあったら,送りたい値をクエリ文字列として付加して,URLRequestを生成.
navigateToURLで飛ばす.

  • AS側
var val:String = "hogehoge"; //送りたい文字列
var s:String = "test.php" + "?text=" + val;
var url:URLRequest = new URLRequest(s);
navigateToURL(url, "_self");
<?php
$text = $_GET['text'];
echo 'flashより'. $text;
?>
POSTを使う

GETを使ってやり取りすると,当然URLからデータが読み取れちゃうのでそれを避ける為のPOSTでやり取りする方法.
まず,phpのパスを指定したURLRequstを発行.HTTPフォーム送信メソッドのデフォルトはGETになっているので,POSTに変える為にmethodプロパティを変更.
URLVariablesという割と柔軟なクラスがあるのでこれを使って送りたい変数を格納.
それをURLRequestのdataプロパティに代入.
あとはnavigateToURLで飛ばす.

具体的なコードは以下

  • AS側
var req:URLRequest = new URLRequest("test.php");
var param:URLVariables = new URLVariables();
var val:String = "hogehoge"; //送りたい文字列
param.post1 = _val; //好きな名前と値を設定
req.method = URLRequestMethod.POST;
req.data = param;
navigateToURL(req, "_self");
<?php
$text = $_POST['post1'];
echo $text;
?>

DBとかちょっと扱えるようになったので,コンテンツ制作の幅が広がって楽しいです.
そのうち作ったの載せますね.