メインメニュー
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
My Links
メイン
   なんでも
     Notice嵐対応方法
新規スレッド作成画面へ

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
taquino
投稿日時: 2005-11-11 23:20
管理人
登録日: 2004-10-22
居住地: 湘南
投稿: 1543
Notice嵐対応方法
PHPバージョンアップに伴うNoticeエラー多発に対する「表示をさせない方法」についてです。XOOPS Cube公式のフォーラムでは既出ですので、まとめみたいなものです。

要は管理者メニュー→システム管理→一般設定で「デバッグモードを有効にする」を「オフ」にすれば良いんですが、更にいくつかの情報があるので書かせて頂きます。

ひとつは標準のnewsモジュールで、これはモジュール内にデバッグモードをオンにするコードが含まれています。
これには、公式のフォーラム記事にある通り、newsモジュール中の modules/news/submit.php の33行目あたりにある「error_reporting(E_ALL);」をコメントアウトすることが必要です。

//error_reporting(E_ALL);

とするわけです。

実際には、トラブル発生時などにはデバッグモードをONにする必要も出てきます。
この際、Noticeエラーは解決の糸口になることもあるにはありますが、多くの場合はトラブル原因ではないものだったりします。
そこで、Noticeエラーを出さないハックを紹介しておきます。

まず、include/common.php の103行目あたりを編集し、「E_ALL」を「E_ALL ^ E_NOTICE」とします。

error_reporting(E_ALL ^ E_NOTICE);

更に、class/errorhandler.php の149行目あたりにある「foreach( $this->_errors as $error )」の次の行に「if ($error['errno'] == E_NOTICE) { continue; }」を追加します。

foreach( $this->_errors as $error ) 
if ($error['errno'] == E_NOTICE) { continue; }

この結果、Noticeが1行残るようではありますが、嵐は襲ってこなくなります。

上記は、XREA.COMの環境で検証してみました。もちろん、コアのハッキングなのでリスクが無いわけではありませんから、元に戻せるように準備し、自分の責任の下で行ってください。
返信
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

新規スレッド作成画面へ