ページの作成や編集にはユーザ登録が必要です。
lib/Wiki.pm line 364
- 投稿者: 本多
- カテゴリ: 本体
- 優先度: 普通
- 状態: 却下
- 日時: 2004年05月21日 09時32分18秒
内容
ファイルをアップロードするときに「Undefined subroutine CGI2::upload」というエラーが出るのでFAQにあるとおり新しいCGI.pmをインストールしました。
するとファイルの編集・保存時に別のInternal Server ERROR 500が出ました(ただしファイルは正しく保存できているようです)
Internal Server ERROR 500のままじゃ、わけがわからないのでKCatch 1.13をインストールしてWiki.cgiのuse CGIの前の行にuse KCatch qw( execdata); DATAと記述を入れて実行したところ、
[wiki.cgi:30:die] Can't call method "hook" on an undefined value at lib/Wiki.pm line 364.
というエラーメッセージを得られました。
そこで(わけもわからず)、この行
$obj->hook($self,$name,@_);
をコメントアウトしたら確かに保存字のエラーは消えたのですが、今度は上部に現れる「編集・差分・ソース・PDF」というボタンが現れなくなりました(新規で既にあるファイルを指定したりMenuにと書いておけば編集はできはするのですが、不便です)
推測ですがこの行のhook()は関数ポインタで、objによって色々な関数に置き換えられているんだと思うのですが、「保存時」に呼び出されるときhook()関数ポインタに関数定義が割り付けられていない状態のようです。
CGI.pmを入れ替えてからの現象なのですが、CGI.pmを元に戻しても治らなくなってしまいました。
環境はSolaris 8Perl 5.005_03FreeStyle Wiki 3.5.5と、なっています。
調べ方、修正方法、手がかりなどございましたら、ご指摘願えますでしょうか。
コメント
- すいません。誤報だったようです。再び、最初から新規にインストールしなおしたら正常に動作しました。ソースコードは、KCatch以外いじってないのでログイン後の何かの設定か、プラグインによる影響かもしれませんが、現在現象は発生しなくなりました。また再現したら再現方法を報告します。 - 本多 (2004年05月21日 10時09分06秒)
最終更新時間:2004年05月21日 10時09分30秒