トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   サーバ関連【CGI・FCS・XMLSocket etc】
     FlashMXとPHPでデータのやり取りができない
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
OhXCD
Åê¹ÆNo.3754
投稿日時: 2004-2-12 21:42
半人前
居住地: 関東
投稿: 53
使用環境:
WinXP SP2
FlashMX
FlashMXとPHPでデータのやり取りができない
相変わらず初心者のXCDです。

Flashのブロック崩しを作っています。
単体としてはほぼ出来ているのですが、ちょっと詰まってしまいまして…
最終的には、ユーザー名と点数をランキングとしてサーバーに登録したいと思っています。
ただ、自分でHPを立ち上げてないということもあり、サーバー&クライアントなプログラムを組んだ経験がありません。
テスト用に、ローカル環境にApache2とPHP4.3.4をインストールして、動作も確認しました(HelloWorldなど(定番ですな
しかし、FlashからLoadVarsでデータを送っても、受け取れて無いようなんです。
テスト用プログラムは、
 Flash側
  system.usecodepage = true;
  myLoadVars = new LoadVars();
  myLoadVars.name = "abc";
  myLoadVars.send("http://localhost/sample/flash/download.php", this, "POST");
 PHP側(ファイル名:download.php)
  <html>
  <head><title>download</title></head>
  <body>
  <?php
  $name = $_POST['name'];
  print("名前:".$name);
  ?>
  </body>
  </html>
としています。
この状態でFlashのムービーを再生すると、IEが勝手に立ち上がり、download.phpを開くのですが、表示されるのは「名前:」だけです。
この動きから見ると、Flashからデータは送られているのにPHPで受け取れてないようなんですが…

右も左も分からない状態ですので、根本的な考え違いがあるのかもしれません。
何かヒントを頂けますでしょうか?

宜しくお願いします。
植木友浩
Åê¹ÆNo.3757
投稿日時: 2004-2-12 22:05
案内係
居住地: 東京
投稿: 640
使用環境:
Pro +
.Tiger +
Re: FlashMXとPHPでデータのやり取りができない
send関数の2番目の引数は、ブラウザのウィンドウ名なので、thisではなく名前です。

PHP側にFlashと同じ送信するHTMLのフォームを作って、PHPの受信がうまくいっているか、試されてはどうでしょうか?

また、Flash側はPOSTではなくて、GETにして変数がURLに表示されるか確認して下さい。


----------------
Tomohiro Ueki
RSSリーダー公開中
チーム-10kg達成

OhXCD
Åê¹ÆNo.3786
投稿日時: 2004-2-13 12:19
半人前
居住地: 関東
投稿: 53
使用環境:
WinXP SP2
FlashMX
Re: FlashMXとPHPでデータのやり取りができない
すばやいレスありがとうございます。
でも昨日はすぐに寝てしまいました…
朝がデフォルトで早いもので、夜は苦手なのです。
すみません。

引用:
send関数の2番目の引数は、ブラウザのウィンドウ名なので、thisではなく名前です。

失礼しました。
_selfに変更しました。
が、変化無し。

引用:
PHP側にFlashと同じ送信するHTMLのフォームを作って…

これは確認済みです。

引用:
POSTではなくて、GETにして

FlashとPHP両方をGETにしてテスト。
これも変化無し。
URL欄には?name=abcと出ているのに…

最終的には、
$name = $_POST['name'];

のところを
$name = $HTTP_GET_VARS['name'];

にしたら、受け渡しに成功しました。
PHP4.3.4なので、最初の形式で受け渡しできるはずなんですが…
ちなみにPOSTではやっぱりダメです。

50人分の名前と点数を送りたいんだけどなぁ…

ちょと汚くなりますが、10人毎に区切って受け渡ししてみようかと思います。

本題と変わりますが、、、
会社と家でIPアドレス変わるので、その度にパスワード請求しなければならないのは面倒です。
何か手はあるのでしょうか?
かずぃ
Åê¹ÆNo.3837
投稿日時: 2004-2-14 10:59
半人前
居住地:
投稿: 49
使用環境:
98SE 10.3 MX
Re: FlashMXとPHPでデータのやり取りができない
本当にご使用のPHPのバージョンは4.3.4で間違いありませんか?
バージョンの確認はどのようにされましたか?
以前に古いバージョンのPHPを使っていたことはありませんか?
そのときのファイルがシステムに残っている可能性も考えられますから
phpinfo()等で確認することをお勧めします。
あと、apacheの設定も・・・

また、PHPでGET、POST変数を受け取る際$_REQUESTを使うと便利です。
変数の中身を確認するのにはvar_dumpやprint_rも便利です。

download.phpが表示されたときのHTMLソースの確認はされました?
もしかしたら、文字コードが違うために表示されてないとか?
OhXCD
Åê¹ÆNo.3877
投稿日時: 2004-2-15 9:27
半人前
居住地: 関東
投稿: 53
使用環境:
WinXP SP2
FlashMX
Re: FlashMXとPHPでデータのやり取りができない
レスありがとうございます。

PHPは3日前に初めてインストールして使い始めたばかりです。
使ったファイルは、
 http://www.php.net/downloads.php
に置いてある
 php-4.3.4-Win32.zip
です。
phpinfo()では4.3.4と表示されます。

Aperch2の設定は、
httpd.confが
LoadModule php4_module c:/php/sapi/php4apache2.dll
AddType application/x-httpd-php .php
AddDefaultCharset none

php.iniが
doc_root = "C:/Program Files/Apache Group/Apache2/htdocs"
extension_dir = "C:/php/extensions"

としてます。
あ、あとマルチ言語の設定も入れました。
extension=php_mbstring.dll
mbstring.internal_encoding = EUC-JP

のコメントアウトを外してます。

文字コードについては、FlashからUTF-8で出力してPHPでEUC-JPにエンコードしてます。
文字コード違ってても、GETだと文字化けや???で表示されますが、POSTだと半角数字だけの部分も含めて空白になってしまうのです。

引用:
また、PHPでGET、POST変数を受け取る際$_REQUESTを使うと便利です。

引用:
変数の中身を確認するのにはvar_dumpやprint_rも便利です。

上記2点につきましては、これから調べてみます。
かずぃ
Åê¹ÆNo.3881
投稿日時: 2004-2-15 11:44
半人前
居住地:
投稿: 49
使用環境:
98SE 10.3 MX
Re: FlashMXとPHPでデータのやり取りができない
ちなみに
$_REQUEST['name']


$_REQUEST[name]

と書いた場合は変化がありますか?

また、phpの設定で gpc_orderやvariables_orderの値はどうなっていますか?
GPCやEGPCSなどの文字列になっていると思いますが、「P」が抜けていると
POST変数が受け取れません。

あと、実際にPOSTやGETの値が送信されているかはパケットキャプチャ
やapacheのログを確認してみてください。
OhXCD
Åê¹ÆNo.3892
投稿日時: 2004-2-15 18:43
半人前
居住地: 関東
投稿: 53
使用環境:
WinXP SP2
FlashMX
Re: FlashMXとPHPでデータのやり取りができない
オンラインの日本語マニュアル見てたんですが、$_REQUESTの使い方が見つからず…
$string = $_REQUEST['name']
print_r($string);

とかでいいのでしょうか?

引用:
また、phpの設定で gpc_orderやvariables_orderの値はどうなっていますか?

えと、gpc_orderがGPC、variables_orderがEGPCSです。

引用:
あと、実際にPOSTやGETの値が送信されているかはパケットキャプチャやapacheのログを確認してみてください。

Apacheのログファイル見てみたんですが、GETの履歴しかありませんでした…
届いてなかったんですね、POSTは。

一度ログクリアして、送信データをもう一度確認してみます。

ありがとうございました。
かずぃ
Åê¹ÆNo.3904
投稿日時: 2004-2-16 11:41
半人前
居住地:
投稿: 49
使用環境:
98SE 10.3 MX
Re: FlashMXとPHPでデータのやり取りができない
引用:
引用:
あと、実際にPOSTやGETの値が送信されているかはパケットキャプチャやapacheのログを確認してみてください。


Apacheのログファイル見てみたんですが、GETの履歴しかありませんでした…
届いてなかったんですね、POSTは。

actionscriptやphpともにPOSTが受け取れてなかったってことですね。
そうなると、apacheの設定が怪しそうですね。

引用:
オンラインの日本語マニュアル見てたんですが、$_REQUESTの使い方が見つからず…
$string = $_REQUEST['name'];
print_r($string);

正解です。$_REQUESTはPOSTでもGETでも値を受け取れます。また、
print_r( $_REQUEST);

とやるとprint_rvar_dumpの便利さが実感できると思います。

引用:
print_r( $string);

これだと、
echo $string;

これとあまりかわりませんよね。

なんだか、Flashからだんだん遠のいてきてしまいましたね。
宇都宮正宗
Åê¹ÆNo.3916
投稿日時: 2004-2-16 17:53
新米
居住地:
投稿: 25
使用環境:
:Flash:5
6.0
2004
:Flash:8
:Flash:CS3
:Flash:CS4
:Flash:CS5
:Flash:CS6
:FlashCC
:FlashBuilder
:FlashDevelop
pro
:Win:Vista
:Win:7
:MacOS:X
Re: FlashMXとPHPでデータのやり取りができない
こんにちわ。

引用:
この状態でFlashのムービーを再生すると、IEが勝手に立ち上がり、


とあるのでプロジェクタでテストされてるのだと思いますが、だとしたら例のプロジェクタで『POST送信』が機能しないって奴が原因のような気がします

これ地雷ですよね?
OhXCD
Åê¹ÆNo.3921
投稿日時: 2004-2-16 21:23
半人前
居住地: 関東
投稿: 53
使用環境:
WinXP SP2
FlashMX
Re: FlashMXとPHPでデータのやり取りができない
shinkazyさん、masamuneさん、ありがとうございます。

結論から言いますと、、、
ブラウザで動かすとPOST使えました!
引用:
プロジェクタで『POST送信』が機能しない

そうだったんですかぁ。
全然知りませんでした…
思いっきり地雷踏んでたようです。
まさか、こんなバグがあったなんて…

でも、これで進められます。

ありがとうございました。
感謝感激です?
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops