示例#1
0
function FCoreTracerErrorHandler($errno, $errstr, $errfile, $errline){
    if (!(error_reporting() & $errno)){
        return;
    }
    switch ($errno) {
        case E_ERROR:
        case E_CORE_ERROR:
        case E_USER_ERROR:
        case E_COMPILE_ERROR:
            if (_D::DEBUG){
                global $g_Logger;
                if ($g_Logger){
                    echo $g_Logger->getFormattedLogs_HTML()."<br />\n";
                }
                echo "Fatal Error -- Dumping Log:<br />\n";
                echo "A FATAL ERROR OCCURED:<br />\n";
                echo "ERROR($errno): '$errstr'<br />\n";
                echo "In File $errfile At Line $errline\n";
                exit(1);
            } else {
                $message = "";
                global $g_Logger;
                if ($g_Logger){
                    $message .= $g_Logger->getFormattedLogs_HTML()."<br />\n";
                }
                $message .= "Fatal Error -- Dumping Log:<br />\n";
                $message .= "A FATAL ERROR OCCURED:<br />\n";
                $message .= "ERROR($errno): '$errstr'<br />\n";
                $message .= "In File $errfile At Line $errline\n";
                if (!mail(_D::WEBMASTER, "Boyds Nest Fatal Error", $message, "From: system@invalidresponse.com")){
                    echo "Error And Failed To Send Message";
                }
                _FCORE::Redirect(_D::REDIRECT_UNKNOWNERROR);
            }
            break;
        case E_RECOVERABLE_ERROR:
        case E_PARSE:
            global $g_Logger;
            if (!$g_Logger){ return true; }
            $g_Logger->pushLog($g_Logger->convFile($errfile), $errline, FCoreTracer::LEVEL_ERROR, $errstr);
            break;
        case E_WARNING:
        case E_CORE_WARNING:
        case E_DEPRECATED:
        case E_USER_DEPRECATED:
        case E_COMPILE_WARNING:
        case E_USER_DEPRECATED:
        case E_USER_WARNING:
            global $g_Logger;
            if (!$g_Logger){ return true; }
            $g_Logger->pushLog($g_Logger->convFile($errfile), $errline, FCoreTracer::LEVEL_WARN, $errstr);
            break;
        case E_STRICT:
        case E_USER_NOTICE:
        case E_NOTICE:
            global $g_Logger;
            if (!$g_Logger){ return true; }
            $g_Logger->pushLog($g_Logger->convFile($errfile), $errline, FCoreTracer::LEVEL_INFO, $errstr);
            break;
        default:
            return false;
    }
    return true;
}
示例#2
0
    public function absolutePreProcessing() {
        $pageID = _FCORE::IsSetPostDefault(
                        PAGES_PAGEID,
                        _FCORE::IsSetGetDefault(
                            PAGES_PAGEID,
                            false));
        if ($pageID){
            $db = _DB::_Connect();
            $this->crossInfo[_ADMINPAGE::PAGES_INFO] = DB_PAGE::_GetPage($db, $pageID);
            $this->crossInfo[_ADMINPAGE::USERS_LIST] = DB_USER::_GetUser($db, $this->crossInfo[_ADMINPAGE::PAGES_INFO]->getUserID());
            $action = _FCORE::IsSetPostDefault(ACTION_GO, false);
            if ($action){
                switch($action){
                    case ACTION_RIGHTS:
                        $userID = $this->crossInfo[_ADMINPAGE::PAGES_INFO]->getUserID();
                        if (_SESSION::GetIsMaster() || $userID == _SESSION::GetUserID()){
                            $rightsList = explode("&",_FCORE::IsSetPost(_ADMINPAGE::RIGHTS_LIST));
                            $count = sizeof($rightsList);
                            for($i=0; $i<$count; $i++){
                                try {
                                    $this->crossInfo[_ADMINPAGE::PAGES_INFO]->setRights(
                                            $rightsList[$i],
                                            _FCORE::IsSetPOST($rightsList[$i]));
                                    $this->crossInfo[RESULTS] .= "<div>Right Updated</div>";
                                } catch(Exception $e){ $this->crossInfo[RESULTS] .= "<div>Exception".$e->getMessage().$e->getLine().$e->getFile()."</div>"; }
                            }
                        } else {
                            $this->crossInfo[RESULTS] .= "<div>Failed</div>";
                        }
                        break;
                    case ACTION_UPDATE:
                        $title = _FCORE::IsSetPostDefault(PAGES_TITLE, false);
                        $content = _FCORE::IsSetPostDefault(PAGES_CONTENT, false);
                        if ($title && $content){
                            if ((($this->crossInfo[_ADMINPAGE::PAGES_INFO]->getUserID() == _SESSION::GetUserID()) && _SESSION::GetCanCDSelf()) ||
                                (($this->crossInfo[_ADMINPAGE::PAGES_INFO]->getUserID() != _SESSION::GetUserID()) && _SESSION::GetCanCDOther())) {
                                try {
                                    $this->crossInfo[_ADMINPAGE::PAGES_INFO]->setTitle($title);
                                    $this->crossInfo[_ADMINPAGE::PAGES_INFO]->setContent($content);
                                    $this->crossInfo[RESULTS] .= "Successfully Updated Content";
                                } catch(Exception $e){
                                    $this->crossInfo[RESULTS] .= "An Internal Error Occurred: ".$e->getMessage();
                                }
                            } else {
                                _FCORE::Redirect(ERROR_HTTP_ACCESSDENIED);
                            }
                        } else {

                        }
                        break;
                }
            }
            $this->crossInfo[_ADMINPAGE::RIGHTS_LIST] = DB_PAGE::_GetPageRights($db, $pageID);
            $db->disconnect();
        } else {
            _FCORE::Redirect(ERROR_HTTP_UNKNOWNACTION);
        }
    }