ダウンロード
Magazine
開発
アカウント
ダウンロード
Magazine
開発
ログイン
アカウント/パスワードを忘れた
アカウント作成
言語
ヘルプ
言語
ヘルプ
×
ログイン
ログイン名
パスワード
×
アカウント/パスワードを忘れた
日本語の翻訳状況
カテゴリ:
ソフトウェア
人物
PersonalForge
Magazine
Wiki
検索
OSDN
>
ソフトウェアを探す
>
インターネット
>
WWW/HTTP
>
動的コンテンツ
>
XOOPS
>
チケット一覧/検索
>
チケット #7994
XOOPS
概要
プロジェクト概要
開発ダッシュボード
Webページ
開発メンバー
画像ギャラリー
公開フィード一覧
活動
統計情報
活動履歴
ダウンロード
リリース一覧
統計
ソースコード
コードリポジトリリスト
CVS
リポジトリ閲覧
チケット
チケット一覧
マイルストーン一覧
チケットの種類一覧
コンポーネント一覧
よく使われるチケット一覧のリスト/RSS
新規チケット登録
文書
コミュニケーション
フォーラム
フォーラム一覧
ヘルプ (1)
公開討議 (1)
メーリングリスト
MLの一覧
xoops-cvslog
ニュース
チケット #7994
チケット一覧/検索
新規チケット登録
RSS
データベースのコネクション失敗時の処理
登録:
2006-02-06 16:12
最終更新:
2006-07-04 11:16
モニタ
ON
OFF
報告者:
toshimitsu
担当者:
(del#8225)
チケットの種類:
バグ
状況:
オープン [担当者決定済み]
コンポーネント:
(未割り当て)
マイルストーン:
(未割り当て)
優先度:
5 - 中
重要度:
5 - 中
解決法:
不正
ファイル:
なし
詳細
返信
Xoops2系全
データベースのコネクション失敗したときでも
getDatabaseConnection
取得の失敗判定してはいるが、処理を中断せずにエラー
if (!$instance->connect())
{
trigger_error
("Unable to connect to database", E_USER_ERROR);
}
とだけしているが
xoops2.0.xでは
で次の処理 config 取得などの処理にいくのは
失敗して当然だが
$xoopsDB =& XoopsDatabaseFactory::getDatabaseConnection
();
とか
$db =& Database::getInstance();
失敗して当然なのに、コネクションが出来る前提でほとんど組ま
れているので
次の処理へ進んで半端に
処理がチグハグに継続されてしまう可能性がある方が
サイトにとって良くないと思います
キッパリ中断する方が影響が少ないのではないかと思います
チケットの履歴 (4 件中 3 件表示)
古い履歴を表示
2006-02-06 16:46
更新者:
(del#8225)
担当者
が
(未割り当て)
から
nobunobu
に更新されました
解決法
が
なし
から
不正
に更新されました
コメント
返信
Logged In: YES
user_id=8225
trigger_error("Unable to connect to database", E_USER_ERROR);
をかけることによって、
class/errorhandler.php内の、function handleError($error)にて
E_USER_ERROR場合は強制終了するように、すでになっていると思い
ます。
なにか次の行に進んでいるような形跡があればお知らせください。
2006-04-06 17:21
更新者:
toshimitsu
コメント
返信
Logged In: YES
user_id=6033
nobunobu さんへ
(さっき投稿がエラーになったので再投稿)
class/errorhandler.php内の判定処理には気が付いてませんでした。
ですが
piCalのように途中でerrorhandlerを切ってしまうものがあるし
errorhandlerに関係なく止めてしまう方がよいとは思います
2006-04-25 08:39
更新者:
toshimitsu
コメント
返信
Logged In: YES
user_id=6033
xoops2.0.14 rc1 を確認するついで見たのですが
class/errorhandler.php内の、function handleError($error)にて
では、
PHPデバグをONのときにしか、動作は中断されません
判定の順番がおかしいです
-------------------
function handleError($error)
{
if (($error['errno'] & error_reporting()) != $error
['errno']) {
return;
}
$this->_errors[] = $error;
if ($error['errno'] == E_USER_ERROR) {
$this->_isFatal = true;
exit();
}
}
-----------------
変更するとするとこのこの順でないと
意図した動きにはならないはずです
function handleError($error)
{
if ($error['errno'] == E_USER_ERROR) {
$this->_isFatal = true;
exit();
}
if (($error['errno'] & error_reporting()) != $error
['errno']) {
return;
}
$this->_errors[] = $error;
}
-------------------------------
どちらにしても、多くの人が利用しているpical を使用している場合は
ブロックを表示するだけでも、
途中でerrorhandlerはキャンセルされるはずなので
これにたよりすぎるのはいかがと思います
止めた方がよいところは止める方がベターだと思います
2006-07-04 11:16
更新者:
toshimitsu
コメント
返信
Logged In: YES
user_id=6033
function handleError($error)にて
error_reporting(0)の時は強制終了はしないのではないでしょうか?
つまりデバグをONにしたときにしか強制終了はしないというふうになっ
ていると思います
やっぱり止めたいなら判定処理の順番がおかしいと思う
------------------
/**
* Handle an error
*
* @param array $error Associative array containing
error info
* @access public
* @return void
*/
function handleError($error)
{
if ($error['errno'] == E_USER_ERROR) {
$this->_errors[] = $error; //エラーメッセージを表
示のため
$this->_isFatal = true;
exit();
}
if (($error['errno'] & error_reporting()) != $error
['errno']) {
return;
}
$this->_errors[] = $error;
}
--------------------
添付ファイルリスト (
0
)
添付ファイルリスト
添付ファイルはありません
編集
コメントの追加
ログインしていません。
ログインしていない状態では、コメントに記載者の記録が残りません。 »
ログインする
コメントの追加
プレビュー
適用
データベースのコネクション失敗したときでも
getDatabaseConnection
取得の失敗判定してはいるが、処理を中断せずにエラー
if (!$instance->connect())
{
trigger_error
("Unable to connect to database", E_USER_ERROR);
}
とだけしているが
xoops2.0.xでは
で次の処理 config 取得などの処理にいくのは
失敗して当然だが
$xoopsDB =& XoopsDatabaseFactory::getDatabaseConnection
();
とか
$db =& Database::getInstance();
失敗して当然なのに、コネクションが出来る前提でほとんど組ま
れているので
次の処理へ進んで半端に
処理がチグハグに継続されてしまう可能性がある方が
サイトにとって良くないと思います
キッパリ中断する方が影響が少ないのではないかと思います