- ベストアンサー
ActionScript3.0によるPHPへの変数の送信について
- FlashとPHPを用いたシステム制作中に、ActionScript3.0からPHPへの変数の送信でつまづきました。
- AS3で値をPOSTしてPHPで表示し、Flashで読み取っていますが、PHP側で正しく表示されず困っています。
- 環境はFlash CS3、Apache2.2、PHP5.2.6です。AS3のコードとPHPのコードを記載しました。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
"PHPを更新"という行為が、ブラウザでPHPファイルを指定して更新ボタンを 押しているのであれば、そのような理解で大体あっています。 PHP単体をテストするのであれば、以下のようなhtmlから呼び出してあげる 必要があります。 <form metod="POST" action="PHP.php"> <input type="text" name="num"> </form>
その他の回答 (2)
- Tanigucchi
- ベストアンサー率70% (43/61)
ANo.1です。 回答の仕方が悪かったですね。 ソースを拝見する限り、"trace( vars.comp );" の部分で "1234 "が 出力されているのであれば、PHPスクリプトは正常に動作しています。 (PHPが動作しなければ、"trace( vars.comp );" の部分では空文字が出力) PHPを単独実行してもPOSTメソッドでnumのデータが送信されていなければ "comp=しか表示されません"となります。 POSTメソッドについては、参考URLを参照ください。
補足
つまりは、正しく動いているかもしれないけどASを実行したときにのみPOSTされるため、いくらPHPを更新したとしてもそのときにPOSTされていないのでechoで出力されない。だからPHPが正しいかを確認するには別個にPOSTするメソッドを作らないといけないということでしょうか?考えてみれば当たり前のことですよね・・・。 この見解に間違いがあればお手数ですがご指摘いただければと思います。 何度もすいません・・・
- Tanigucchi
- ベストアンサー率70% (43/61)
ソースを拝見する限り、"trace( vars.comp );" の部分で "1234 "が 出力されるためには phpで "comp=1234" が出力されないといけません 「PHP側ではcomp=しか表示されません。」とはどのような動作を させたときの結果でしょうか? テストを行う場合は、POSTメソッドでnumのデータを送信する 必要があります。
補足
回答ありがとうございます。 テストの仕方が悪いのかもしれませんが、ソースを少し変えてみました。 AS System.useCodePage = true; var request:URLRequest = new URLRequest ( "http://localhost/sample/FlashToPHP.php" ); //PHPへPOST送信 request.method = URLRequestMethod.POST; var variables:URLVariables = new URLVariables(); //送る変数 variables.num = "1234"; request.data = variables; var loader:URLLoader = new URLLoader (request); loader.dataFormat = URLLoaderDataFormat.VARIABLES; loader.addEventListener(Event.COMPLETE, onComplete); loader.load(request); function onComplete (event:Event):void{ var vars:URLVariables = new URLVariables( event.target.data ); trace( vars); } PHP <?php //変数を受け取る $comment = $_POST['num']; $comp = $comment; if($comment==null){ echo("comment=null"); }else{ echo "comp=".$comp; } ?> まずASを実行してみますと「comp=1234」と表示されます。 その後、PHPを実行(更新)しますと「comment=null」と表示されます。 このASではPOSTができていないということでしょうか・・・ サイトを参考にさせてもらっているので理解しきれていない部分が多々あります。すいません
お礼
回答ありがとうございました。 おかげさまで完成できそうです。 何度も何度もありがとうございました。