トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-wiki/232

ページの作成や編集にはユーザ登録が必要です。

長いページ名をもつページを新規作成できない

  • 投稿者: いしだなおと
  • カテゴリ: 本体
  • 優先度: 緊急
  • 状態: 保留
  • 日時: 2004年12月14日 03時47分02秒

 内容

表題の通りです。他の文字種を混在させた場合は検証していません。ブラウザはFirefoxを使いましたが、IE6SP2でも起こるようです。

再現手順

  1. メニューの「新規」リンクをクリック
  2. ページ名入力フォームに以下のような文字を入力して「作成」ボタンを押す
  3. 本文を入力するフォームが表示されるので適当に書く
    • 「プレビュー」ボタンを押したときは正常にプレビューできる
    • 「保存」ボタンを押すと下記の画面表示(Software error)になる

ページ名の例

1234567890123456789012345678901234567890
12345678901234567890123456789012345678901
123456789012345678901234567890123456789012

http://isnot.jp/dev/fswiki357/wiki.cgi?page=FrontPage

  • さくらのレンタルサーバ・スタンダード
  • FreeBSD 4.10-RELEASE-p5 i386
  • Apache 1.3.33
  • Perl5.8.4

画面表示

全角40文字まで
問題なし
全角41文字
Software error: at at lib/Util.pm line 351.
全角42文字より多いとき
Software error: at lib/Wiki/DefaultStorage.pm line 122.
※エラーログは入手不可

ローカルマシン(非公開)

  • Windows XP pro. SP2
  • Apache 2.0.52
  • ActivePerl5.8.4

画面表示

全角35文字まで
問題なし
全角36文字
Software error: at at lib/Util.pm line 351.
全角37文字より多いとき
Software error: at lib/Wiki/DefaultStorage.pm line 122.
エラーログ

[Tue Dec 14 03:19:50 2004] [error] [client 127.0.0.1] [Tue Dec 14 03:19:50 2004] wiki.cgi:  at lib/Util.pm line 351.
[Tue Dec 14 03:20:34 2004] [error] [client 127.0.0.1] [Tue Dec 14 03:20:33 2004] wiki.cgi:  at lib/Wiki/DefaultStorage.pm line 122., referer: http://localhost/******/wiki.cgi

 コメント

  • ファイルシステムの仕様だと思います。例えばWindowsの場合はパスも含めて最大255文字という制限があります。現状の実装では回避方法することはできないと思います。 - たけぞう (2004年12月14日 09時28分05秒)
  • なるほど。本当に何十文字という長いページ名が必要なら、例えば短い別名で保存して何らかのリストによってマッピングするような仕様が必要なわけですね。そこまで必要かは議論の余地はあるかと思います。ただ、現状の制限があったとしても、このように明らかに予見できるエラーに対して、software errorはよろしくないように思います。FSWikiLiteでも、open関数のエラーは全てUtil::error()でキャッチするようになっていますよね。少なくともそれはできるのでは。あるいはもっと親切にするなら、「作成」ボタンでsubmitした段階で長さを調べてメッセージを出すとことも可能に思います。FreeBSDのFFSも、LinuxのExt2fsも、WindowsのNTFSも255文字までという制限があるようです。 - いしだなおと (2004年12月14日 11時16分49秒)
  • 予見できるとは言っても利用されうる全てのファイルシステムの仕様を把握し、なおかつファイルシステムを判別可能でないとAP側での事前チェックは難しいと思います(Windows=NTFSとも限りませんし…)。LiteではCGI::Carpを使っていないのでUtil::errorでエラー時の処理を行っていますが、やってることは変わりません。できるとすればエラーメッセージを「ファイルの作成に失敗しました。」などとする程度ではないでしょうか。 - たけぞう (2004年12月14日 12時09分39秒)
  • 3.5系では保留とさせてください。 - たけぞう (2005年03月26日 21時06分34秒)
お名前: コメント:

最終更新時間:2017年12月01日 16時28分33秒