#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

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

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 0.011 sec.

SourceForge