QUERY_STRING を取得できない場合がある

  • ページ: BugTrack2
  • 投稿者: 名無しさん
  • 優先順位: 低
  • 状態: 完了
  • カテゴリー: 本体バグ
  • 投稿日: 2009-04-13 (月) 21:08:25
  • バージョン: 1.4.8_alpha2

メッセージ

dev では、http://pukiwiki.sourceforge.jp/dev/?0 でアクセスできているので環境依存だと思いますが、 自分のローカル環境では上の形のURL で0 へ飛ばずにデフォルトページが表示されます。(http://pukiwiki.sourceforge.jp/dev/?cmd=read&page=0 の形では正しく表示されます)

cvs:lib/init.php (1.55) の該当部分を見たのですが、

/////////////////////////////////////////////////
// QUERY_STRINGを取得

$arg = '';
if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING']) {
	$arg = & $_SERVER['QUERY_STRING'];
} else if (isset($_SERVER['argv']) && ! empty($_SERVER['argv'])) {
	$arg = & $_SERVER['argv'][0];
}

if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING']) の後半の条件で文字列"0" をFALSE 判定して、取り込んでくれないのが原因みたいです。

encode_hint のように比較演算子を使って$_SERVER['QUERY_STRING']を判定する形にするとうまくいきました。

$arg = '';
if (isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] != '') {
	$arg = & $_SERVER['QUERY_STRING'];
} else if (isset($_SERVER['argv']) && ! empty($_SERVER['argv'])) {
	$arg = & $_SERVER['argv'][0];
}

  • コメントありがとうございます。ViewVCのannotateを辿りましたが、該当部分は本来 "!=" があったものの cvs:init.php (r1.81) で削ってしまっていたようです。r1_4_4_rc1以降のリリース全てに影響していると思います。 -- henoheno 2009-04-14 (火) 00:20:10
  • 変更を確認しましたので、完了にします。ありがとうございました。 -- 2009-04-18 (土) 20:15:39

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-04-18 (土) 20:15:40
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.179 sec.

OSDN