二重インクルードするとページが表示できない。

  • ページ: BugTrack
  • 投稿者: 龍司
  • 優先順位: 低
  • 状態: 完了
  • カテゴリー: プラグイン
  • 投稿日: 2002-09-28 (土) 17:02:51
  • バージョン:

メッセージ

他のページをincludeプラグインでインクルードしているページを更に別のページからincludeすると、そのページが表示できなくなります。

最初1,2回は表示されるときもあるのですが、その場合も何回目かに表示できなくなります。

今は二重インクルードしないように気をつけているのですが、ついウッカリということもありそうなので、二重インクルードできなくするか、問題なく多重インクルードできるようになればと思います。

できたら、多重インクルードできるようになれば良いのですが、何故うまく表示されるときと、まったく表示できないときがあるのかがわからず、手をつけられないでいます。


  • 試してみたら、Segmentation faultでApacheが落ちました XD -- ぱんだ 2002-09-28 (土) 21:55:25
  • 以下のパッチを試してみてください。うちではうまく動くようになりました。で、うまくいくようならPHPのバグ*1に引っかかっている可能性が高いです。 -- ぱんだ 2002-09-28 (土) 22:00:14
    html.php
    
    +$tmp = array();
    +foreach ($str as $line) {
    -	$str = preg_replace("/
    +	$tmp[] = preg_replace("/
    		(
    			(\[\[([^\]]+)\:(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\]\])
    			|
    			(\[(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)\s([^\]]+)\])
    			|
    			(https?|ftp|news)(:\/\/[-_.!~*'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)
    			|
    			([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)
    			|
    			(\[\[([^\]]+)\:([[:alnum:]\-_.]+@[[:alnum:]\-_]+\.[[:alnum:]\-_\.]+)\]\])
    			|
    			($InterWikiName)
    			|
    			($BracketName)
    			|
    			($WikiName)
    -		)/ex","make_link('$1')",$str);
    +		)/ex","make_link('$1')",$line);
    +}
    +$str = $tmp;
  • パッチ試してみました。2重インクルードしても問題なくページ表示できてるようです。ありがとうございました。 -- 龍司 2002-09-29 (日) 18:06:36
  • これも取り込ませていただきます。いつもありがとうございます>ぱんださん。でも取り込みには少し時間が掛ります。すみません。 -- ゆう 2002-09-29 (日) 18:44:42
  • これ、まずいです。alignプラグインの中からinline2を呼び出してますので、上記のパッチを当てるとalignプラグインで指定した文字列が正しく表示されなくなります。 -- reimy 2002-10-02 (水) 21:51:32
    • うーん。inline2にスカラー値を渡すのは反則*2です~ ^^;) alignのほうを何とかできませんか? -- ぱんだ 2002-10-03 (木) 00:06:20
      • とりあえず、align.inc.phpの27行目あたりを
        -	$string = inline2($string);
        +	list($string) = inline2(array($string));
        のようにしてはどうでしょう。 -- ぱんだ 2002-10-03 (木) 00:17:38
  • BugTrack/138のでこれは解消されてますよね。 -- ゆう 2002-10-15 (火) 15:02:36
    • たぶん直っているはずです :) どういうときにおかしくなるかはまだ掴みきれていないので断言はできまでんが。 -- ぱんだ 2002-10-15 (火) 22:53:33

*1 配列を複雑なパターンで再帰的にpreg_replaceするとおかしくなる?
*2 いくつかの条件が重なって奇跡的に動作してしまいますが

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2002-10-15 (火) 22:53:49
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.166 sec.

OSDN