• 締切済み

PHPへのデータ送信について

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

  • Flash
  • 回答数2
  • ありがとう数6

みんなの回答

  • BellBell
  • ベストアンサー率54% (327/598)
回答No.2

Flash内、sendAndLoadに渡すPHPプログラムファイル名は、絶対パス(http://から始まるすべてのURL)で記入していますか? PHPのドメインと、SWFの貼られたHTMLのドメインは一致していますか? PHP側で$_POSTではなく、$_REQUESTで取得した場合は、データが取得できますか?

youzan1231
質問者

お礼

ありがとうございます。 $_REQUESTで試したところ、解決しました。 なぜ$_POSTで動かないのかは今でも謎ですが、 とりあえず$_REQUESTで動いているので 先に進みます。

noname#111181
noname#111181
回答No.1

以下の確認してください。 1.送信側の文字エンコードは何ですか? 2.php.iniで mbstring.http_input は pass になっていますか?

youzan1231
質問者

お礼

ありがとうございました。 この件はとりあえず、解決しました。 $_POSTの代わりに$_REQUESTを使ったら 動きました。

youzan1231
質問者

補足

1. 送信側の文字エンコードは特に設定していません。 デフォルトだと、UTF-8のはずだと思っています。 2. php.iniの関連する設定は以下のとおりです。 default_charset = "UTF-8" mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = pass mbstring.detect_order = SJIS,EUC-JP,JIS,UTF-8,ASCII mbstring.substitute_character = "none" mbstring.encoding_translation = On extension_dir = "/usr/local/lib/php/extensions" extension=php_mysqli.dll extension = gd.so extension = mysqli.so extension = xmlrpc.so mbstring.http_input は、passではなく、autoになっていますが、 まずいでしょうか? よろしくお願いします。

関連するQ&A

  • 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
  • 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
  • ActionScript3.0によるPHPへの変数の送信について

    はじめまして。 現在、FlashとPHPを用いたシステムを制作中なのですが、FlashからPHPへの変数の送信でつまづきました。 ネット上で調べてみてもAS3で解説しているサイトはほとんど見つからず、見つかっても自分の理解が悪いのかうまく行かない状況です。 状況としては下記のようなAS3とPHPを実行しています。 AS3から値をPOSTしてPHPで表示、それを読み取ってFlashでtraceしています。traceで1234は返ってきているのですが、PHP側ではcomp=しか表示されません。初歩的なミスだと思いますが、どこが悪いのかアドバイスいただければ幸いです。 よろしくお願いします。 環境 Flash CS3 Apache2.2 PHP5.2.6 ソース AS3 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.comp ); } PHP <?php //変数を受け取る $comment = $_POST['num']; $comp = $comment; echo "comp=".$comp; ?>

    • ベストアンサー
    • Flash
  • 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
  • ActionScriptとphpの連携について

    ActionScriptとphpの連携について質問があります ActionScriptで受け取った値をphpに送り、その値をphp(htmlに埋め込み)で表示させたいと考えています。 動作としましては、 ・あらかじめテキストボックスに文字列が入力されている ・ボタンをクリックする ・別ウィンドウが出現(getURLでphpファイルを表示)テキストボックスに入力されていた文字列が表示される ・phpのファイルでラジオボタンで項目を選択し送信ボタンを押す ・MySQLに接続、ActionScriptで受け取った値とラジオボタンで受け取った値をまとめてデータベースに保存 というものにしたいです。 ボタンをクリックするまではすべてFlashで実現させています。 Flash→php→Flashという流れで値を表示させる方法はわかるのですが、Flash→phpで表示させることは可能でしょうか もし可能であれば、どのように実現したらよろしいでしょうか 現在はLoadVarsクラスのLoadVars.sendAndLoad()を使っています ActionScriptは2.0です 至らないところもございますが、素早い回答をお願いいたします

    • ベストアンサー
    • Flash
  • 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処理------------ ?>

  • 送信したデータが受け取れない(php)

    Laravelで日つけをテーブルで表示してその日つけの横の ボタンを押すと次の画面に遷移するようなことをやろうとしています。 受信側で受け取った日つけを一旦そのままで表示して 編集しようとしています。 ページ遷移はしますが、受信側のinput typeのvalue値で表示させようと したところ値が表示されません。特にエラーにはなりません。 因みに日付は表示側でループしていて172431(2022年の7月の日曜日) を試しに送信側で echo を掛けたら表示されます。 また、遷移するときのurlにはhttp://localhost:8000/exchange/17と出て Exchangeページはちゃんと遷移できているのでデータがきちんと渡っていないようです。よろしくおねがいします。 (送信側) echo '<form action="'.url('exchange/'.$dddd). '" method="POST">'; echo '<input type="hidden" name="_token" value="' . csrf_token() . '">'; echo '<input type="hidden" name="date_time" value="$dddd">'; echo '<input type="hidden" name="start_time" value="00:00">'; echo "<button type=\"submit\" class=\"btn btn-primary\">編集編集</button>"; (受取側) <input type="date" id="date-time" name="date_time" value=<?php print $_POST["date_time"]?> class="w-full bg-gray-100 bg-opacity-50 rounded border border-gray-300 focus:border-indigo-500 focus:bg-white focus:ring-2 focus:ring-indigo-200 text-base outline-none text-gray-700 py-1 px-3 leading-8 transition-colors duration-200 ease-in-out"> (Controller) Route::post('/exchange/{dddd}', [KintaiController::class,'exchange']) ->middleware('auth:users') ->name('exchange'); (日付を計算) $ym = date("Ym"); $d = mktime(0, 0, 0, $ym, 16 + $i, $ym); //日付ごとの配列のキー $dd = date('Y-m-d', $d);//2022-7-27 $dddd = date('d',strtotime($dd)); echo $dddd;//1724310714

    • 締切済み
    • PHP
  • phpとflash

    プログラム初心者です phpとas3で送受信したいです。 flash→php→flashの流れで変数を送受信させようと思います しかし、送受信はできているのですが、日本語だけが文字化けします うまくいけば。「こんにちわほげabc55」になるはずなんですが flashで表示されるのは「こんにちわق°abc55」とphpで加えた日本語が文字化けしています flashからpostされた日本語「こんにちわ」は文字化けしないで、flash→php→flashまで返ってきています flash cs5 のデフォルトの文字コードはUTF-8です phpファイルの文字コードはUTF-8でファイルを保存しています よろしくお願いします PHP <?php $comment = $_POST['com']; $comptxt = $comment."ほげabc55"; echo "comp=" . $comptxt; ?> AS3 var request:URLRequest = new URLRequest ( "test.php" ); //PHPへPOST送信 request.method = URLRequestMethod.POST; var variables:URLVariables = new URLVariables(); //↓送る変数 variables.com = "こんにちは"; 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 ); t1.text=vars.comp; }

    • ベストアンサー
    • PHP
  • javascriptとphpの連携で疑問

    javascriptの変数をphpに渡すプログラムを、ネットを参考にして次のようなものを作りました。 ●クライアント側 (index.html) <html> <head> </head> <body> <script type="text/javascript" src="j2p.php?parm=1"></script> </body> </html> ●サーバー側 (j2p.php) <?php $parm = $_GET['parm']; header("Content-type: application/x-javascript"); if ($parm == 1) { echo "document.write('1ですよ')"; } else { echo "document.write('1じゃないですよ')"; } ?> 上記は問題なく動作するのですが、サーバー側のプログラムを、次のように 変更し、直接$parmを出力しようとすると何も表示されません。 ●サーバー側 (NG1) <?php $parm = $_GET['parm']; header("Content-type: application/x-javascript"); echo "document.write('<?php echo $parm; ?>')"; ?> どこか、考え方が根本的に間違っているのかも知れませんが、この問題で ずっと悩んでおり、先に進めない状態です。 上記プログラムのおかしな点、改善点など、アドバイスよろしくお願い いたします。

  • IEとFirefoxでPHPから値を受け取るときの挙動が違う

    現在ActionScript3.0からPHPに対してPOSTし、対象PHP内でデータベースの値を変更し、そのPHPから変数形式での返り値を受け取る処理を実装しているのですが、IEとFirefoxで挙動の違う場合がありわけがわからなくなっております。以下は現象の流れです。 1.Flash(ActionScript3.0)からDB更新用PHPをロード(loadURL) 2.データベース自体は正常に処理される 3.Flashから更新したデータを取得するPHPをロード。返り値は変数形式 例:echo "var0=name&var1=2"; 4.Firefoxでは更新後のデータが取得でき、IEでは出来ないケースがある。ページ自体をリロードした直後にデータベースの値をPHPで取得すると、IEでも正常に取得できる。 ■環境 Apache2.2.11 PHP5.3.0 PostgreSQL 8.4 OS:Vista/CentOS5.3

    • 締切済み
    • PHP

専門家に質問してみよう