[Maple-dev: 127] Re: [PATCH] リクエストパラメータに多次元配列を使用した場合の対応

Back to archive index

TAKAGI Masahiro matak****@osk2*****
2006年 2月 28日 (火) 12:44:49 JST


高木です。

At Mon, 27 Feb 2006 23:42:48 +0900,
TAKAHASHI Kunihiko wrote:
> 
> > あと、少し気になったのですが、Request#dispatchAction() に記述されてい
> > る以下の 2 行には何か意味があるのでしょうか?
> > 
> > >                $action = preg_replace("/_x$/", "", $action);
> > >                $action = preg_replace("/_y$/", "", $action);
> > 
> > ざっとソースを眺めた限りでは、どのような意図があるコードなのかがうまく
> > つかめませんでした。
> > 
> <input type="image" name="dispatch_foo"> 対策ですね。
> 

At Mon, 27 Feb 2006 23:46:49 +0900,
kazunobu ichihashi wrote:
>
> <input type=image name="hoge" src="hoge.jpg">
> のように画像ボタンでSubmitした場合にクリックした画像の位置座標が
> POSTされてしまうので、その対応ですね。
>

なるほど、そういうことだったんですね。「テストコードの消し忘れ?」「何
かの隠し機能?」といろいろ考えていたのですが、これですっきりしました。


At Mon, 27 Feb 2006 23:42:48 +0900,
TAKAHASHI Kunihiko wrote:
> 
> もともとブラウザからは「dipatch_foo.x/dispatch_foo.y」がきてると
> 思うのですが(画像のクリックポイントの座標が渡ってくる。ここまでは
> 知っていた)、PHPが「.x/.y」を「_x/_y」にしちゃってるんですよね。
> (東京のPHP勉強会でPHPはなにかやばくなると「_」に変換するぞルールが
> あると聞いたことがあるんですがそんな感じ)
> 
よく見たら、しっかりマニュアルにも明記されていますね。
http://phpdoc.m-takagi.org/language.variables.external.html#language.variables.external.form.submit
http://phpdoc.m-takagi.org/language.variables.external.html#language.variables.external.dot-in-names

PHP のソースコードでいうと、main/php_variables.c の以下のあたりでしょ
うか。

> 	/* ensure that we don't have spaces or dots in the variable name (not binary safe) */
> 	for (p=var; *p; p++) {
> 		switch(*p) {
> 			case ' ':
> 			case '.':
> 				*p='_';
> 				break;
> 		}
> 	}

-- 
高木 正弘 mailto:matak****@osk2*****



Maple-dev メーリングリストの案内
Back to archive index