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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     SWFから出したクエリー文字列の「_(アンダーバー)」が%5Fにエンコードされている。
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
れん
Åê¹ÆNo.7249
投稿日時: 2004-5-12 23:07
新米
居住地: 兵庫県
投稿: 9
使用環境:
WinXP SP2
MacOS9.2.2 MacOS10.2.8
Flash Pro 8
SWFから出したクエリー文字列の「_(アンダーバー)」が%5Fにエンコードされている。
こんばんは。

いつも御世話になっております。
米田と申します。

今現在Flashで作成したムービーにある

 MCにある入力文字ボックスから searchValue = "test";

             MCに v_host = "localhost";

を定義してあります。

これをMCにあるボタンからgetURLでCGIへGETで2つの変数を送ろうとしています。


その際、クエリー文字列として、ブラウザのアドレス欄に表示されているのですが、

check.cgi?searchValue=test&v%5Fhost=localhost

のように何故か変数名v_hostのアンダーバーが%5Fにエンコードされてしまいます。
このおかげでcgiに正しい変数名データを渡す事ができず困っております。

CGI側の変数名は決定事項なので変数名を変更する事はできません。
なんとか変数名にアンダーバーをつける方法はありますでしょうか?

何卒宜しく御願い致します。

MacOS9.2.2
Flash MX


ゲスト
Åê¹ÆNo.7254
投稿日時: 2004-5-13 10:55
Re: SWFから出したクエリー文字列の「_(アンダーバー)」が%5Fにエンコードされている。
こんにちは、taijiです

URLエンコードのせいですね。
一部のシステムでは、それが予約語の場合があるのでエンコードが行われます。

例えば:
「 ~ 」 %7e
「 _ 」 %5f

因みに、5f、7eはシフトJISの文字コードです。


予想で申し訳ないのですが
HTTP Redirect の locationが、既に%5fを返している気がします。
サーバとブラウザ及びプロキシに原因がありそうですね。
設定側の解決策は現状だとわからないですね。

ちなみに、POSTで送信してもやはりエンコードされてしまいますか?
私は、Flash ⇒ Javaですが、POSTデータ送信の場合は問題なく「_」が使えています。
サーバーはtomcat4.1.27で、ブラウザはIE6.0で、プロキシサーバは使用していません。

参考になれば幸いです。
見当はずれな回答でしたらごめんなさい。

引用:

れんさんは書きました:

CGI側の変数名は決定事項なので変数名を変更する事はできません。
なんとか変数名にアンダーバーをつける方法はありますでしょうか?

youich
Åê¹ÆNo.7272
投稿日時: 2004-5-13 21:37
職人
居住地: kobe
投稿: 349
使用環境:
Tiger
Re: SWFから出したクエリー文字列の「_(アンダーバー)」が%5Fにエンコードされている。
引用:


のように何故か変数名v_hostのアンダーバーが%5Fにエンコードされてしまいます。
このおかげでcgiに正しい変数名データを渡す事ができず困っております。

CGI側の変数名は決定事項なので変数名を変更する事はできません。
なんとか変数名にアンダーバーをつける方法はありますでしょうか?


TaijiさんのおっしゃるようにFlashが送信の際にエンコードしてるんですね。
TomcatでもFlashからの生のpostデーターはエンコードされてると思います。
サーバーサイドで対処してもらうのが1番だと思いますけど、もし今の状態の変更が無理というのなら、
保証はないけですけどLoadVarsを使って↓のようにすればGet + エンコード無しで送れるのではないかと思います。
LoadVars.prototype.mySend = function(url, target,method) {
	LoadVars.prototype._toString = LoadVars.prototype.toString;
	LoadVars.prototype.toString = function() {
		return unescape(this._toString());
	};
	ASSetPropFlags(LoadVars.prototype, "_toString", 3);
	this.send(url,target, method);
	LoadVars.prototype.toString = LoadVars.prototype._toString;
	
};
ASSetPropFlags(LoadVars.prototype, "mySend", 3);
// --------------------------------

lo  = new LoadVars();
lo.v_host = "localhost";

lo.mySend("http://*****","_self","GET");


----------------
- yo

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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