スレッド表示 | フラット表示〕 全トピック 920 件中 683 番目 次≫ ≪前

FlashMXとPHPとの連携なのですが

created: 2004-02-12 22:12 | modified: 2004-02-16 21:35 | reply: 8

[1291] FlashMXとPHPとの連携なのですが

user: XCD | created: 2004-02-12 22:12
Aperch2とPHPの設定は出来ていると思うのですが、
<?php
phpinfo();
?>
は動きますので。
しかし、FlashからPOSTで送信した変数を受け取れなくて困っています。
テスト用プログラムは、
 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で受け取れてないようなんですが…

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

Flashについての質問をするのは筋違いかもしれませんが、PHPの問題のような気がしまして…
どうぞ宜しくお願いします。
reply: 1292 返信 編集 削除

[1292] 特に問題なさそうですが

user: hamaji | created: 2004-02-12 22:26
特に問題なさそうですが。。。
以前自分が簡単に作ったことのある、
ログインフォームのサンプルソースです。
参考になれば。。。
fscommand("allowscale", false);
System.useCodepage=true;

//テキストフィールドの初期化
_root.usr_id = "";
_root.usr_pass = "";

// クリアボタン
_root.clr.onRelease = function () {
_root.usr_id = "";
_root.usr_pass = "";
}

// ログインボタンクリック
_root.login.onRelease = function () {
sendVars1 = new LoadVars();
var sendflg = 1;
sendVars1.uid = _root.usr_id;
sendVars1.passwd = _root.usr_pass;
sendVars1.flg = sendflg;

sendVars1.send("index.php", "_self", "post");
}
入力チェック等はPHP側でやってます。
ボタンが押されたかどうかは『var sendflg』でチェックしてます。
Parent: 1291  reply: 1293 返信 編集 削除

[1293] びっくり

user: XCD | created: 2004-02-12 22:36
とっても早い返信いただきまして、びっくりしてしまいました。
でも…
問題なさそうですか。
うむ?。
いただいたサンプルを元にもう少し悩んでみます。
ありがとうございました。
Parent: 1292  reply: 1294 返信 編集 削除

[1294] PHPのバージョン?

user: hamaji | created: 2004-02-12 22:52
PHPのバージョンは何でしょう?
register_globalsの問題かもしれません。
(php.iniのregister_globalsの値。
細かいことは検索すればわかります。)

たとえば『FoxServ』などのパッケージを使うと、
フォームの値は$_POST['○○']では取得できません。
$name = $_POST['name'];
のところを
$name = $HTTP_POST_VARS['name'];
でやってみても同じでしょうか?

または、そのまま
echo $name;
とか
Parent: 1293  reply: 1295 返信 編集 削除

[1295] なるほど?

user: XCD | created: 2004-02-13 10:58
hamajiさんの投稿を元に
$name = $HTTP_GET_VARS['name'];
とGETに換えてテストしたら動作しました。
ありがとうございます。

register_globalsの問題Pは目を通していたのですが、php-4.3.4-Win32.zipを解凍しただけなので関係ないと思ってました。

しかし、POSTにするとやはり動かない(前と同じ状態)のですが、GET型って送受信できるバイト数に制限ありますよね?
50人分の名前と点数をFlashに送りたいのに、、、
Parent: 1294  reply: 1296 返信 編集 削除

[1296] できましたよ

user: hamaji | created: 2004-02-13 20:19
myLoadVars.sendの第2引数を『_self』や、
『_blank』にしたらできましたよ。

system.usecodepage = true;
myLoadVars = new LoadVars();
myLoadVars.name = "abc";
myLoadVars.send("post.php", "_self", "POST");
         ↑ここのターゲット指定を変えてみました。

PHP側
<?php
echo "名前:" . $_POST['name'];
?>
出力結果
名前:abc
LoadVarsオブジェクトのsendメソッドの
第2引数にthisってありましたっけ?
自分はActionScriptは詳しくないですが、HTMLのターゲット指定と同じと思ってます。
Parent: 1295  reply: 1297 返信 編集 削除

[1297] あ、忘れてた

user: XCD | created: 2004-02-14 09:42
LoadVars.sendの第2引数は"_self"にしてます。
「びっくり」の投稿の後気付いて直したんですが、書き忘れてました。
ごめんなさい。

それでも"$_GET"、"$_POST"では渡ってくれなかったんです。
唯一"$HTTP_GET_VARS['name']"だけ動作してます。
この書き方で"POST"にするとダメなのも良く分かりません。

インプレス出版の「基礎PHP」という本を見てAperch2とPHPの設定を行ったんですが、何か違うのかな…

ちなみに設定は、
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"
としています。
(本の通りです)
何かおかしなところあるのでしょうか?

何度もお手数ですが、宜しくお願いします。
Parent: 1296  reply: 1300 返信 編集 削除

[1300] Re.あ、忘れてた

user: hamaji | created: 2004-02-15 16:23
特におかしいところなどはないと思います。
それでもできないのであれば、
ちょっと自分の手にはおえません。

ただすごく単純なミスや勘違いという可能性が高いような気がします。

?キャッシュが表示されている。
IEなどはブラウザを更新してもムービーを再読み込みしてくれないときがあります。
(LoadVars使用時、値を再送信しないようです)
?ソースファイル(.fla)だけを修正して、swfファイルを書き出してない
等々…

これでもなければ私には解決できかねます。
Parent: 1297  reply: 1302 返信 編集 削除

[1302] 解決!

user: XCD | created: 2004-02-16 21:35
解決しましたよ?!
同じことで悩んでる方がいらしたら参考になると思うので、書いておきますね。

結論:Flashのプロジェクタで「POST送信が機能しない」のです。(↓参照)
http://www.macromedia.com/jp/support/flash/ts/documents/fl0252.html
Flashのバグでした、、、
ブラウザでswfファイルを実行するときちんとデータが渡りますが、ムービープレビューや直接swfファイルをダブルクリックすると渡りません。
Flashを使われている方がどのくらいおられるか分かりませんが、参考まで。

hamaji様には何度もお考え頂いて、ご迷惑おかけしました。
重ねて御礼申し上げます。
ありがとうございました。
Parent: 1300  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 683 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑