#author("2017-02-02T15:18:15+09:00;2017-02-02T14:04:36+09:00","","") * cmdもpluginも指定されていない場合、GETの引数指定(&...)があると、「有効なWikiNameではありません」と表示される。 [#jef166f2] - ページ: [[BugTrack2]] - 投稿者: [[ぃぉぃぉ]] - 優先順位: 低 - 状態: 完了 - カテゴリー: 本体バグ - 投稿日: 2007-06-14 (木) 20:03:06 - バージョン: 1.4.7 - リリース予定バージョン: 1.5.1 ** メッセージ [#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以外の引数を使用しないので本来ありえません。が、ページ中で呼び出されるプラグインに値を渡したいな、と思って...。こういうやりかたはいけないんですかねぇ? ** 実装 [#g8894c07] - %%[[commit:db41b7eb65b562f57b7fc887bb680f1dd9b561c4]]%% Simple page name 指定の際に "&" 以降をページ名の解釈から外す -------- - #以降はブラウザが削除している気がし始めました。アンカー指定(#....)に関してはプラグインで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}; - 初期化処理関連で、[[BugTrack2/294]] -- &new{2010-02-28 (日) 19:18:43}; - メッセージのex.2 関連: [[official:質問箱4/584]] -- &new{2010-05-28 (金) 14:58:14}; - %%[[commits/db41b7eb65b562f57b7fc887bb680f1dd9b561c4>osdn.jp:projects/pukiwiki/scm/git/pukiwiki/commits/db41b7eb65b562f57b7fc887bb680f1dd9b561c4]]%% で解決? -- &new{2016-01-21 (木) 21:45:41}; - 解決してますね。このBugTrackに気が付いていませんでした -- [[umorigu]] &new{2016-02-07 (日) 21:45:39}; - これも「commit:db41b7eb65b562f57b7fc887bb680f1dd9b561c4」が見れませんでした。 -- [[DS4]] &new{2017-02-02 (木) 14:04:36}; - [[commit:49b668749d39a9a1275e9b7f80abe7d5ade922a1]] #comment