* Autolinkを有効にしていると、ページが増えると、ページ内容が表示されなくなる [#s0f664ec]

- ページ: [[BugTrack2]]
- 投稿者: [[Mika]]
- 優先順位: 重要
- 状態: 提案
- カテゴリー: 本体バグ
- 投稿日: 2007-02-19 (月) 17:15:06
- バージョン: 1.4.7

** メッセージ [#u1708413]
Autolinkをonにしていると、ページが増えたとき、すべてのページの内容(スキンのheader、footerなどを除く。よするにページの本文・脚注などmainの部分)が表示されなくなります。

原因は、Autolinkをpreg_matchなどで実現しているため。ページが増えて、preg_patternの文字列が16Kbyte以上になった場合に発生します。

各ページのページ名(階層化した場合も含む)の長さにもよりますが、ページ数が2000~3000程度になるとautolink.datの1行目の長さが16Kbyteを超えて、この症状が発生します。

対処療法ですが、現在のバージョンではアルファベットだけのページ名を別扱いに処理している部分を、アルファベット・カタカナ・ひらがなだけのページ名(もしくは漢字の木偏あたりまで)を対象に変更することで、バランスをとって対処しています。

(どこで分けるかは、個々のサイトのページ名の文字の使われ方で左右されますが)

いずれにしても、これは対処療法でしかありませんので、今後のバージョンで根本的な解決を望みます。
--------
- このバグは、PukiWikiサイトに対するSPAM攻撃にも使える。けっこう、やばい -- [[Yahoo!]] &new{2007-02-19 (月) 17:20:37};
- こんにちは。この件は既存のBugTrackにあるはずですので、そちらに話題を合流させて下さい。対策については具体的な案が無いのであれば、これらのBugTrackがそのための場所になるでしょう。 -- [[henoheno]] &new{2007-02-19 (月) 21:14:15};
- [[BugTrack2/81]] ですね :) -- [[teanan]] &new{2007-02-20 (火) 02:28:52};
- Mikaさんは、16KB という制限をどのように調べられたのでしょう。仮にその値が鉄板なら、16KBを超えないよう正規表現を複数個生成する、という方法が安定して使えそうなのですが。([[BugTrack2/81]]も参照) -- [[henoheno]] &new{2007-02-22 (木) 23:47:21};
- error_reportingの値をE_ALLにしておけば、PHPがそのようなエラーをはいてくれます。環境は、PHP 5.2.1/Apache 2.2/Windows XP SP2/PukiWiki 1.4.7 UTF-8/AutoLink = 4。  -- [[Mika Friend]] &new{2007-02-24 (土) 15:17:11};
- error_reportingの値をE_ALLにしておけば、PHPがそのようなエラーをはいてくれます。環境は、PHP 5.2.1/Apache 2.2/Windows XP SP2/PukiWiki 1.4.7 UTF-8/AutoLink = 4、ページ数約2300でアウト。  -- [[Mika Friend]] &new{2007-02-24 (土) 15:17:11};

#comment

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

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.208 sec.

OSDN