cmdもpluginも指定されていない場合、GETの引数指定(&...)があると、「有効なWikiNameではありません」と表示される。

  • ページ: BugTrack2
  • 投稿者: ぃぉぃぉ
  • 優先順位: 低
  • 状態: 完了
  • カテゴリー: 本体バグ
  • 投稿日: 2007-06-14 (木) 20:03:06
  • バージョン: 1.4.7
  • リリース予定バージョン: 1.5.1

メッセージ

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 へ移動すると発生。
    • 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
      readプラグインはpage以外の引数を使用しないので本来ありえません。が、ページ中で呼び出されるプラグインに値を渡したいな、と思って...。こういうやりかたはいけないんですかねぇ?

実装


  • #以降はブラウザが削除している気がし始めました。アンカー指定(#....)に関してはプラグインでLocationヘッダで移動するときに発生しそうです。 -- ぃぉぃぉ 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 を使っていない時は何にも意味が無いと思いますけど・・・。 -- 2007-11-12 (月) 23:48:59
  • 初期化処理関連で、BugTrack2/294? -- 2010-02-28 (日) 19:18:43
  • メッセージのex.2 関連: official:質問箱4/584 -- 2010-05-28 (金) 14:58:14
  • commits/db41b7eb65b562f57b7fc887bb680f1dd9b561c4 で解決? -- 2016-01-21 (木) 21:45:41
  • 解決してますね。このBugTrackに気が付いていませんでした -- umorigu 2016-02-07 (日) 21:45:39
  • これも「commit:db41b7eb65b562f57b7fc887bb680f1dd9b561c4」が見れませんでした。 -- DS4? 2017-02-02 (木) 14:04:36
  • commit:49b668749d39a9a1275e9b7f80abe7d5ade922a1 -- kintok?
  • 無事にパッチを当てられました。ありがとうございます。 -- DS4? 2017-02-02 (木) 22:55:48

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-02-02 (木) 22:55:48
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.363 sec.

OSDN