#author("2017-10-16T02:08:27+09:00","","") **概要 [#kcf556a5] ページの作成時、長すぎる名前のページを作成できないようにします。[ページの更新]のタイミングでエラーにするのではなく、編集自体をさせないようにします。 - 既に存在するページについては編集可能 - PukiWikiがEUC-JP版の場合、UTF-8換算したときの長さで制限 -- UTF-8に移行するときに変換できないページを作成してしまわないため -- この動作をさせないためには「if (! defined('PKWK_UTF8_ENABLE'))」のブロックを削除 - ファイル名最大長は $filename_max_length = 250; の部分で指定 -- ".txt"まで含んだ値。カウンタ(counter/)は.countの拡張子なので更に2文字長くなる。 - 添付ファイルについては [[../長すぎるファイル名の添付ファイルアップロードを抑止]] を参照 **差分 [#r80f8a09] 1.4.7 UTF-8版からの差分 --- ../../../pukiwiki2/public/plugin/edit.inc.php Sun Feb 13 11:01:19 2011 +++ edit.inc.php Sun Mar 6 22:35:31 2011 @@ -28,6 +28,29 @@ } $postdata = @join('', get_source($page)); + if ($postdata == '') + { + // Check Page name length + $filename_max_length = 250; + + $filename = encode($page) . '.txt'; + if (! defined('PKWK_UTF8_ENABLE')) + { + $utf8page = mb_convert_encoding($page, 'UTF-8', 'EUC-JP'); + $filename = encode($utf8page) . '.txt'; + } + $filename_length = strlen($filename); + if ($filename_length > $filename_max_length) + { + $msg = "<b>Error: Filename too long.</b><br/>\n" . + "Page name: " . htmlspecialchars($page) . "<br/>\n" . + "Filename: $filename<br>\n" . + "Filename length: $filename_length<br/>\n" . + "Filename limit: $filename_max_length<br/>\n"; + // Filename too long + return array('msg'=>$_title_edit, 'body'=>$msg); + } + } if ($postdata == '') $postdata = auto_template($page); return array('msg'=>$_title_edit, 'body'=>edit_form($page, $postdata)); ** 関連 [#i3ca5d44] - [[PukiWiki/1.4/ちょっと便利に/長すぎるファイル名の添付ファイルアップロードを抑止]] **コメント [#fa6836f4] - ページ内容を書き込んでしまってからページ名が不正であることに気づくケースをなくすために作りました -- [[umorigu]] &new{2011-03-06 (日) 23:06:52}; - 関連: [[BugTrack/84]] WikiName/BracketName の長さ検査他 -- [[umorigu]] &new{2017-10-16 (月) 02:08:27}; #comment