• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:ActionScript3.0によるPHPへの変数の送信について)

ActionScript3.0によるPHPへの変数の送信について

このQ&Aのポイント
  • FlashとPHPを用いたシステム制作中に、ActionScript3.0からPHPへの変数の送信でつまづきました。
  • AS3で値をPOSTしてPHPで表示し、Flashで読み取っていますが、PHP側で正しく表示されず困っています。
  • 環境はFlash CS3、Apache2.2、PHP5.2.6です。AS3のコードとPHPのコードを記載しました。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

"PHPを更新"という行為が、ブラウザでPHPファイルを指定して更新ボタンを 押しているのであれば、そのような理解で大体あっています。 PHP単体をテストするのであれば、以下のようなhtmlから呼び出してあげる 必要があります。 <form metod="POST" action="PHP.php"> <input type="text" name="num"> </form>

noname#131718
質問者

お礼

回答ありがとうございました。 おかげさまで完成できそうです。 何度も何度もありがとうございました。

その他の回答 (2)

回答No.2

ANo.1です。 回答の仕方が悪かったですね。 ソースを拝見する限り、"trace( vars.comp );" の部分で "1234 "が 出力されているのであれば、PHPスクリプトは正常に動作しています。 (PHPが動作しなければ、"trace( vars.comp );" の部分では空文字が出力) PHPを単独実行してもPOSTメソッドでnumのデータが送信されていなければ "comp=しか表示されません"となります。 POSTメソッドについては、参考URLを参照ください。

参考URL:
http://wspri.dip.jp/index.html?mainframe/main/php/howto/form.html
noname#131718
質問者

補足

つまりは、正しく動いているかもしれないけどASを実行したときにのみPOSTされるため、いくらPHPを更新したとしてもそのときにPOSTされていないのでechoで出力されない。だからPHPが正しいかを確認するには別個にPOSTするメソッドを作らないといけないということでしょうか?考えてみれば当たり前のことですよね・・・。 この見解に間違いがあればお手数ですがご指摘いただければと思います。 何度もすいません・・・

回答No.1

ソースを拝見する限り、"trace( vars.comp );" の部分で "1234 "が 出力されるためには phpで "comp=1234" が出力されないといけません 「PHP側ではcomp=しか表示されません。」とはどのような動作を させたときの結果でしょうか? テストを行う場合は、POSTメソッドでnumのデータを送信する 必要があります。

noname#131718
質問者

補足

回答ありがとうございます。 テストの仕方が悪いのかもしれませんが、ソースを少し変えてみました。 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ができていないということでしょうか・・・ サイトを参考にさせてもらっているので理解しきれていない部分が多々あります。すいません

関連するQ&A