• 締切済み

FLASHからPHPへ値送信

質問させて頂きます。 FLASHからPHPへ配列データを送信したいのですが、FLASHで作成した配列をPHPに送信する事は可能か教えてください。 ボタンを押した時にPHPに配列データを送信たいと思っています。 以下ソース ■FLASH側 on (release) { data[0]="りんご"; data[1]="みかん"; //送信用インスタンスの生成 transmit = new LoadVars(); //受信用インスタンスの生成 receipt = new LoadVars(); //受信処理 receipt.onLoad = function(Success) { } //phpに配列データを送信 transmit.recData = data; transmit.sendAndLoad("test.php", receipt, "POST"); } ■PHP側(test.php) <?php $aaa = $_POST{'data'}; ----------PHP処理------------ ?>

  • Flash
  • 回答数1
  • ありがとう数1

みんなの回答

  • perse
  • ベストアンサー率74% (113/152)
回答No.1

環境が無いので試していないのですが、 >transmit.recData = data; で渡したのなら受け取り側は $aaa = $_POST["recData"]; ではないでしょうか?

hfmm14b
質問者

お礼

結論から言うと、配列に格納して送るのではなく、文字型変数にカンマで区切って連結し送ることで実現しました。 ■FLASH側 on (release) { data[0]="りんご"; data[1]="みかん"; --------略-------- //phpに配列データを送信 strData = data[0]+","+data[1]; transmit.recData = strData; transmit.sendAndLoad("test.php", receipt, "POST"); 文字型であれば送信可能なのに、配列データは不可能なのは、レンタルしているサーバーの仕様なのかもしれません。 スッキリしませんが仕様と割り切ります…。 初投稿で不安な中、返信頂いて嬉しかったです。 有難う御座いました!

関連するQ&A

  • actionscript2.0 とphp を用いてブラウザでswfファ

    actionscript2.0 とphp を用いてブラウザでswfファイルを表示しています。 actionscript側では、 以下のようにsendAndLoadメソッドを用いて var send1 = new LoadVars(); test1.page = 1; test1.sendAndLoad("test.php",test1); send1.onLoad = function() {  ロードした際の処理 } test.phpに値を送信しています。細かく言えば flash上のボタンが押された後にsendAndLoad し,1を送信しています。 それに対しphpでは、 <html> <head> </head> <frameset rows="55%,*"> <frame name='bottom1' src="test.php"> <?php // Action ScriptからのPOSTデータの取得 $page = $_POST['page']; print("<frameset cols='62%,*'>"); if ($page == 1){ print("<frame name='bottom2' src='test1.php'>"); }else{ print("<frame name='bottom2' src='test2.php'>"); } ?> </frameset> </frameset> </html> 上記のようにPhp側では$pageを受け取り、1であればフレームで指定されているファイルを test1.phpとします。$pageが空であればtest2.phpを下フレームに表示しています。 そしてメインとなるtest.phpではswfファイルを表示していて、そのFLASHのボタンをクリックして、test.phpにsendAndLoadしています。 動作なのですが、sendAndLoadして、testp.phpで値は取得しているのですが、 ページがロード(更新)されません。なので下フレームがtest1.phpからtest2.phpに 遷移しません。試しにsendのみしてみると、新しくブラウザが開き、そのページが更新されています。 新しくブラウザを開かないでframeによるページ更新をする方法はないのでしょうか? ご教授願います。 以下はsendのみの場合です。 var send1 = new LoadVars(); send1.page = 1; send1.send("***.php", "bottom", "POST");

    • ベストアンサー
    • Flash
  • FLASH1→PHP→FLASH2 POST送信での受け取り方法。

    FLASH 8の初心者です。 Sample.swfにあるボタンから、PHPを通してSample2.swfに値を送ろうとしています。そこで、送った値を判定して、そのフレームに移動するようにしたいと思っています。 現在はFLASH→PHP→FLASHというのはできるのですが、FLASH1→PHP→FLASH2という方法がわかりません。 ■Sample.swfのボタン A.onPress = function() { SendData = new LoadVars(); //データを送信するための箱。 _root.SendData.nakami1 = "sam"; //送りたいデータを箱に詰める //データ(中身)を詰めた箱をgetFlash.phpに送信 _root.SendData.sendAndLoad("http://localhost/Sample/Sample.php", _root.SendData); //3)getFlashからレスポンスが合った場合(SendDataにデータが帰ってきた時) _root.SendData.onLoad = function() { //受け取ったときの処理 if(this.val){    if(this.val1){ gotoAndPlay(2); } } } } これで、PHPに値を送っています。 <?php //2)Flashからデータを受け取る-Flashで使用した変数名 $test1 = $_POST["nakami1"]; //やりたい処理を書く if($test1 == "sam"){ $test1 = "name"; }else{ $test1 = "error"; } //Flashにデータを送る print "&val=true"; //上の結果を表示の実行。 print "&val1=".$test1; //val1に$test1の値を代入。 ?> この書き方でFLASH→PHP→FLASHはできるのですが、これをどのように変更したらFLASH2へ値を送れるのかわかりません。調べてもどのようにすればいいのかわからないので困っています。 FLASH2のほうではsetInterval文を使って、常にPHPからの送られてくる値を取得しようと思っています。 ★setInterval文 functionvar intervalID:Number=setInterval(getFunc,1000); getFunc(){ getURL("http://localhost/test/Sample.php", "_self", "GET"); if(val== "name"){ gotoAndpPay(2); } } このように書いたのですがどのようにすればPHPからの値を取得できるのかわかりません。このような書き方をしなくてもできるのでしょうか? どんなことでもいいので返事をよろしくお願いします・・・。

  • FLASH⇒PHP間のXML受け渡し

    FLASH & PHP初心者です。 環境: FLASH8 PHP5.2.3 FLASHからsendAndLoadを使ってXMLを送信した場合、サーバ側PHPでは$_POST[];でデータ取得できるのかなと思って調べています。 例:xml_Request.sendAndLoad("http://localhost/xmlresponder.php", xml_Response); このとき、$_POST[]の中には何を記述したらよいのでしょうか。 それとも他の取得方法があるのでしょうか。 同様の質問がQNo.2916528に上がっていたのでecho $_POST[text/xml];で動かしてみたのですが<br />が返って来ただけでした。 ご教授宜しくお願いします。

    • ベストアンサー
    • PHP
  • PHPへのデータ送信について

    Flash CS4を使ってアプリを開発しています。 サーバー側は、OSがSolaris、言語はPHPでデータベースを検索します。 FlashのActionScriptは、version2.0を使っています。 Flashで作成した画面上で、メールアドレスとかパスワードを入力させて、 それをsendAndLoad(phpプログラムファイル名,load用変数名,"POST")でサーバー側に送信しています。 しかし受信する側のPHPプログラム上で、$_POST['mailaddress']のように 読もうとしてもうまく読めません。echoでその変数値を表示させても何も表示されません。 原因として何が考えられるでしょうか? ちなみに、PHPの内部エンコードはutf-8です。

  • FlashよりLoadVarsクラスを使用し,CGIへデータを送信しようとしていますが…

    FlashよりLoadVarsクラスを使用し、CGIへデータを送信しようとしていますが・・・。 なかなか成功しません;; Flashのアクションスクリプト、およびCGI(Perlで)スクリプトをお教えいただけないでしょうか? -詳細- ボタンに LoadVars.send(); LoadVars.sendAndLoad(); などを使用し、Flash→CGIへ送信し、結果を表示したり、Flash→CGIへ送信し、CGIで送信した変数などを処理した後、Flashより変数を受信し、表示する。 -例- 1.Flashよりテキストフィールドに文字を入力し、CGIへ送信。 2.CGIにて受信後、受信した文字をopenで保存(.txtファイル作成) 3.先ほどCGIより保存したtxtファイルをFlashから読み込む。 -環境- 楽天さんのiswebライトでPerl言語を使い、Content-typeをHTMLでCGIを作成しております。 ご教授いただければ幸いです。 どうか、よろしくお願いいたしますm_ _m

    • ベストアンサー
    • Perl
  • ActionScript2.0とPHPの連携

    下記のスクリプトをflashプレーヤー8.0、Action Script2.0 でムービーの書き出しを行って、実行すると 合計の計算結果蘭に「undefined」と表示され、 合計値がちゃんと表示されません。 どこが間違っているのでしょうか? 【test1.fla】 (scriptレイヤー) //Shift-jisを使う //System.useCodepage = true; //loadvarsobject作成 LV1=new LoadVars(); //送信が成功した場合 LV1.onLoad = function(success){ //LoadVarsオブジェクトに得られた計算結果を反映させる out1=LV1.out1; } gotoAndStop(1); (mainレイヤー) //送信ボタンが押されたとき on (press) { //LoadVarオブジェクトに変数をセット LV1.in1=in1; LV1.in2=in2; LV1.in3=in3; LV1.in4=in4; //LoadVarオブジェクトの内容をphpスクリプトへ送信する LV1.sendAndLoad("test1.php",LV1,"POST"); } 【test1.php】 <?php //Flashから送られてくる変数を受け取る $in1=$_POST['in1']; $in2=$_POST['in2']; $in3=$_POST['in3']; $in4=$_POST['in4']; //合計を求める $result=$in1+$in2+$in3+$in4; var_dump($result); //Flashに合計を伝える echo 'out1='.$result; //送信されてきた変数をログファイルに残す $fp=fopen("log.txt","ab"); fputs($fp,"$in1,$in2,$in3,$in4\n"); fclose($fp); ?>

  • Flashからphpへ変数を持たせてリンク

    ActionScript初心者です、よろしくお願いします。 Flashのボタンを押し、リンク先phpのページへ 変数で情報を渡し、Mysqlからその情報を基にした内容を引っ張って 表示させるようにしたいと思っています。 同じような質問を参考に試しているのですが、うまくいきません。 下記の記述ではたりないのでしょうか? Flash側 仮にAというボタンのアクションに記述 -------------------------------------------------------------- on (press) { a=new LoadVars(); a.brand = HOGE; a.sendAndLoad("URL?brand="+this.a); } -------------------------------------------------------------- php側 <?php $brand=$_POST["brand"]; 割愛 $sql="select * from DA01 where brand=$brand"; 割愛 ?> とこんな感じです。 php側はFlashページでない別htmlからのリンクテストを行い問題なく 表示出来ました。 なのでFlash側の記述が問題だと思います。 どう直せばよろしいでしょうか? またこの記述では動かないとなれば、例としてどういう記述がよりベストかご教示願えればと思います、よろしくお願いします。 環境: MySQL4 PHP4~ WEBserver Apache FlashMX

    • ベストアンサー
    • Flash
  • FlashとPHPの連携

    はじめまして、今回ぜひとも聞きたいことがあります。Flashの画面で入力されたデータを、PHPを介して、MySQLで作ったデータベースに格納したいのですが、できません。下がソースです。何がいけないのかまったくわかりません。どうか教えてください。お願いします。 <?php $name = $_POST["name"]; $sex = $_POST["sex"]; $Byear = $_POST["Byear"]; $Bmonth = $_POST["Bmonth"]; $Bday = $_POST["Bday"]; $password = $_POST["password"]; $money = $_POST["money"]; $con=mysql_connect("localhost","root","aimar21"); mysql_select_db ("okozukaishisutemu"); $sql = "insert into yuzatouroku2 (name,sex,Byear,Bmonth,Bday,password,money,hiduke) values('".$_POST["name"]."', '".$_POST["sex"]."', '".$_POST["Byear"]."', '".$_POST["Bmonth"]."', '".$_POST["Bday"]."', '".$_POST["password"]."', '".$_POST["money"]."', '".$_POST["hiduke"]."')"; $res =mysql_query($sql); mysql_close($con); ?> \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ this.touroku_btn.onRelease = function(){ a = new LoadVars(); a.namae = namae_txt; a.sex = sex_txt; a.Bmonth = month_txt; a.Bday = day_txt; a.pass = pass_txt; a.money = money_txt; a.sendAndLoad("yuzatouroku3.php",a,"POST"); }

    • ベストアンサー
    • Flash
  • FLASHとPHPの連携について

    プログラミング初心者です。 いまポストカード作成システムを大学の課題で作っています。 環境はWindowsXP FLASH8Proです。 最後の保存するところで詰まっています。 現時点でできているところまでHPにアップしたので載せます。 ​http://www.geocities.co.jp/ysmnh028/otameshi.html​ URLより画像を読み込み最後に保存をしたくていろいろ調べていて、PHPと連携させてブラウザ上に新しいページで画像を生成し、それを右クリック⇒保存という形で保存できる事はわかりました。 SAVEボタンのASは以下のとおりです。 on (press) { // 保存用Bitmapを生成 var bmpSnap = new flash.display.BitmapData(300, 444, false); // 保存したいMovieClipをBitmapに描画する bmpSnap.draw(_root.photo_mc); // BitmapデータをRGB配列にする var img_data = new Array(); for (var x = 0; x<bmpSnap.width; x++) { for (var y = 0; y<bmpSnap.height; y++) { var col = bmpSnap.getPixel(x, y); img_data.push(("000000"+col.toString(16)).substr(-6, 6)); } } // データを送信 System.useCodepage = true; myLoader = new LoadVars(); myLoader.img_width = bmpSnap.width; // 画像幅 myLoader.img_height = bmpSnap.height; // 画像高さ myLoader.img_data = img_data.join(""); // 画像データ myLoader.send("snapshot.php", "_blank", "POST"); } PHP側は <?php // 送信データを取得 $img_data = $_POST['img_data']; $width = $_POST['img_width']; $height = $_POST['img_height']; $type = $_POST['img_type']; // IMAGE生成 $source_img = imagecreatetruecolor ($width, $height); // 背景色を生成 $bg_col = imagecolorallocate($source_img, 0xFF, 0xFF, 0xFF); $border_col = imagecolorallocate($source_img, 0x00, 0x00, 0x00); // イメージを描画 $p = 0; for ($x = 0; $x < $width ; $x++) { for ($y = 0; $y < $height ; $y++) { $rgb = hexdec(substr($img_data, $p, 6)); $p+=6; $r = ($rgb >> 16) & 0xFF; $g = ($rgb >> 8) & 0xFF; $b = $rgb & 0xFF; $col = imagecolorallocate($source_img, $r, $g, $b); imagesetpixel($source_img, $x, $y, $col); } } header("Content-Type: image/jpeg"); imagejpeg($source_img); exit; // JPEG出力 touch("test.jpg"); // まずは空ファイル生成 imagejpeg($source_img, "test.jpg"); // 画像を保存 header("Content-Type: image/jpeg"); readfile('test.jpg'); exit; ?> 以上です。 ローカルでためしたところ画像は表示されず、かわりに代替画像としてアドレスが表示されます。 考えられる原因はなんでしょうか?? よろしくお願いします。

    • 締切済み
    • PHP
  • phpで書き出したtxtをflashで読み込みたい

    phpを使ってtxtファイルを生成し、それをphpのダイナミックテキストに反映したいと思っています。 ■PHP <html> <body> <form method="post" action="rei.php"> <input type="text" name="moji"> <input type="submit" value="送信"> </form> <?php $moji = $_POST['moji']; if($moji){ $fp = @fopen("test.txt", "a") or die("Error!\n"); fputs($fp, $moji); fclose($fp); print "書き出し成功。"; } ?> </body> </html> ■Flash 1フレーム目に以下のように記述。 System.useCodepage = true; loadVariablesNum("test.txt", 0); 現在上のような表記でつくっています。 test.txtファイルにはすでに文章がかかれてあり、その続きからフォームに入力したテキストが反映されるかたちです。 結果、1回目は反映されるのですが、2回目を試し、Flashの方の再読み込みしても新しく書き出したはずのデータが反映されません。 test.txtへの書き出しはうまくいっているのですが、Flashへきちんと読み込まれていないようです。 これは一種の更新ツールとして使いたいので、何度も書き出しできるようにしたいのです。 どのあたりに問題があるかご指摘いただきたいです。 どなたかご指摘いただければと思います。どうぞよろしくお願いします。

    • ベストアンサー
    • Flash

専門家に質問してみよう