ページを更新するプラグインが大文字で記述されると更新が空振りする

メッセージ

from official:質問箱/99

ページを更新用のフォームを提供するブロック型プラグインを大文字で記述した場合、登録した内容がページに反映されず、"ページが更新しました"と表示される。
※ たとえば #article ではなく、#ARTICLE と書くと発生する

該当の現象が発生するプラグインは、artice, memo, comment, insert, paint, pcomment, vote が見つかっている。

原因はプラグイン内のロジックでプラグインが大文字で記述されるケースを想定していないため。
ページを更新するプラグインでは、ページ内に同一プラグインが複数設置された場合に正しい位置を更新できるよう、更新時にページを再読み込みして、プラグインの記述箇所を探し出す。このとき、小文字で記述されている事を前提としているため、大文字で記述されていると、記述箇所の探索に失敗して更新が空振りする事が原因と思われる。

なお、PukiWiki1.3.8では大文字で記述する事を許さないため、1.4への移行時に、大文字での記述を許可するよう仕様が変更されたと思われる。


plugin.php
 $name = strtolower($name);      // 大文字と小文字を区別しないファイルシステム対策

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2005-04-10 (日) 21:55:32
Site admin: PukiWiki Development Team

PukiWiki 1.5.3+ © 2001-2020 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.306 sec.

OSDN