- ベストアンサー
swfファイルでセッション情報を渡す方法
ゲームサイトのようにID,Passでログインし、swfで得られた点数をPHPなどに渡すものを作ろうと思っています。 Flash内だけの動的な値を渡すことはもちろんできるのですが、どのユーザーでログインしているかのセッション情報をFlashから渡すにはどうすればいいでしょうか。 よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
◆PHP側 <?php session_start(); /******** * ログインID:$_SESSION['s_id'] * ログインPW:$_SESSION['s_pw'] */ $URL = "abc.swf?sid={$_SESSION['s_id']}&spw={$_SESSION['s_pw']}&"; ?> <object ...> ・ ・ <param value="<?=$URL?>" ...> <embed src="<?=$URL?>" ...> </embed> </object> ◆Flash側 var s_id = _root.sid; // ログインID var s_pw = _root.spw; // ログインPW のようにして値をPHPから受け取れます。 ですが、GETですのでソースの確認などで データが見えてしまいます^^; 私の場合はセッションに保存するような大事なデータ ではなかったため上記のような方法を取りました。 ※PHPSESSID:session.nameの値 セキュリティを考えると 1.$_COOKIE['PHPSESSID']を上記のようにGETでPHPからFlashに渡す。 2.'sess_'+$_COOKIE['PHPSESSID'] でセッションファイルを特定しする。 3.LoadVarsでセッションファイルからデータを読み込む。 といった方法のほうがいいかもしれませんね。 ただ、試してはいないのでどれだけ実現できるかは分かりません^^; umioyoさんの参考になれば幸いです。
その他の回答 (2)
- papillon68
- ベストアンサー率61% (42/68)
セッションファイルを確認したところ次のように値が入っていました。 ※分かりやすいように各変数ごとに改行していますが、 実際は改行はなく続けて記録してあります。 --------------------------------- s_id|s:4:"abcd"; s_pw|s:4:"efgh"; s_time|i:1149758958; --------------------------------- となっていたので、 変数名|タイプ(s[文字列]、i[整数]):バイト数(タイプが文字列の場合):値; ということだと思います。 「|」が変数と値の詳細との区切り文字で 「;」が変数1つ分の区切り文字ということだと思います。 あとは、これの繰り返しです。
- papillon68
- ベストアンサー率61% (42/68)
umioyoさん、こんにちは。 Flashについてそれほど詳しくありません。 FlashとPHPの連携についてやったことがある程度です。 状況がうまく把握できないのですが、 セッション情報はPHP?Flash?どこでのものでしょうか。 PHPから受け取ったセッションIDを Flashで読み込み、それをPHPに返すということでしたら、 LoadVarsでできるんじゃないかな?と思います。
お礼
御回答ありがとうございます。 セッションはPHPによるセッションです。 (Flash間でセッションって保持できるんでしょうか?) LoadVarsは外部テキストという頭があるんですが、PHPのセッション変数など読み込めるんでしょうか。 具体的な方法などありましたら御教授願えればと思います。 よろしくお願いいたします。
お礼
なるほどなるほど。 御丁寧にありがとうございました。 早速確認してみます。 大変参考になりました。