*キャッシュの更新でエラーが出る [#v81026b6] -ページ: BugTrack -投稿者: [[reimy]] -優先順位: 緊急 -状態: 完了 -カテゴリー: 本体バグ -投稿日: 2003-06-02 (月) 06:11:13 -バージョン: **メッセージ [#nbc799e8] キャッシュの更新を実行すると次のようなエラーが大量に発生する。 Notice: Uninitialized string offset: 0 in /home/public_html/make_link.php on line 783 ---- -$nameが空のときに出るエラーなんですが、ここへ$nameを空にして飛んでくるのは誰だろう… -- [[ぱんだ]] &new{2003-06-02 (月) 09:28:47}; -実験をお願いします。以下のコードを入れて、何が表示されるか教えてください。 -- [[ぱんだ]] &new{2003-06-02 (月) 09:34:53}; make_link.php // 相対参照を展開 function get_fullname($name,$refer) { global $defaultpage; + static $once = TRUE; // 一回こっきり + if ($once and $name == '') + { + $once = FALSE; + print "<pre>get_fullname($name,$refer)</pre>"; + // バックトレースを表示 + print "<pre>";print_r(debug_backtrace());print "</pre>"; + return $refer; // 念のため + } if ($name{0} == '/') -テスト結果です。[:check_test結果] -- [[reimy]] &new{2003-06-02 (月) 14:38:04}; --ありがとうございました。頂き&削除しました。 -- [[ぱんだ]] &new{2003-06-02 (月) 14:58:35}; --make_linkが$name==''のときもget_fullname()を呼び出すことがあるのを修理しました。 diff -u -r1.43 make_link.php --- make_link.php 28 May 2003 04:50:45 -0000 1.43 +++ make_link.php 2 Jun 2003 05:56:31 -0000 @@ -559,16 +559,20 @@ { $alias = $name.$this->anchor; } - if ($name == '' and $this->anchor == '') + if ($name == '') { - return FALSE; + if ($this->anchor == '') + { + return FALSE; + } } - - $name = get_fullname($name,$page); - - if ($name != '' and !is_pagename($name)) + else { - return FALSE; + $name = get_fullname($name,$page); + if (!is_pagename($name)) + { + return FALSE; + } } return parent::setParam($page,$name,'pagename',$alias); } #comment //#comment