* QUERY_STRING を取得できない場合がある [#ee032ead]

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

** メッセージ [#gaa4cc1b]
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]] &new{2009-04-14 (火) 00:20:10};
-- [[cvs:lib/init.php]] (1.56)
- 変更を確認しましたので、完了にします。ありがとうございました。 --  &new{2009-04-18 (土) 20:15:39};

#comment
//#comment

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.038 sec.

SourceForge