コード例 #1
0
ファイル: utils.php プロジェクト: gw-acadtech/VCL
function abort($errcode, $query = "")
{
    global $mysql_link_vcl, $mysql_link_acct, $ERRORS, $user, $mode;
    global $ENABLE_ITECSAUTH, $requestInfo;
    if ($mode == 'xmlrpccall') {
        xmlRPCabort($errcode, $query);
    }
    if (ONLINEDEBUG && $user["adminlevel"] == "developer") {
        if ($errcode >= 100 && $errcode < 400) {
            print "<font color=red>" . mysql_error($mysql_link_vcl) . "</font><br>\n";
            if ($ENABLE_ITECSAUTH) {
                print "<font color=red>" . mysql_error($mysql_link_acct) . "</font><br>\n";
            }
            print "{$query}<br>\n";
        }
        print "ERROR({$errcode}): " . $ERRORS["{$errcode}"] . "<BR>\n";
        print "<pre>\n";
        print getBacktraceString(FALSE);
        print "</pre>\n";
    } else {
        $message = "";
        if ($errcode >= 100 && $errcode < 400) {
            $message .= mysql_error($mysql_link_vcl) . "\n";
            $message .= mysql_error($mysql_link_acct) . "\n";
            $message .= $query . "\n";
        }
        $message .= "ERROR({$errcode}): " . $ERRORS["{$errcode}"] . "\n";
        $message .= "Logged in user was " . $user["unityid"] . "\n";
        $message .= "Mode was {$mode}\n\n";
        if ($errcode == 20) {
            $urlArray = explode('?', $_SERVER["HTTP_REFERER"]);
            $message .= "HTTP_REFERER URL - " . $urlArray[0] . "\n";
            $message .= "correct URL - " . BASEURL . SCRIPT . "\n";
        }
        if ($errcode == 40) {
            $message .= "One of the following computers didn't get a mgmt node:\n";
            foreach ($requestInfo["images"] as $key => $imageid) {
                $message .= "imageid: {$imageid}\n";
                $message .= "compid: {$requestInfo['computers'][$key]}\n";
            }
        }
        $message .= getBacktraceString(FALSE);
        $mailParams = "-f" . ENVELOPESENDER;
        mail(ERROREMAIL, "Error with VCL pages ({$errcode})", $message, '', $mailParams);
        print "An error has occurred.  If this problem persists, please email ";
        print "<a href=\"mailto:" . HELPEMAIL . "?Subject=Problem%20With%20VCL\">";
        print HELPEMAIL . "</a> for further assistance.  Please include the ";
        print "steps you took that led up to this problem in your email message.";
    }
    dbDisconnect();
    printHTMLFooter();
    // release semaphore lock
    semUnlock();
    exit;
}
コード例 #2
0
ファイル: utils.php プロジェクト: bq-xiao/apache-vcl
function abort($errcode, $query = "")
{
    global $mysql_link_vcl, $mysql_link_acct, $ERRORS, $user, $mode;
    global $ENABLE_ITECSAUTH, $requestInfo, $aborting;
    if (!isset($aborting)) {
        $aborting = 1;
    } elseif ($aborting == 1) {
        return;
    }
    if ($mode == 'xmlrpccall') {
        xmlRPCabort($errcode, $query);
    }
    if (ONLINEDEBUG && checkUserHasPerm('View Debug Information')) {
        if ($errcode >= 100 && $errcode < 400) {
            print "<font color=red>" . mysql_error($mysql_link_vcl) . "</font><br>\n";
            error_log(mysql_error($mysql_link_vcl));
            if ($ENABLE_ITECSAUTH) {
                print "<font color=red>" . mysql_error($mysql_link_acct) . "</font><br>\n";
                error_log(mysql_error($mysql_link_acct));
            }
            print "{$query}<br>\n";
            error_log($query);
        }
        print "ERROR({$errcode}): " . $ERRORS["{$errcode}"] . "<BR>\n";
        error_log("ERROR({$errcode}): " . $ERRORS["{$errcode}"]);
        $backtrace = getBacktraceString(FALSE);
        print "<pre>\n";
        print $backtrace;
        print "</pre>\n";
        error_log($backtrace);
    } else {
        $message = "";
        if ($errcode >= 100 && $errcode < 400) {
            $message .= mysql_error($mysql_link_vcl) . "\n";
            if ($ENABLE_ITECSAUTH) {
                $message .= mysql_error($mysql_link_acct) . "\n";
            }
            $message .= $query . "\n";
        }
        $message .= "ERROR({$errcode}): " . $ERRORS["{$errcode}"] . "\n";
        if (is_array($user) && array_key_exists('unityid', $user)) {
            $message .= "Logged in user was " . $user["unityid"] . "\n";
        }
        $message .= "Mode was {$mode}\n\n";
        if ($errcode == 20) {
            $urlArray = explode('?', $_SERVER["HTTP_REFERER"]);
            $message .= "HTTP_REFERER URL - " . $urlArray[0] . "\n";
            $message .= "correct URL - " . BASEURL . SCRIPT . "\n";
        }
        if ($errcode == 40) {
            $message .= "One of the following computers didn't get a mgmt node:\n";
            foreach ($requestInfo["images"] as $key => $imageid) {
                $message .= "imageid: {$imageid}\n";
                $message .= "compid: {$requestInfo['computers'][$key]}\n";
            }
        }
        $message .= getBacktraceString(FALSE);
        if ($errcode == 8) {
            $message = preg_replace("/Argument#: 3 => .*\n/", "Argument#: 3 => *********\n", $message);
        }
        $mailParams = "-f" . ENVELOPESENDER;
        error_log($message);
        mail(ERROREMAIL, "Error with VCL pages ({$errcode})", $message, '', $mailParams);
        $subj = rawurlencode(i("Problem With VCL"));
        $href = "<a href=\"mailto:" . HELPEMAIL . "?Subject={$subj}\">" . HELPEMAIL . "</a>";
        printf(i("An error has occurred. If this problem persists, please email %s for further assistance. Please include the steps you took that led up to this problem in your email message."), $href);
    }
    // call clearPrivCache in case that helps clear up what caused the error
    clearPrivCache();
    // release semaphore lock
    cleanSemaphore();
    dbDisconnect();
    printHTMLFooter();
    exit;
}