中秋节快乐
This commit is contained in:
@@ -0,0 +1,310 @@
|
||||
<!DOCTYPE html>
|
||||
<html dir="ltr" lang="zh">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="theme-color" content="#fff">
|
||||
<meta name="viewport" content="initial-scale=1, minimum-scale=1, width=device-width">
|
||||
<title>系统错误</title>
|
||||
<style>
|
||||
a {
|
||||
color: var(--link-color);
|
||||
}
|
||||
|
||||
body {
|
||||
--background-color: #fff;
|
||||
--error-code-color: var(--google-gray-700);
|
||||
--google-blue-100: rgb(210, 227, 252);
|
||||
--google-blue-300: rgb(138, 180, 248);
|
||||
--google-blue-600: rgb(26, 115, 232);
|
||||
--google-blue-700: rgb(25, 103, 210);
|
||||
--google-gray-100: rgb(241, 243, 244);
|
||||
--google-gray-300: rgb(218, 220, 224);
|
||||
--google-gray-500: rgb(154, 160, 166);
|
||||
--google-gray-50: rgb(248, 249, 250);
|
||||
--google-gray-600: rgb(128, 134, 139);
|
||||
--google-gray-700: rgb(95, 99, 104);
|
||||
--google-gray-800: rgb(60, 64, 67);
|
||||
--google-gray-900: rgb(32, 33, 36);
|
||||
--heading-color: var(--google-gray-900);
|
||||
--primary-button-fill-color-active: var(--google-blue-700);
|
||||
--primary-button-fill-color: var(--google-blue-600);
|
||||
--primary-button-text-color: #fff;
|
||||
--text-color: var(--google-gray-700);
|
||||
background: var(--background-color);
|
||||
color: var(--text-color);
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
html {
|
||||
-webkit-text-size-adjust: 100%;
|
||||
font-size: 125%;
|
||||
}
|
||||
|
||||
.icon {
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
|
||||
body.captive-portal,
|
||||
body.dark-mode-available,
|
||||
body.neterror,
|
||||
body.supervised-user-block,
|
||||
.offline body {
|
||||
--background-color: var(--google-gray-900);
|
||||
--error-code-color: var(--google-gray-500);
|
||||
--heading-color: var(--google-gray-500);
|
||||
--link-color: var(--google-blue-300);
|
||||
--primary-button-fill-color-active: rgb(129, 162, 208);
|
||||
--primary-button-fill-color: var(--google-blue-300);
|
||||
--primary-button-text-color: var(--google-gray-900);
|
||||
--text-color: var(--google-gray-500);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
button {
|
||||
border: 0;
|
||||
border-radius: 4px;
|
||||
box-sizing: border-box;
|
||||
color: var(--primary-button-text-color);
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
font-size: .875em;
|
||||
margin: 0;
|
||||
padding: 8px 16px;
|
||||
transition: box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1);
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
[dir='rtl'] button {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.ssl button {
|
||||
background: var(--primary-button-fill-color);
|
||||
}
|
||||
|
||||
button:active {
|
||||
background: var(--primary-button-fill-color-active);
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
|
||||
h1 {
|
||||
color: var(--heading-color);
|
||||
font-size: 1.6em;
|
||||
font-weight: normal;
|
||||
line-height: 1.25em;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.2em;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.icon {
|
||||
height: 72px;
|
||||
margin: 0 0 40px;
|
||||
width: 72px;
|
||||
}
|
||||
|
||||
.interstitial-wrapper {
|
||||
box-sizing: border-box;
|
||||
font-size: 1em;
|
||||
line-height: 1.6em;
|
||||
margin: 14vh auto 0;
|
||||
max-width: 600px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#main-message>p {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.nav-wrapper {
|
||||
margin-top: 51px;
|
||||
}
|
||||
|
||||
.nav-wrapper::after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: table;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media (max-width: 700px) {
|
||||
.interstitial-wrapper {
|
||||
padding: 0 10%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 420px) {
|
||||
|
||||
button,
|
||||
[dir='rtl'] button{
|
||||
float: none;
|
||||
font-size: .825em;
|
||||
font-weight: 500;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 16px 24px;
|
||||
}
|
||||
|
||||
.interstitial-wrapper {
|
||||
padding: 0 5%;
|
||||
}
|
||||
|
||||
|
||||
.nav-wrapper {
|
||||
margin-top: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 240px) and (max-width: 420px) and (min-height: 401px),
|
||||
(min-width: 421px) and (min-height: 240px) and (max-height: 560px) {
|
||||
body .nav-wrapper {
|
||||
background: var(--background-color);
|
||||
bottom: 0;
|
||||
box-shadow: 0 -22px 40px var(--background-color);
|
||||
left: 0;
|
||||
margin: 0 auto;
|
||||
max-width: 736px;
|
||||
padding-left: 24px;
|
||||
padding-right: 24px;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.interstitial-wrapper {
|
||||
max-width: 736px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (max-width: 420px) and (orientation: portrait),
|
||||
(max-height: 560px) {
|
||||
body {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
button,
|
||||
[dir='rtl'] button,
|
||||
button.small-link {
|
||||
font-family: Roboto-Regular, Helvetica;
|
||||
font-size: .933em;
|
||||
margin: 6px 0;
|
||||
transform: translatez(0);
|
||||
}
|
||||
|
||||
.nav-wrapper {
|
||||
box-sizing: border-box;
|
||||
padding-bottom: 8px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
h1 {
|
||||
font-size: 1.5em;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.icon {
|
||||
margin-bottom: 5.69vh;
|
||||
}
|
||||
|
||||
.interstitial-wrapper {
|
||||
box-sizing: border-box;
|
||||
margin: 7vh auto 12px;
|
||||
padding: 0 24px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.interstitial-wrapper p {
|
||||
font-size: .95em;
|
||||
line-height: 1.61em;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (min-width: 421px) and (min-height: 500px) and (max-height: 560px) {
|
||||
.interstitial-wrapper {
|
||||
margin-top: 10vh;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-height: 400px) and (orientation:portrait) {
|
||||
.interstitial-wrapper {
|
||||
margin-bottom: 145px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-height: 299px) {
|
||||
.nav-wrapper {
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-height: 500px) and (max-height: 650px) and (max-width: 414px) and (orientation: portrait) {
|
||||
.interstitial-wrapper {
|
||||
margin-top: 7vh;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-height: 650px) and (max-width: 414px) and (orientation: portrait) {
|
||||
.interstitial-wrapper {
|
||||
margin-top: 10vh;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.ssl .icon {
|
||||
background-image: -webkit-image-set(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAMAAABiM0N1AAABAlBMVEUAAADcRTfcRDfdRET/gIDcRjr/ZmbjVTncRDfcRTfcRDfdRDzgSTncRDjeSDvcRTjbRDfbRDjeRzvcRjfbRjjcRTjcRTjcRTfdRTfcRDjdRTjcRTjbRDjbRTjbRTjbRTfcRjjdRDrcRjfbRTjZQzfcRDjZRDfZRzbWQzXXRDXXQzbXQzbWQjXYSDvWQjbbRDfOQDPSQTTUQjXCPDDNPzPJPjLGPTHVQjXMPzPRQTTWQjXLPzPDPDHYQzbAOzDTQTXHPTLIPjK8Oi++Oy/FPTHEPTHPQDTQQDTUQTXBPDDKPjK/OzC9Oi/////PQDPRQDS3OS66OS7TQTTEPDHXQjbMPjMBhLaWAAAAL3RSTlMA4tgPAhYFCcL98B4x9ie1+s49WICbqXNKZY3pjuqcgVdLZnL2qKg9zmXpjfontV8LANsAAAJrSURBVHhe7ZTnduIwFAY3ARIgBAg9vW1v173ROylby/u/yso2Fx3MNaxs9h/zAHM+Sfa8+M/s2LFjx+3tdjwH+/sHWxHVAerb8KSyANnUFkRXwLiK78llgJHJxRalwSMd11OGOeV4nsM9FO0dxhJdw4LrOJ6jYy46PoohqgEHatE9JViiFNWTPIElTpIRRXcQ4C6aJ3EJAS4TkUQXsMJFFE++CCsU8xFEBSAoiHsaQNIQ7yuQCFe3DiHUhftKIlzdKoRSFe0r8sXDAkSoumkIigYaIOkIfeWi56EESFm8r1w0fFIl4epWgBA9qOMpmirCfeWijtoa9WSx6taAELFBRl/vilS3BJRIbRk9/VFTsLrifUXRuNfXLU0y/7m6p0CKxqN+v6lJU/k3eJxu7Os5LWKDHi1tYstKG1zON1X3DGiRMR80Mx3fdCbc1+bQe3o2SJrYXcV0fFMxL9xXiz0987BBtux65qaCeF8lHCR3FabBTQ3xvk4M1yN5B/Mw2+urew8hTP1BM38Qnu5evK8gMw+7IcfH9E3ZlEBfMSO//Kf35+Cm6ua+rhbSYDeEa9CUyW3qK1HIjj5DBz8dWd0bWCd6Ult/uMPEr+BmbV/JHrVG/a9MsEybV5fsK50R3frmBFXtCtVXmt73H4PhQ4t9k9rkJ55tYXwZrO4rCEUfPHfUEcuaZC/umw97TfaVpslu2tCb2lRWnBlKFtf+huwrjaa6Pxv7RfgW7nubJPtKI/X0puQO4k/Pfe/ovtLY7KbxVwve0/sE3VeaLosIbkEDvt8Hoq/hKGwQYvoq5OMnoq/hLAbgc/FVn33PX7pAfE5QHR6fAAAAAElFTkSuQmCC) 1x,
|
||||
url(data:image/png;base64,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) 2x);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body id="body" class="ssl extended-reporting-has-checkbox">
|
||||
<div class="interstitial-wrapper">
|
||||
<div id="main-content">
|
||||
<div class="icon" id="icon"></div>
|
||||
<div id="main-message">
|
||||
<h1>系统发生错误:</h1>
|
||||
<p>虽然不知道错在哪,但是确实出了点小问题...</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nav-wrapper">
|
||||
<a href="javascript:history.go(-1);"><button id="primary-button">好的,我知道了</button></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<style>
|
||||
html {
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: system-ui, PingFang SC, STHeiti, sans-serif;
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
button {
|
||||
font-family: system-ui, PingFang SC, STHeiti, sans-serif;
|
||||
}
|
||||
</style>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,585 @@
|
||||
<?php
|
||||
/** @var array $traces */
|
||||
if (!function_exists('parse_padding')) {
|
||||
function parse_padding($source)
|
||||
{
|
||||
$length = strlen(strval(count($source['source']) + $source['first']));
|
||||
return 40 + ($length - 1) * 8;
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('parse_class')) {
|
||||
function parse_class($name)
|
||||
{
|
||||
$names = explode('\\', $name);
|
||||
return '<abbr title="' . $name . '">' . end($names) . '</abbr>';
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('parse_file')) {
|
||||
function parse_file($file, $line)
|
||||
{
|
||||
return '<a class="toggle" title="' . "{$file} line {$line}" . '">' . basename($file) . " line {$line}" . '</a>';
|
||||
}
|
||||
}
|
||||
|
||||
if (!function_exists('parse_args')) {
|
||||
function parse_args($args)
|
||||
{
|
||||
$result = [];
|
||||
foreach ($args as $key => $item) {
|
||||
switch (true) {
|
||||
case is_object($item):
|
||||
$value = sprintf('<em>object</em>(%s)', parse_class(get_class($item)));
|
||||
break;
|
||||
case is_array($item):
|
||||
if (count($item) > 3) {
|
||||
$value = sprintf('[%s, ...]', parse_args(array_slice($item, 0, 3)));
|
||||
} else {
|
||||
$value = sprintf('[%s]', parse_args($item));
|
||||
}
|
||||
break;
|
||||
case is_string($item):
|
||||
if (strlen($item) > 20) {
|
||||
$value = sprintf(
|
||||
'\'<a class="toggle" title="%s">%s...</a>\'',
|
||||
htmlentities($item),
|
||||
htmlentities(substr($item, 0, 20))
|
||||
);
|
||||
} else {
|
||||
$value = sprintf("'%s'", htmlentities($item));
|
||||
}
|
||||
break;
|
||||
case is_int($item):
|
||||
case is_float($item):
|
||||
$value = $item;
|
||||
break;
|
||||
case is_null($item):
|
||||
$value = '<em>null</em>';
|
||||
break;
|
||||
case is_bool($item):
|
||||
$value = '<em>' . ($item ? 'true' : 'false') . '</em>';
|
||||
break;
|
||||
case is_resource($item):
|
||||
$value = '<em>resource</em>';
|
||||
break;
|
||||
default:
|
||||
$value = htmlentities(str_replace("\n", '', var_export(strval($item), true)));
|
||||
break;
|
||||
}
|
||||
|
||||
$result[] = is_int($key) ? $value : "'{$key}' => {$value}";
|
||||
}
|
||||
|
||||
return implode(', ', $result);
|
||||
}
|
||||
}
|
||||
if (!function_exists('echo_value')) {
|
||||
function echo_value($val)
|
||||
{
|
||||
if (is_array($val) || is_object($val)) {
|
||||
echo htmlentities(json_encode($val, JSON_PRETTY_PRINT));
|
||||
} elseif (is_bool($val)) {
|
||||
echo $val ? 'true' : 'false';
|
||||
} elseif (is_scalar($val)) {
|
||||
echo htmlentities($val);
|
||||
} else {
|
||||
echo 'Resource';
|
||||
}
|
||||
}
|
||||
}
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>系统发生错误</title>
|
||||
<meta name="robots" content="noindex,nofollow" />
|
||||
<style>
|
||||
/* Base */
|
||||
body {
|
||||
color: #333;
|
||||
font: 16px Verdana, "Helvetica Neue", helvetica, Arial, 'Microsoft YaHei', sans-serif;
|
||||
margin: 0;
|
||||
padding: 0 20px 20px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
margin: 10px 0 0;
|
||||
font-size: 28px;
|
||||
font-weight: 500;
|
||||
line-height: 32px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
color: #4288ce;
|
||||
font-weight: 400;
|
||||
padding: 6px 0;
|
||||
margin: 6px 0 0;
|
||||
font-size: 18px;
|
||||
border-bottom: 1px solid #eee;
|
||||
}
|
||||
|
||||
h3 {
|
||||
margin: 12px;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
abbr {
|
||||
cursor: help;
|
||||
text-decoration: underline;
|
||||
text-decoration-style: dotted;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #868686;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.line-error {
|
||||
background: #f8cbcb;
|
||||
}
|
||||
|
||||
.echo table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.echo pre {
|
||||
padding: 16px;
|
||||
overflow: auto;
|
||||
font-size: 85%;
|
||||
line-height: 1.45;
|
||||
background-color: #f7f7f7;
|
||||
border: 0;
|
||||
border-radius: 3px;
|
||||
font-family: Consolas, "Liberation Mono", Menlo, Courier, monospace;
|
||||
}
|
||||
|
||||
.echo pre>pre {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Exception Info */
|
||||
.exception {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.exception .message {
|
||||
padding: 12px;
|
||||
border: 1px solid #ddd;
|
||||
border-bottom: 0 none;
|
||||
line-height: 18px;
|
||||
font-size: 16px;
|
||||
border-top-left-radius: 4px;
|
||||
border-top-right-radius: 4px;
|
||||
font-family: Consolas, "Liberation Mono", Courier, Verdana, "微软雅黑", serif;
|
||||
}
|
||||
|
||||
.exception .code {
|
||||
float: left;
|
||||
text-align: center;
|
||||
color: #fff;
|
||||
margin-right: 12px;
|
||||
padding: 16px;
|
||||
border-radius: 4px;
|
||||
background: #999;
|
||||
}
|
||||
|
||||
.exception .source-code {
|
||||
padding: 6px;
|
||||
border: 1px solid #ddd;
|
||||
|
||||
background: #f9f9f9;
|
||||
overflow-x: auto;
|
||||
|
||||
}
|
||||
|
||||
.exception .source-code pre {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.exception .source-code pre ol {
|
||||
margin: 0;
|
||||
color: #4288ce;
|
||||
display: inline-block;
|
||||
min-width: 100%;
|
||||
box-sizing: border-box;
|
||||
font-size: 14px;
|
||||
font-family: "Century Gothic", Consolas, "Liberation Mono", Courier, Verdana, serif;
|
||||
padding-left: <?php echo (isset($source) && !empty($source)) ? parse_padding($source) : 40; ?>px;
|
||||
}
|
||||
|
||||
.exception .source-code pre li {
|
||||
border-left: 1px solid #ddd;
|
||||
height: 18px;
|
||||
line-height: 18px;
|
||||
}
|
||||
|
||||
.exception .source-code pre code {
|
||||
color: #333;
|
||||
height: 100%;
|
||||
display: inline-block;
|
||||
border-left: 1px solid #fff;
|
||||
font-size: 14px;
|
||||
font-family: Consolas, "Liberation Mono", Courier, Verdana, "微软雅黑", serif;
|
||||
}
|
||||
|
||||
.exception .trace {
|
||||
padding: 6px;
|
||||
border: 1px solid #ddd;
|
||||
border-top: 0 none;
|
||||
line-height: 16px;
|
||||
font-size: 14px;
|
||||
font-family: Consolas, "Liberation Mono", Courier, Verdana, "微软雅黑", serif;
|
||||
}
|
||||
|
||||
.exception .trace h2:hover {
|
||||
text-decoration: underline;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.exception .trace ol {
|
||||
margin: 12px;
|
||||
}
|
||||
|
||||
.exception .trace ol li {
|
||||
padding: 2px 4px;
|
||||
}
|
||||
|
||||
.exception div:last-child {
|
||||
border-bottom-left-radius: 4px;
|
||||
border-bottom-right-radius: 4px;
|
||||
}
|
||||
|
||||
/* Exception Variables */
|
||||
.exception-var table {
|
||||
width: 100%;
|
||||
margin: 12px 0;
|
||||
box-sizing: border-box;
|
||||
table-layout: fixed;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
.exception-var table caption {
|
||||
text-align: left;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
padding: 6px 0;
|
||||
}
|
||||
|
||||
.exception-var table caption small {
|
||||
font-weight: 300;
|
||||
display: inline-block;
|
||||
margin-left: 10px;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.exception-var table tbody {
|
||||
font-size: 13px;
|
||||
font-family: Consolas, "Liberation Mono", Courier, "微软雅黑", serif;
|
||||
}
|
||||
|
||||
.exception-var table td {
|
||||
padding: 0 6px;
|
||||
vertical-align: top;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.exception-var table td:first-child {
|
||||
width: 28%;
|
||||
font-weight: bold;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.exception-var table td pre {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
/* Copyright Info */
|
||||
.copyright {
|
||||
margin-top: 24px;
|
||||
padding: 12px 0;
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
/* SPAN elements with the classes below are added by prettyprint. */
|
||||
pre.prettyprint .pln {
|
||||
color: #000
|
||||
}
|
||||
|
||||
/* plain text */
|
||||
pre.prettyprint .str {
|
||||
color: #080
|
||||
}
|
||||
|
||||
/* string content */
|
||||
pre.prettyprint .kwd {
|
||||
color: #008
|
||||
}
|
||||
|
||||
/* a keyword */
|
||||
pre.prettyprint .com {
|
||||
color: #800
|
||||
}
|
||||
|
||||
/* a comment */
|
||||
pre.prettyprint .typ {
|
||||
color: #606
|
||||
}
|
||||
|
||||
/* a type name */
|
||||
pre.prettyprint .lit {
|
||||
color: #066
|
||||
}
|
||||
|
||||
/* a literal value */
|
||||
/* punctuation, lisp open bracket, lisp close bracket */
|
||||
pre.prettyprint .pun,
|
||||
pre.prettyprint .opn,
|
||||
pre.prettyprint .clo {
|
||||
color: #660
|
||||
}
|
||||
|
||||
pre.prettyprint .tag {
|
||||
color: #008
|
||||
}
|
||||
|
||||
/* a markup tag name */
|
||||
pre.prettyprint .atn {
|
||||
color: #606
|
||||
}
|
||||
|
||||
/* a markup attribute name */
|
||||
pre.prettyprint .atv {
|
||||
color: #080
|
||||
}
|
||||
|
||||
/* a markup attribute value */
|
||||
pre.prettyprint .dec,
|
||||
pre.prettyprint .var {
|
||||
color: #606
|
||||
}
|
||||
|
||||
/* a declaration; a variable name */
|
||||
pre.prettyprint .fun {
|
||||
color: red
|
||||
}
|
||||
|
||||
/* a function name */
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<?php if (\think\facade\App::isDebug()) { ?>
|
||||
<?php foreach ($traces as $index => $trace) { ?>
|
||||
<div class="exception">
|
||||
<div class="message">
|
||||
<div class="info">
|
||||
<div>
|
||||
<h2><?php echo "#{$index} [{$trace['code']}]" . sprintf('%s in %s', parse_class($trace['name']), parse_file($trace['file'], $trace['line'])); ?></h2>
|
||||
</div>
|
||||
<div>
|
||||
<h1><?php echo nl2br(htmlentities($trace['message'])); ?></h1>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php if (!empty($trace['source'])) { ?>
|
||||
<div class="source-code">
|
||||
<pre class="prettyprint lang-php"><ol start="<?php echo $trace['source']['first']; ?>"><?php foreach ((array) $trace['source']['source'] as $key => $value) { ?><li class="line-<?php echo "{$index}-";
|
||||
echo $key + $trace['source']['first'];
|
||||
echo $trace['line'] === $key + $trace['source']['first'] ? ' line-error' : ''; ?>"><code><?php echo htmlentities($value); ?></code></li><?php } ?></ol></pre>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<div class="trace">
|
||||
<h2 data-expand="<?php echo 0 === $index ? '1' : '0'; ?>">Call Stack</h2>
|
||||
<ol>
|
||||
<li><?php echo sprintf('in %s', parse_file($trace['file'], $trace['line'])); ?></li>
|
||||
<?php foreach ((array) $trace['trace'] as $value) { ?>
|
||||
<li>
|
||||
<?php
|
||||
// Show Function
|
||||
if ($value['function']) {
|
||||
echo sprintf(
|
||||
'at %s%s%s(%s)',
|
||||
isset($value['class']) ? parse_class($value['class']) : '',
|
||||
isset($value['type']) ? $value['type'] : '',
|
||||
$value['function'],
|
||||
isset($value['args']) ? parse_args($value['args']) : ''
|
||||
);
|
||||
}
|
||||
|
||||
// Show line
|
||||
if (isset($value['file']) && isset($value['line'])) {
|
||||
echo sprintf(' in %s', parse_file($value['file'], $value['line']));
|
||||
}
|
||||
?>
|
||||
</li>
|
||||
<?php } ?>
|
||||
</ol>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php } else { ?>
|
||||
<div class="exception">
|
||||
<div class="info">
|
||||
<h1><?php echo htmlentities($message); ?></h1>
|
||||
</div>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($datas)) { ?>
|
||||
<div class="exception-var">
|
||||
<h2>Exception Datas</h2>
|
||||
<?php foreach ((array) $datas as $label => $value) { ?>
|
||||
<table>
|
||||
<?php if (empty($value)) { ?>
|
||||
<caption><?php echo $label; ?><small>empty</small></caption>
|
||||
<?php } else { ?>
|
||||
<caption><?php echo $label; ?></caption>
|
||||
<tbody>
|
||||
<?php foreach ((array) $value as $key => $val) { ?>
|
||||
<tr>
|
||||
<td><?php echo htmlentities($key); ?></td>
|
||||
<td><?php echo_value($val); ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
<?php } ?>
|
||||
</table>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
|
||||
<?php if (!empty($tables)) { ?>
|
||||
<div class="exception-var">
|
||||
<h2>Environment Variables</h2>
|
||||
<?php foreach ((array) $tables as $label => $value) { ?>
|
||||
<table>
|
||||
<?php if (empty($value)) { ?>
|
||||
<caption><?php echo $label; ?><small>empty</small></caption>
|
||||
<?php } else { ?>
|
||||
<caption><?php echo $label; ?></caption>
|
||||
<tbody>
|
||||
<?php foreach ((array) $value as $key => $val) { ?>
|
||||
<tr>
|
||||
<td><?php echo htmlentities($key); ?></td>
|
||||
<td><?php echo_value($val); ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
</tbody>
|
||||
<?php } ?>
|
||||
</table>
|
||||
<?php } ?>
|
||||
</div>
|
||||
<?php } ?>
|
||||
<?php if (\think\facade\App::isDebug()) { ?>
|
||||
<script>
|
||||
function $(selector, node) {
|
||||
var elements;
|
||||
|
||||
node = node || document;
|
||||
if (document.querySelectorAll) {
|
||||
elements = node.querySelectorAll(selector);
|
||||
} else {
|
||||
switch (selector.substr(0, 1)) {
|
||||
case '#':
|
||||
elements = [node.getElementById(selector.substr(1))];
|
||||
break;
|
||||
case '.':
|
||||
if (document.getElementsByClassName) {
|
||||
elements = node.getElementsByClassName(selector.substr(1));
|
||||
} else {
|
||||
elements = get_elements_by_class(selector.substr(1), node);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
elements = node.getElementsByTagName();
|
||||
}
|
||||
}
|
||||
return elements;
|
||||
|
||||
function get_elements_by_class(search_class, node, tag) {
|
||||
var elements = [],
|
||||
eles,
|
||||
pattern = new RegExp('(^|\\s)' + search_class + '(\\s|$)');
|
||||
|
||||
node = node || document;
|
||||
tag = tag || '*';
|
||||
|
||||
eles = node.getElementsByTagName(tag);
|
||||
for (var i = 0; i < eles.length; i++) {
|
||||
if (pattern.test(eles[i].className)) {
|
||||
elements.push(eles[i])
|
||||
}
|
||||
}
|
||||
|
||||
return elements;
|
||||
}
|
||||
}
|
||||
|
||||
$.getScript = function(src, func) {
|
||||
var script = document.createElement('script');
|
||||
|
||||
script.async = 'async';
|
||||
script.src = src;
|
||||
script.onload = func || function() {};
|
||||
|
||||
$('head')[0].appendChild(script);
|
||||
}
|
||||
|
||||
;
|
||||
(function() {
|
||||
var files = $('.toggle');
|
||||
var ol = $('ol', $('.prettyprint')[0]);
|
||||
var li = $('li', ol[0]);
|
||||
|
||||
// 短路径和长路径变换
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
files[i].ondblclick = function() {
|
||||
var title = this.title;
|
||||
|
||||
this.title = this.innerHTML;
|
||||
this.innerHTML = title;
|
||||
}
|
||||
}
|
||||
|
||||
(function() {
|
||||
var expand = function(dom, expand) {
|
||||
var ol = $('ol', dom.parentNode)[0];
|
||||
expand = undefined === expand ? dom.attributes['data-expand'].value === '0' : undefined;
|
||||
if (expand) {
|
||||
dom.attributes['data-expand'].value = '1';
|
||||
ol.style.display = 'none';
|
||||
dom.innerText = 'Call Stack (展开)';
|
||||
} else {
|
||||
dom.attributes['data-expand'].value = '0';
|
||||
ol.style.display = 'block';
|
||||
dom.innerText = 'Call Stack (折叠)';
|
||||
}
|
||||
};
|
||||
var traces = $('.trace');
|
||||
for (var i = 0; i < traces.length; i++) {
|
||||
var h2 = $('h2', traces[i])[0];
|
||||
expand(h2);
|
||||
h2.onclick = function() {
|
||||
expand(this);
|
||||
};
|
||||
}
|
||||
})();
|
||||
|
||||
$.getScript('//cdn.bootcss.com/prettify/r298/prettify.min.js', function() {
|
||||
prettyPrint();
|
||||
});
|
||||
})();
|
||||
</script>
|
||||
<?php } ?>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,309 @@
|
||||
<!DOCTYPE html>
|
||||
<html dir="ltr" lang="zh">
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="theme-color" content="#fff">
|
||||
<meta name="viewport" content="initial-scale=1, minimum-scale=1, width=device-width">
|
||||
<title>系统操作成功</title>
|
||||
<style>
|
||||
a {
|
||||
color: var(--link-color);
|
||||
}
|
||||
|
||||
body {
|
||||
--background-color: #fff;
|
||||
--error-code-color: var(--google-gray-700);
|
||||
--google-blue-100: rgb(210, 227, 252);
|
||||
--google-blue-300: rgb(138, 180, 248);
|
||||
--google-blue-600: rgb(26, 115, 232);
|
||||
--google-blue-700: rgb(25, 103, 210);
|
||||
--google-gray-100: rgb(241, 243, 244);
|
||||
--google-gray-300: rgb(218, 220, 224);
|
||||
--google-gray-500: rgb(154, 160, 166);
|
||||
--google-gray-50: rgb(248, 249, 250);
|
||||
--google-gray-600: rgb(128, 134, 139);
|
||||
--google-gray-700: rgb(95, 99, 104);
|
||||
--google-gray-800: rgb(60, 64, 67);
|
||||
--google-gray-900: rgb(32, 33, 36);
|
||||
--heading-color: var(--google-gray-900);
|
||||
--primary-button-fill-color-active: var(--google-blue-700);
|
||||
--primary-button-fill-color: var(--google-blue-600);
|
||||
--primary-button-text-color: #fff;
|
||||
--text-color: var(--google-gray-700);
|
||||
background: var(--background-color);
|
||||
color: var(--text-color);
|
||||
word-wrap: break-word;
|
||||
}
|
||||
|
||||
html {
|
||||
-webkit-text-size-adjust: 100%;
|
||||
font-size: 125%;
|
||||
}
|
||||
|
||||
.icon {
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
|
||||
body.captive-portal,
|
||||
body.dark-mode-available,
|
||||
body.neterror,
|
||||
body.supervised-user-block,
|
||||
.offline body {
|
||||
--background-color: var(--google-gray-900);
|
||||
--error-code-color: var(--google-gray-500);
|
||||
--heading-color: var(--google-gray-500);
|
||||
--link-color: var(--google-blue-300);
|
||||
--primary-button-fill-color-active: rgb(129, 162, 208);
|
||||
--primary-button-fill-color: var(--google-blue-300);
|
||||
--primary-button-text-color: var(--google-gray-900);
|
||||
--text-color: var(--google-gray-500);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
button {
|
||||
border: 0;
|
||||
border-radius: 4px;
|
||||
box-sizing: border-box;
|
||||
color: var(--primary-button-text-color);
|
||||
cursor: pointer;
|
||||
float: right;
|
||||
font-size: .875em;
|
||||
margin: 0;
|
||||
padding: 8px 16px;
|
||||
transition: box-shadow 150ms cubic-bezier(0.4, 0, 0.2, 1);
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
[dir='rtl'] button {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.ssl button {
|
||||
background: var(--primary-button-fill-color);
|
||||
}
|
||||
|
||||
button:active {
|
||||
background: var(--primary-button-fill-color-active);
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
|
||||
h1 {
|
||||
color: var(--heading-color);
|
||||
font-size: 1.6em;
|
||||
font-weight: normal;
|
||||
line-height: 1.25em;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 1.2em;
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
.icon {
|
||||
height: 72px;
|
||||
margin: 0 0 40px;
|
||||
width: 72px;
|
||||
}
|
||||
|
||||
.interstitial-wrapper {
|
||||
box-sizing: border-box;
|
||||
font-size: 1em;
|
||||
line-height: 1.6em;
|
||||
margin: 14vh auto 0;
|
||||
max-width: 600px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#main-message>p {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.nav-wrapper {
|
||||
margin-top: 51px;
|
||||
}
|
||||
|
||||
.nav-wrapper::after {
|
||||
clear: both;
|
||||
content: '';
|
||||
display: table;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@media (max-width: 700px) {
|
||||
.interstitial-wrapper {
|
||||
padding: 0 10%;
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 420px) {
|
||||
|
||||
button,
|
||||
[dir='rtl'] button{
|
||||
float: none;
|
||||
font-size: .825em;
|
||||
font-weight: 500;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 16px 24px;
|
||||
}
|
||||
|
||||
.interstitial-wrapper {
|
||||
padding: 0 5%;
|
||||
}
|
||||
|
||||
|
||||
.nav-wrapper {
|
||||
margin-top: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 240px) and (max-width: 420px) and (min-height: 401px),
|
||||
(min-width: 421px) and (min-height: 240px) and (max-height: 560px) {
|
||||
body .nav-wrapper {
|
||||
background: var(--background-color);
|
||||
bottom: 0;
|
||||
box-shadow: 0 -22px 40px var(--background-color);
|
||||
left: 0;
|
||||
margin: 0 auto;
|
||||
max-width: 736px;
|
||||
padding-left: 24px;
|
||||
padding-right: 24px;
|
||||
position: fixed;
|
||||
right: 0;
|
||||
width: 100%;
|
||||
z-index: 2;
|
||||
}
|
||||
|
||||
.interstitial-wrapper {
|
||||
max-width: 736px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (max-width: 420px) and (orientation: portrait),
|
||||
(max-height: 560px) {
|
||||
body {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
button,
|
||||
[dir='rtl'] button,
|
||||
button.small-link {
|
||||
font-family: Roboto-Regular, Helvetica;
|
||||
font-size: .933em;
|
||||
margin: 6px 0;
|
||||
transform: translatez(0);
|
||||
}
|
||||
|
||||
.nav-wrapper {
|
||||
box-sizing: border-box;
|
||||
padding-bottom: 8px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
||||
h1 {
|
||||
font-size: 1.5em;
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
|
||||
.icon {
|
||||
margin-bottom: 5.69vh;
|
||||
}
|
||||
|
||||
.interstitial-wrapper {
|
||||
box-sizing: border-box;
|
||||
margin: 7vh auto 12px;
|
||||
padding: 0 24px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.interstitial-wrapper p {
|
||||
font-size: .95em;
|
||||
line-height: 1.61em;
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@media (min-width: 421px) and (min-height: 500px) and (max-height: 560px) {
|
||||
.interstitial-wrapper {
|
||||
margin-top: 10vh;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-height: 400px) and (orientation:portrait) {
|
||||
.interstitial-wrapper {
|
||||
margin-bottom: 145px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-height: 299px) {
|
||||
.nav-wrapper {
|
||||
padding-bottom: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-height: 500px) and (max-height: 650px) and (max-width: 414px) and (orientation: portrait) {
|
||||
.interstitial-wrapper {
|
||||
margin-top: 7vh;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-height: 650px) and (max-width: 414px) and (orientation: portrait) {
|
||||
.interstitial-wrapper {
|
||||
margin-top: 10vh;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.ssl .icon {
|
||||
background-image: -webkit-image-set(url(data:image/svg+xml,%3Csvg%20width%3D%2224%22%20height%3D%2224%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath%20%20style%3d%22fill%3agreen%3bstroke%3awhite%3b%22%20d%3D%22M12%2022C6.477%2022%202%2017.523%202%2012S6.477%202%2012%202s10%204.477%2010%2010-4.477%2010-10%2010zm-1.177-7.86l-2.765-2.767L7%2012.431l3.119%203.121a1%201%200%20001.414%200l5.952-5.95-1.062-1.062-5.6%205.6z%22%2F%3E%3C%2Fsvg%3E) 2x);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body id="body" class="ssl extended-reporting-has-checkbox">
|
||||
<div class="interstitial-wrapper">
|
||||
<div id="main-content">
|
||||
<div class="icon" id="icon"></div>
|
||||
<div id="main-message">
|
||||
<h1>系统操作成功:</h1>
|
||||
<p><?php echo $message ? $message : '虽然不知道你干啥了,但是确实操作成功了...'; ?></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="nav-wrapper">
|
||||
<a href="<?php echo $url;?>"><button id="primary-button">好的,我知道了</button></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<style>
|
||||
html {
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: system-ui, PingFang SC, STHeiti, sans-serif;
|
||||
font-size: 75%;
|
||||
}
|
||||
|
||||
button {
|
||||
font-family: system-ui, PingFang SC, STHeiti, sans-serif;
|
||||
}
|
||||
</style>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
Reference in New Issue
Block a user