三 基類 調試類 錯誤類

來源:互聯網
上載者:User
錯誤 <?php
//
// +----------------------------------------------------------------------+
// | WHXBB          基類                                                  |
// +----------------------------------------------------------------------+
// | Copyright (c) 2001 NetFish Software                                  |
// |                                                                      |
// | Author: whxbb(whxbb@21cn.com)                                        |
// +----------------------------------------------------------------------+
//
// $Id: whxbb.class.php,v 0.1 2001/8/4 12:53:33 yf Exp $
//
// 禁止直接存取該頁面
if (basename($HTTP_SERVER_VARS['PHP_SELF']) == "whxbb.class.php") {
    header("HTTP/1.0 404 Not Found");
}

// 調試標誌,為1時,系統運行在調試狀態
define('WHXBB_DEBUG_FLAG', 0);

// 出錯代碼的預定義
// 忽略錯誤
define('WHXBB_ERROR_IGNORE', 1);
// 在頁面顯示錯誤
define('WHXBB_ERROR_ECHO'  , 2);
// 彈出錯誤警告並顯示錯誤
define('WHXBB_ERROR_ALERT' , 4);
// 停止程式的運行
define('WHXBB_ERROR_DIE'   , 8);
// 返回上頁
define('WHXBB_ERROR_RETURN', 16);
// 跳到指定頁
define('WHXBB_ERROR_GOTO', 32);

/**
* Purpose
*  基類, 在該類中封裝了一些常用的方法
*
* @author  : whxbb(whxbb@21cn.com)
* @version : 0.1
* @date    :  2001/12/4
*/
class WHXBB
{
    /**
     * 調試標誌
     * @access protected
     */
    var $_debug;
    /**
     * 資料庫連接標誌
     * @access protect
     */
    var $_conn;

    function WHXBB()
    {
  // 資料庫連接標誌
        global $_conn;
        if (!is_resource($conn))
            die("資料庫連接錯誤");
        $this->_conn = $conn;
        $this->_debug = WHXBB_DEBUG_FLAG;
    }

    /**
     * 處理字串
     * @param $str 要處理的字串
     * @param $act in 將'替換成\’out 把\’替換成'
  * @access public
     */
    function OperateString(&$str, $act)
    {
        if($act == 'in')
            $str = str_replace("'", "\\’", $str);
        if($act == 'out')
            $str = str_replace("\\’", "'", $str);
    }
    /**
     * 判斷一個變數是否為錯誤對象
     *
     * @param   $data   要判斷的變數
     * @access  public
     * @return  bool    是 true 不是 false
     */
    function isError($data) {
        return (bool)(is_object($data) &&
                      (get_class($data) == "whxbb_error" ||
                       is_subclass_of($data, "whxbb_error")));
    }
    /**
     * 判斷一個變數是否為分頁對象
     *
     * @param   $data   the value to test
     * @access  public
     * @return  bool    true if $data is an Pager
     */
    function isPager($data) {
        return (bool)(is_object($data) &&
                      (get_class($data) == "pager" ||
                       is_subclass_of($data, "pager")));
    }
}

/**
* 調試類
*
* Purpose
*
* 程式調試用
*
* @author  : wxhbb(whxbb@21cn.com)
* @version : 0.1
* @date    :  2001/8/4
*/
class WHXBB_Debug Extends WHXBB
{
    function WHXBB_Debug($msg)
    {
        $this->WHXBB();
        if($this->_debug == 1)
        {
            echo "\n<br>WHXBB Debug >>> $msg<br>\n";
        }    
    }
}
/**
* Purpose
* 錯誤處理(觸發錯誤,顯示錯誤)
*
* @author  : whxbb(whxbb@21cn.com)
* @version : 0.1
* @date    :  2001/8/4
*/
class WHXBB_Error extends WHXBB
{
    /**
     * 錯誤資訊
     * @access protected
     */
    var $_errNo;
    /**
     * 錯誤碼
     * @access protected
     */
    var $_errMsg;
    /** 報錯方式 參見"出錯代碼的預定義" */
    var $_reportMethod;

    /**
     * 構造一個錯誤對象
     * @param $errMsg   錯誤資訊, 錯誤的字元描述
     * @param $errNo    錯誤碼, 錯誤的代碼
     * @param $reportMethod 報錯方式,參見"出錯代碼的預定義"
     * @param $param1 參數一,如跳轉到指定頁面時頁面的url
     * @param $param2 參數二 保留
     * @access public
     */
    function WHXBB_Error($errMsg, $errNo, $reportMethod = WHXBB_ERROR_IGNORE, $param1 = '', $param2 = '')
    {
        $this->WHXBB();
        $this->_errMsg = $errMsg;
        $this->_errNo = $errNo;
        $this->_reportMethod = $reportMethod;
        switch($reportMethod)
        {
            case WHXBB_ERROR_IGNORE:
                break;
            case WHXBB_ERROR_ECHO:
                echo $errMsg;
                break;
            case WHXBB_ERROR_ALERT:
                JS::Alert($errMsg);
                break;
            case WHXBB_ERROR_DIE:
                $this->Close();
                exit;
                break;
            case WHXBB_ERROR_DIE + WHXBB_ERROR_ALERT:
                JS::Alert($errMsg);
                $this->Close();
                exit;
                break;
            case WHXBB_ERROR_DIE + WHXBB_ERROR_ECHO:
                echo $errMsg;
                $this->Close();
                exit;
                break;
            case WHXBB_ERROR_ALERT + WHXBB_ERROR_RETURN:
                JS::ALert($errMsg);
                JS::Back();
                break;
            case WHXBB_ERROR_RETURN:
                JS::Back();
                break;
            case WHXBB_ERROR_GOTO:
                JS::Goto($param1);
                break;
            case WHXBB_ERROR_GOTO + WHXBB_ERROR_ALERT:
                JS::ALert($errMsg);
                JS::Goto($param1);
                break;
        }
        new WHXBB_Debug($errNo.":".$errMsg);
    }
    /**
     * 得到錯誤對象的錯誤資訊
     */
    function GetMsg()
    {
        return $this->_errMsg;
    }
    /**
     * 得到錯誤對象的錯誤代買
     */
    function GetNo()
    {
        return $this->_errNo;
    }
}
?>

相關文章

Beyond APAC's No.1 Cloud

19.6% IaaS Market Share in Asia Pacific - Gartner IT Service report, 2018

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。