* cmdもpluginも指定されていない場合、アンカー指定(#...)やGETの引数指定(&...)があると、「有効なWikiNameではありません」と表示される。 [#jef166f2]

- ページ: [[BugTrack2]]
- 投稿者: [[ぃぉぃぉ]]
- 優先順位: 低
- 状態: 提案
- カテゴリー: 本体バグ
- 投稿日: 2007-06-14 (木) 20:03:06
- バージョン: 1.4.7

** メッセージ [#y5589999]
lib/init.phpにて、cmdもpluginも指定されていない場合は、QUERY_STRINGをページ名かInterWikiNameであるとみなしているため、アンカー指定(#...)やGETの引数指定(&...)までがページ名として$vars['page']に入ってしまい、plugin/read.inc.phpで「有効なWikiNameではありません」とエラー出力してしまう。

lib/init.phpのl.354
 - $get['page'] = $post['page'] = $vars['page'] = $arg;
 + $get['page'] = $post['page'] = $vars['page'] = preg_replace("/(.*?)[#&].*/", "$1", $arg);
として、#もしくは&以降は削ってしまってはどうでしょうか。

[[pukiwiki:自作プラグイン/areaedit.inc.php]]のv0.18が動かないのがきっかけで調査しました。記入時に#areaedit'''数値'''へとぶ機能が追加されると、「有効なWikiNameではありません」と表示されるようになってしまいました。このプラグインの動作確認は1.4.3だったようなので、それ以降のバージョンでのデグレードでしょうか?

-ex.)
-- プラグイン等のLocationヘッダでhttp://pukiwiki.sourceforge.jp/dev/?BugTrack2%2F245#y5589999 へ移動すると発生。&br;
-- http://pukiwiki.sourceforge.jp/dev/?cmd=read&page=BugTrack2%2F245#y5589999 なら問題ない。%%って、ここでは問題起きませんね。anhttpdを使用しているのですが、サーバー側のQUERY_STRINGの仕様の違いorバグな気もします。%%
-ex.2)
-- http://pukiwiki.sourceforge.jp/dev/?BugTrack2%2F245&dummy  ... NG
-- http://pukiwiki.sourceforge.jp/dev/?cmd=read&page=BugTrack2%2F245&dummy  ... OK&br;
readプラグインはpage以外の引数を使用しないので本来ありえません。が、ページ中で呼び出されるプラグインに値を渡したいな、と思って...。こういうやりかたはいけないんですかねぇ?

--------
- #以降はブラウザが削除している気がし始めました。アンカー指定(#....)に関してはプラグインでLocationヘッダで移動するときに発生しそうです。 -- [[ぃぉぃぉ]] &new{2007-06-14 (木) 20:28:15};
- 下に書いてある部分のすぐ上で、「整形: page, strip_bracket()」 をしているので、$vars['page'] が空でない時は、その値を使うとか。
 // cmdもpluginも指定されていない場合は、QUERY_STRINGをページ名かInterWikiNameであるとみなす
 if (! isset($vars['cmd']) && ! isset($vars['plugin'])) {
 
 	$get['cmd']  = $post['cmd']  = $vars['cmd']  = 'read';
 
 	if ($vars['page'] == '') {
 		if ($arg == '') $arg = $defaultpage;
 		$arg = rawurldecode($arg);
 		$arg = strip_bracket($arg);
 		$arg = input_filter($arg);
 		$get['page'] = $post['page'] = $vars['page'] = $arg;
 	}
 }
&page=pagename を使っていない時は何にも意味が無いと思いますけど・・・。 --  &new{2007-11-12 (月) 23:48:59};

#comment

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.048 sec.

OSDN