下載
軟體開發
帳戶
下載
軟體開發
登入
我忘記帳戶名和密碼了
新增帳戶
語言
手冊
語言
手冊
×
登入
登入名稱
密碼
×
我忘記帳戶名和密碼了
繁體中文翻譯狀態
類別:
軟體
人
PersonalForge
Magazine
Wiki
搜尋
OSDN
>
軟體搜索
>
Internet
>
WWW/HTTP
>
Dynamic Content
>
XOOPS
>
Ticket List/Search
>
待辦事項 #7994
XOOPS
描述
專案概要
開發人員儀表板
專案的網頁
Developers
Image Gallery
List of RSS Feeds
活動
使用統計
歷史
檔案下載
發布列表
Stats
原始碼
儲存庫列表
CVS
查看儲存庫
待辦事項
待辦事項列表
里程碑列表
類型列表
元件列表
List of frequently used tickets/RSS
新增待辦事項
文檔
溝通
討論區
討論區列表
幫助論壇 (1)
公開討論 (1)
通信論壇
通信論壇列表
xoops-cvslog
新聞
待辦事項 #7994
待辦事項列表
新增待辦事項
RSS
データベースのコネクション失敗時の処理
啟用日期:
2006-02-06 16:12
最後更新:
2006-07-04 11:16
監視
ON
OFF
回報者:
toshimitsu
負責人:
(del#8225)
類型:
問題回報
狀態:
開啟 [Owner assigned]
元件:
(無)
里程碑:
(無)
優先權:
5 - 中
嚴重程度:
5 - 中
處理結果:
Invalid
檔案:
無
細節
回覆
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();
失敗して当然なのに、コネクションが出来る前提でほとんど組ま
れているので
次の処理へ進んで半端に
処理がチグハグに継続されてしまう可能性がある方が
サイトにとって良くないと思います
キッパリ中断する方が影響が少ないのではないかと思います
Ticket History (3/4 Histories)
Show older Histories
2006-02-06 16:46
Updated by:
(del#8225)
負責人
Update from
(無)
to
nobunobu
處理結果
Update from
無
to
Invalid
評語
回覆
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
Updated by:
toshimitsu
評語
回覆
Logged In: YES
user_id=6033
nobunobu さんへ
(さっき投稿がエラーになったので再投稿)
class/errorhandler.php内の判定処理には気が付いてませんでした。
ですが
piCalのように途中でerrorhandlerを切ってしまうものがあるし
errorhandlerに関係なく止めてしまう方がよいとは思います
2006-04-25 08:39
Updated by:
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
Updated by:
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;
}
--------------------
Attachment File List (
0
)
Attachment File List
No attachments
編輯
新增評語
You are not logged in.
I you are not logged in, your comment will be treated as an anonymous post. »
登入
新增評語
預覽
提交
データベースのコネクション失敗したときでも
getDatabaseConnection
取得の失敗判定してはいるが、処理を中断せずにエラー
if (!$instance->connect())
{
trigger_error
("Unable to connect to database", E_USER_ERROR);
}
とだけしているが
xoops2.0.xでは
で次の処理 config 取得などの処理にいくのは
失敗して当然だが
$xoopsDB =& XoopsDatabaseFactory::getDatabaseConnection
();
とか
$db =& Database::getInstance();
失敗して当然なのに、コネクションが出来る前提でほとんど組ま
れているので
次の処理へ進んで半端に
処理がチグハグに継続されてしまう可能性がある方が
サイトにとって良くないと思います
キッパリ中断する方が影響が少ないのではないかと思います