永原のブログ

NetCommons2 で_INVALID_INPUT

こんにちは。
株式会社オープンソース・ワークショップの永原です。

NetCommons2 でデータの復元などしていると、画面に _INVALID_INPUT エラーというのが出て、トップ画面にリダイレクトするリダイレクトループになりました。

今回の原因はデータベース復元時にテーブルが不足していたのですが。

_INVALID_INPUT などのエラーが出た時、ソースを見てもあちこちにこのメッセージはあり、原因が特定しにくく、デバッグしにくいので、ヒントを書いておきます。

NetCommons2 では、システム的なエラーは以下のクラスにため込まれ、最後に出力されます。
maple/nccore/ErrorExtraList.class.php

なので、このクラスにエラーを追加するところでデバッグログなど出せば、どこが原因か突き詰めやすくなります。

エラーを追加するadd メソッドに、以下のようにデバッグログを仕込むなど。
※ デバッグログ関数は当社製のデバッグログ機能です。ダウンロードコーナーよりダウンロードしてお使いください。

/**
* エラー文字列を追加
*
* @param string $key エラーが発生した項目
* @param string $str エラー文字列
* @access public
* @since 3.0.0
*/
function add($key, $value)
{
test_log($key);
test_log($value);
test_log(debug_backtrace());

以上