unified style and added error handling
This commit is contained in:
169
src/handler.py
169
src/handler.py
@@ -212,85 +212,99 @@ class Handler(BaseHTTPRequestHandler):
|
|||||||
|
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
||||||
self.send_response(200)
|
try:
|
||||||
self.send_header('Content-type', 'text/html')
|
self.send_response(200)
|
||||||
self.end_headers()
|
self.send_header('Content-type', 'text/html')
|
||||||
self.wfile.write(html_templates.login_error().encode())
|
self.end_headers()
|
||||||
|
self.wfile.write(html_templates.login_error().encode())
|
||||||
|
except BrokenPipeError:
|
||||||
|
# Client disconnected before receiving response, ignore silently
|
||||||
|
pass
|
||||||
|
except Exception as e:
|
||||||
|
# Log other exceptions but don't crash
|
||||||
|
print(f"[ERROR] Failed to send response to {client_ip}: {str(e)}")
|
||||||
|
|
||||||
def serve_special_path(self, path: str) -> bool:
|
def serve_special_path(self, path: str) -> bool:
|
||||||
"""Serve special paths like robots.txt, API endpoints, etc."""
|
"""Serve special paths like robots.txt, API endpoints, etc."""
|
||||||
|
|
||||||
if path == '/robots.txt':
|
try:
|
||||||
self.send_response(200)
|
if path == '/robots.txt':
|
||||||
self.send_header('Content-type', 'text/plain')
|
self.send_response(200)
|
||||||
self.end_headers()
|
self.send_header('Content-type', 'text/plain')
|
||||||
self.wfile.write(html_templates.robots_txt().encode())
|
self.end_headers()
|
||||||
return True
|
self.wfile.write(html_templates.robots_txt().encode())
|
||||||
|
return True
|
||||||
if path in ['/credentials.txt', '/passwords.txt', '/admin_notes.txt']:
|
|
||||||
self.send_response(200)
|
if path in ['/credentials.txt', '/passwords.txt', '/admin_notes.txt']:
|
||||||
self.send_header('Content-type', 'text/plain')
|
self.send_response(200)
|
||||||
self.end_headers()
|
self.send_header('Content-type', 'text/plain')
|
||||||
if 'credentials' in path:
|
self.end_headers()
|
||||||
self.wfile.write(credentials_txt().encode())
|
if 'credentials' in path:
|
||||||
else:
|
self.wfile.write(credentials_txt().encode())
|
||||||
self.wfile.write(passwords_txt().encode())
|
else:
|
||||||
return True
|
self.wfile.write(passwords_txt().encode())
|
||||||
|
return True
|
||||||
if path in ['/users.json', '/api_keys.json', '/config.json']:
|
|
||||||
self.send_response(200)
|
if path in ['/users.json', '/api_keys.json', '/config.json']:
|
||||||
self.send_header('Content-type', 'application/json')
|
self.send_response(200)
|
||||||
self.end_headers()
|
self.send_header('Content-type', 'application/json')
|
||||||
if 'users' in path:
|
self.end_headers()
|
||||||
self.wfile.write(users_json().encode())
|
if 'users' in path:
|
||||||
elif 'api_keys' in path:
|
self.wfile.write(users_json().encode())
|
||||||
self.wfile.write(api_keys_json().encode())
|
elif 'api_keys' in path:
|
||||||
else:
|
self.wfile.write(api_keys_json().encode())
|
||||||
self.wfile.write(api_response('/api/config').encode())
|
else:
|
||||||
return True
|
self.wfile.write(api_response('/api/config').encode())
|
||||||
|
return True
|
||||||
if path in ['/admin', '/admin/', '/admin/login', '/login']:
|
|
||||||
self.send_response(200)
|
if path in ['/admin', '/admin/', '/admin/login', '/login']:
|
||||||
self.send_header('Content-type', 'text/html')
|
self.send_response(200)
|
||||||
self.end_headers()
|
self.send_header('Content-type', 'text/html')
|
||||||
self.wfile.write(html_templates.login_form().encode())
|
self.end_headers()
|
||||||
return True
|
self.wfile.write(html_templates.login_form().encode())
|
||||||
|
return True
|
||||||
# WordPress login page
|
|
||||||
if path in ['/wp-login.php', '/wp-login', '/wp-admin', '/wp-admin/']:
|
# WordPress login page
|
||||||
self.send_response(200)
|
if path in ['/wp-login.php', '/wp-login', '/wp-admin', '/wp-admin/']:
|
||||||
self.send_header('Content-type', 'text/html')
|
self.send_response(200)
|
||||||
self.end_headers()
|
self.send_header('Content-type', 'text/html')
|
||||||
self.wfile.write(html_templates.wp_login().encode())
|
self.end_headers()
|
||||||
return True
|
self.wfile.write(html_templates.wp_login().encode())
|
||||||
|
return True
|
||||||
if path in ['/wp-content/', '/wp-includes/'] or 'wordpress' in path.lower():
|
|
||||||
self.send_response(200)
|
if path in ['/wp-content/', '/wp-includes/'] or 'wordpress' in path.lower():
|
||||||
self.send_header('Content-type', 'text/html')
|
self.send_response(200)
|
||||||
self.end_headers()
|
self.send_header('Content-type', 'text/html')
|
||||||
self.wfile.write(html_templates.wordpress().encode())
|
self.end_headers()
|
||||||
return True
|
self.wfile.write(html_templates.wordpress().encode())
|
||||||
|
return True
|
||||||
if 'phpmyadmin' in path.lower() or path in ['/pma/', '/phpMyAdmin/']:
|
|
||||||
self.send_response(200)
|
if 'phpmyadmin' in path.lower() or path in ['/pma/', '/phpMyAdmin/']:
|
||||||
self.send_header('Content-type', 'text/html')
|
self.send_response(200)
|
||||||
self.end_headers()
|
self.send_header('Content-type', 'text/html')
|
||||||
self.wfile.write(html_templates.phpmyadmin().encode())
|
self.end_headers()
|
||||||
return True
|
self.wfile.write(html_templates.phpmyadmin().encode())
|
||||||
|
return True
|
||||||
if path.startswith('/api/') or path.startswith('/api') or path in ['/.env']:
|
|
||||||
self.send_response(200)
|
if path.startswith('/api/') or path.startswith('/api') or path in ['/.env']:
|
||||||
self.send_header('Content-type', 'application/json')
|
self.send_response(200)
|
||||||
self.end_headers()
|
self.send_header('Content-type', 'application/json')
|
||||||
self.wfile.write(api_response(path).encode())
|
self.end_headers()
|
||||||
return True
|
self.wfile.write(api_response(path).encode())
|
||||||
|
return True
|
||||||
if path in ['/backup/', '/uploads/', '/private/', '/admin/', '/config/', '/database/']:
|
|
||||||
self.send_response(200)
|
if path in ['/backup/', '/uploads/', '/private/', '/admin/', '/config/', '/database/']:
|
||||||
self.send_header('Content-type', 'text/html')
|
self.send_response(200)
|
||||||
self.end_headers()
|
self.send_header('Content-type', 'text/html')
|
||||||
self.wfile.write(directory_listing(path).encode())
|
self.end_headers()
|
||||||
return True
|
self.wfile.write(directory_listing(path).encode())
|
||||||
|
return True
|
||||||
|
except BrokenPipeError:
|
||||||
|
# Client disconnected, ignore silently
|
||||||
|
pass
|
||||||
|
except Exception as e:
|
||||||
|
print(f"[ERROR] Failed to serve special path {path}: {str(e)}")
|
||||||
|
pass
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
@@ -306,6 +320,8 @@ class Handler(BaseHTTPRequestHandler):
|
|||||||
try:
|
try:
|
||||||
stats = self.tracker.get_stats()
|
stats = self.tracker.get_stats()
|
||||||
self.wfile.write(generate_dashboard(stats).encode())
|
self.wfile.write(generate_dashboard(stats).encode())
|
||||||
|
except BrokenPipeError:
|
||||||
|
pass
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error generating dashboard: {e}")
|
print(f"Error generating dashboard: {e}")
|
||||||
return
|
return
|
||||||
@@ -337,6 +353,9 @@ class Handler(BaseHTTPRequestHandler):
|
|||||||
|
|
||||||
if Handler.counter < 0:
|
if Handler.counter < 0:
|
||||||
Handler.counter = self.config.canary_token_tries
|
Handler.counter = self.config.canary_token_tries
|
||||||
|
except BrokenPipeError:
|
||||||
|
# Client disconnected, ignore silently
|
||||||
|
pass
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error generating page: {e}")
|
print(f"Error generating page: {e}")
|
||||||
|
|
||||||
|
|||||||
@@ -1,29 +1,108 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
<title>Login Failed</title>
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="robots" content="noindex, nofollow">
|
||||||
|
<title>Error</title>
|
||||||
<style>
|
<style>
|
||||||
body {{ font-family: Arial, sans-serif; background: #f0f0f0; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; }}
|
* {
|
||||||
.login-box {{ background: white; padding: 40px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); width: 300px; }}
|
margin: 0;
|
||||||
h2 {{ margin-top: 0; color: #333; }}
|
padding: 0;
|
||||||
.error {{ color: #d63301; background: #ffebe8; border: 1px solid #d63301; padding: 12px; margin-bottom: 20px; border-radius: 4px; }}
|
box-sizing: border-box;
|
||||||
input {{ width: 100%; padding: 10px; margin: 10px 0; border: 1px solid #ddd; border-radius: 4px; box-sizing: border-box; }}
|
}
|
||||||
button {{ width: 100%; padding: 10px; background: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer; }}
|
|
||||||
button:hover {{ background: #0056b3; }}
|
body {
|
||||||
a {{ color: #007bff; font-size: 14px; }}
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||||
|
background: #f5f5f5;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
min-height: 100vh;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
background: white;
|
||||||
|
padding: 40px;
|
||||||
|
border-radius: 8px;
|
||||||
|
box-shadow: 0 2px 8px rgba(0,0,0,0.1);
|
||||||
|
width: 100%;
|
||||||
|
max-width: 400px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 32px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
color: #d32f2f;
|
||||||
|
}
|
||||||
|
|
||||||
|
.error-message {
|
||||||
|
background: #ffebee;
|
||||||
|
border-left: 4px solid #d32f2f;
|
||||||
|
padding: 15px;
|
||||||
|
margin: 20px 0;
|
||||||
|
border-radius: 4px;
|
||||||
|
color: #c62828;
|
||||||
|
font-size: 14px;
|
||||||
|
line-height: 1.5;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
color: #666;
|
||||||
|
font-size: 14px;
|
||||||
|
margin: 15px 0;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
|
||||||
|
.links-section {
|
||||||
|
margin-top: 20px;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.links-section a {
|
||||||
|
color: #2196f3;
|
||||||
|
text-decoration: none;
|
||||||
|
margin: 0 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.links-section a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
|
||||||
|
.back-btn {
|
||||||
|
display: inline-block;
|
||||||
|
margin-top: 20px;
|
||||||
|
padding: 10px 20px;
|
||||||
|
background: #2196f3;
|
||||||
|
color: white;
|
||||||
|
text-decoration: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
.back-btn:hover {
|
||||||
|
background: #1976d2;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="login-box">
|
<div class="container">
|
||||||
<h2>Admin Login</h2>
|
<h1>⚠ Error</h1>
|
||||||
<div class="error"><strong>ERROR:</strong> Invalid username or password.</div>
|
|
||||||
<form action="/admin/login" method="post">
|
<div class="error-message">
|
||||||
<input type="text" name="username" placeholder="Username" required>
|
Login Failed. Please try again.
|
||||||
<input type="password" name="password" placeholder="Password" required>
|
</div>
|
||||||
<button type="submit">Login</button>
|
|
||||||
</form>
|
<p>If the problem persists, please contact support.</p>
|
||||||
<p style="margin-top: 20px; text-align: center;"><a href="/forgot-password">Forgot your password?</a></p>
|
|
||||||
|
<div class="links-section">
|
||||||
|
<a href="/forgot-password">Forgot password?</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<a href="/" class="back-btn">← Back to Home</a>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -1,25 +1,156 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<meta charset="UTF-8">
|
<meta charset="UTF-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="robots" content="noindex, nofollow">
|
||||||
<title>Admin Login</title>
|
<title>Admin Login</title>
|
||||||
<style>
|
<style>
|
||||||
body {{ font-family: Arial, sans-serif; background: #f0f0f0; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; }}
|
* {
|
||||||
.login-box {{ background: white; padding: 40px; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.1); width: 300px; }}
|
margin: 0;
|
||||||
h2 {{ margin-top: 0; color: #333; }}
|
padding: 0;
|
||||||
input {{ width: 100%; padding: 10px; margin: 10px 0; border: 1px solid #ddd; border-radius: 4px; box-sizing: border-box; }}
|
box-sizing: border-box;
|
||||||
button {{ width: 100%; padding: 10px; background: #007bff; color: white; border: none; border-radius: 4px; cursor: pointer; }}
|
}
|
||||||
button:hover {{ background: #0056b3; }}
|
|
||||||
|
body {
|
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||||
|
background: #f5f5f5;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: center;
|
||||||
|
min-height: 100vh;
|
||||||
|
padding: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
background: white;
|
||||||
|
padding: 40px;
|
||||||
|
border-radius: 8px;
|
||||||
|
box-shadow: 0 2px 10px rgba(0,0,0,0.1);
|
||||||
|
width: 100%;
|
||||||
|
max-width: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 28px;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
color: #333;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.subtitle {
|
||||||
|
text-align: center;
|
||||||
|
color: #666;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
label {
|
||||||
|
display: block;
|
||||||
|
margin: 15px 0 5px 0;
|
||||||
|
font-weight: 500;
|
||||||
|
color: #333;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="text"],
|
||||||
|
input[type="password"],
|
||||||
|
input[type="email"] {
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px;
|
||||||
|
margin: 5px 0 15px 0;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 14px;
|
||||||
|
transition: border-color 0.3s;
|
||||||
|
}
|
||||||
|
|
||||||
|
input[type="text"]:focus,
|
||||||
|
input[type="password"]:focus,
|
||||||
|
input[type="email"]:focus {
|
||||||
|
outline: none;
|
||||||
|
border-color: #2196f3;
|
||||||
|
box-shadow: 0 0 0 2px rgba(33, 150, 243, 0.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.remember-me {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
margin: 15px 0;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.remember-me input {
|
||||||
|
margin: 0 8px 0 0;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
button {
|
||||||
|
width: 100%;
|
||||||
|
padding: 10px;
|
||||||
|
background: #2196f3;
|
||||||
|
color: white;
|
||||||
|
border: none;
|
||||||
|
border-radius: 4px;
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: 500;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: background 0.3s;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:hover {
|
||||||
|
background: #1976d2;
|
||||||
|
}
|
||||||
|
|
||||||
|
button:active {
|
||||||
|
background: #1565c0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.links {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 20px;
|
||||||
|
padding-top: 20px;
|
||||||
|
border-top: 1px solid #eee;
|
||||||
|
font-size: 13px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.links a {
|
||||||
|
color: #2196f3;
|
||||||
|
text-decoration: none;
|
||||||
|
display: block;
|
||||||
|
margin: 8px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.links a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="login-box">
|
<div class="container">
|
||||||
<h2>Admin Login</h2>
|
<h1>Admin Panel</h1>
|
||||||
|
<p class="subtitle">Please log in to continue</p>
|
||||||
|
|
||||||
<form action="/admin/login" method="post">
|
<form action="/admin/login" method="post">
|
||||||
<input type="text" name="username" placeholder="Username" required>
|
<label for="username">Username</label>
|
||||||
<input type="password" name="password" placeholder="Password" required>
|
<input type="text" id="username" name="username" placeholder="Enter your username" autocomplete="username" autofocus required>
|
||||||
<button type="submit">Login</button>
|
|
||||||
|
<label for="password">Password</label>
|
||||||
|
<input type="password" id="password" name="password" placeholder="Enter your password" autocomplete="current-password" required>
|
||||||
|
|
||||||
|
<div class="remember-me">
|
||||||
|
<input type="checkbox" id="remember" name="remember" value="1">
|
||||||
|
<label for="remember" style="margin: 0;">Remember me</label>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="submit">Sign In</button>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
|
<div class="links">
|
||||||
|
<a href="/forgot-password">Forgot your password?</a>
|
||||||
|
<a href="/">← Back to Home</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
@@ -1,285 +1,166 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="en" dir="ltr">
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<meta name="robots" content="noindex,nofollow">
|
<meta name="robots" content="noindex,nofollow">
|
||||||
<title>phpMyAdmin</title>
|
<title>phpMyAdmin</title>
|
||||||
<link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'><rect fill='%236c78af' width='32' height='32' rx='4'/><text x='16' y='22' font-size='18' fill='white' text-anchor='middle' font-family='sans-serif' font-weight='bold'>pma</text></svg>">
|
|
||||||
<style>
|
<style>
|
||||||
* {{
|
body {
|
||||||
box-sizing: border-box;
|
font-family: 'Segoe UI', Tahoma, sans-serif;
|
||||||
}}
|
margin: 0;
|
||||||
body {{
|
background: #f0f0f0;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
|
}
|
||||||
font-size: 14px;
|
.header {
|
||||||
background: #fffffc;
|
background: #2979ff;
|
||||||
|
color: white;
|
||||||
|
padding: 10px 20px;
|
||||||
|
}
|
||||||
|
.header h1 {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
|
||||||
color: #444;
|
|
||||||
}}
|
|
||||||
#page_content {{
|
|
||||||
margin: 0 auto;
|
|
||||||
max-width: 960px;
|
|
||||||
padding: 20px;
|
|
||||||
}}
|
|
||||||
.container-fluid {{
|
|
||||||
display: flex;
|
|
||||||
min-height: 100vh;
|
|
||||||
}}
|
|
||||||
#pma_navigation {{
|
|
||||||
width: 240px;
|
|
||||||
background: #f3f3f3;
|
|
||||||
border-right: 1px solid #ddd;
|
|
||||||
padding: 10px;
|
|
||||||
}}
|
|
||||||
#pma_navigation_header {{
|
|
||||||
text-align: center;
|
|
||||||
padding: 15px 10px;
|
|
||||||
border-bottom: 1px solid #ddd;
|
|
||||||
margin-bottom: 10px;
|
|
||||||
}}
|
|
||||||
#pma_navigation_header img {{
|
|
||||||
max-width: 160px;
|
|
||||||
}}
|
|
||||||
.logo-text {{
|
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
font-weight: bold;
|
}
|
||||||
color: #6c78af;
|
.login {
|
||||||
}}
|
background: white;
|
||||||
.logo-text span {{
|
width: 400px;
|
||||||
color: #f89c0e;
|
margin: 100px auto;
|
||||||
}}
|
padding: 30px;
|
||||||
#pma_main {{
|
border-radius: 4px;
|
||||||
flex: 1;
|
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
|
||||||
padding: 20px;
|
}
|
||||||
background: #fff;
|
.login h2 {
|
||||||
}}
|
margin-top: 0;
|
||||||
.login_form {{
|
color: #333;
|
||||||
max-width: 500px;
|
font-size: 18px;
|
||||||
margin: 40px auto;
|
}
|
||||||
background: #fff;
|
input[type="text"],
|
||||||
|
input[type="password"],
|
||||||
|
select {
|
||||||
|
width: 100%;
|
||||||
|
padding: 8px;
|
||||||
|
margin: 8px 0;
|
||||||
border: 1px solid #ddd;
|
border: 1px solid #ddd;
|
||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
box-shadow: 0 1px 3px rgba(0,0,0,0.08);
|
box-sizing: border-box;
|
||||||
}}
|
|
||||||
.login_form h1 {{
|
|
||||||
background: #f3f3f3;
|
|
||||||
margin: 0;
|
|
||||||
padding: 15px 20px;
|
|
||||||
font-size: 16px;
|
|
||||||
font-weight: normal;
|
|
||||||
border-bottom: 1px solid #ddd;
|
|
||||||
color: #333;
|
|
||||||
}}
|
|
||||||
.login_form h1 img {{
|
|
||||||
vertical-align: middle;
|
|
||||||
margin-right: 8px;
|
|
||||||
}}
|
|
||||||
.login_form form {{
|
|
||||||
padding: 20px;
|
|
||||||
}}
|
|
||||||
.item {{
|
|
||||||
margin-bottom: 15px;
|
|
||||||
}}
|
|
||||||
.item label {{
|
|
||||||
display: block;
|
|
||||||
margin-bottom: 5px;
|
|
||||||
font-weight: 500;
|
|
||||||
color: #333;
|
|
||||||
}}
|
|
||||||
.item input[type="text"],
|
|
||||||
.item input[type="password"],
|
|
||||||
.item select {{
|
|
||||||
width: 100%;
|
|
||||||
padding: 8px 10px;
|
|
||||||
border: 1px solid #aaa;
|
|
||||||
border-radius: 2px;
|
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
background: #fff;
|
}
|
||||||
}}
|
input[type="text"]:focus,
|
||||||
.item input:focus,
|
input[type="password"]:focus,
|
||||||
.item select:focus {{
|
select:focus {
|
||||||
border-color: #6c78af;
|
border-color: #2979ff;
|
||||||
outline: none;
|
outline: none;
|
||||||
box-shadow: 0 0 0 2px rgba(108, 120, 175, 0.2);
|
box-shadow: 0 0 0 2px rgba(41, 121, 255, 0.1);
|
||||||
}}
|
}
|
||||||
.item select {{
|
label {
|
||||||
cursor: pointer;
|
display: block;
|
||||||
}}
|
margin: 12px 0 5px 0;
|
||||||
.checkbox-item {{
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 8px;
|
|
||||||
}}
|
|
||||||
.checkbox-item input {{
|
|
||||||
margin: 0;
|
|
||||||
}}
|
|
||||||
fieldset {{
|
|
||||||
border: 1px solid #ddd;
|
|
||||||
border-radius: 2px;
|
|
||||||
padding: 15px;
|
|
||||||
margin: 0 0 15px 0;
|
|
||||||
}}
|
|
||||||
legend {{
|
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
padding: 0 8px;
|
|
||||||
color: #333;
|
color: #333;
|
||||||
}}
|
font-size: 13px;
|
||||||
.btn {{
|
}
|
||||||
display: inline-block;
|
button {
|
||||||
padding: 8px 20px;
|
width: 100%;
|
||||||
background: #6c78af;
|
padding: 10px 20px;
|
||||||
color: #fff;
|
background: #2979ff;
|
||||||
|
color: white;
|
||||||
border: none;
|
border: none;
|
||||||
border-radius: 2px;
|
border-radius: 4px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
}}
|
margin-top: 15px;
|
||||||
.btn:hover {{
|
}
|
||||||
background: #5a6699;
|
button:hover {
|
||||||
}}
|
background: #1565c0;
|
||||||
.server-choice {{
|
}
|
||||||
display: flex;
|
button:active {
|
||||||
gap: 10px;
|
background: #0d47a1;
|
||||||
margin-bottom: 15px;
|
}
|
||||||
}}
|
.lang-select {
|
||||||
.server-choice label {{
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
gap: 5px;
|
|
||||||
cursor: pointer;
|
|
||||||
}}
|
|
||||||
.footer {{
|
|
||||||
text-align: center;
|
|
||||||
margin-top: 20px;
|
|
||||||
padding-top: 15px;
|
|
||||||
border-top: 1px solid #ddd;
|
|
||||||
font-size: 12px;
|
|
||||||
color: #888;
|
|
||||||
}}
|
|
||||||
.footer a {{
|
|
||||||
color: #6c78af;
|
|
||||||
text-decoration: none;
|
|
||||||
}}
|
|
||||||
.footer a:hover {{
|
|
||||||
text-decoration: underline;
|
|
||||||
}}
|
|
||||||
.lang-select {{
|
|
||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
padding-top: 15px;
|
padding-top: 15px;
|
||||||
border-top: 1px solid #eee;
|
border-top: 1px solid #eee;
|
||||||
}}
|
}
|
||||||
.lang-select label {{
|
.lang-select label {
|
||||||
display: inline;
|
display: inline;
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
}}
|
margin: 0 10px 0 0;
|
||||||
.lang-select select {{
|
}
|
||||||
|
.lang-select select {
|
||||||
width: auto;
|
width: auto;
|
||||||
padding: 5px 10px;
|
padding: 5px 10px;
|
||||||
}}
|
margin: 8px 0;
|
||||||
.nav-item {{
|
}
|
||||||
padding: 8px 12px;
|
.footer {
|
||||||
color: #333;
|
text-align: center;
|
||||||
|
margin-top: 20px;
|
||||||
|
padding-top: 15px;
|
||||||
|
border-top: 1px solid #eee;
|
||||||
|
font-size: 12px;
|
||||||
|
color: #888;
|
||||||
|
}
|
||||||
|
.footer a {
|
||||||
|
color: #2979ff;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
display: block;
|
}
|
||||||
border-radius: 2px;
|
.footer a:hover {
|
||||||
}}
|
text-decoration: underline;
|
||||||
.nav-item:hover {{
|
}
|
||||||
background: #e8e8e8;
|
@media (max-width: 480px) {
|
||||||
}}
|
.login {
|
||||||
.error-message {{
|
width: 90%;
|
||||||
display: none;
|
margin: 50px auto;
|
||||||
}}
|
padding: 20px;
|
||||||
@media (max-width: 768px) {{
|
}
|
||||||
.container-fluid {{
|
.login h2 {
|
||||||
flex-direction: column;
|
font-size: 16px;
|
||||||
}}
|
}
|
||||||
#pma_navigation {{
|
}
|
||||||
width: 100%;
|
|
||||||
border-right: none;
|
|
||||||
border-bottom: 1px solid #ddd;
|
|
||||||
}}
|
|
||||||
.login_form {{
|
|
||||||
margin: 20px;
|
|
||||||
}}
|
|
||||||
}}
|
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="container-fluid">
|
<div class="header">
|
||||||
<div id="pma_navigation">
|
<h1>phpMyAdmin</h1>
|
||||||
<div id="pma_navigation_header">
|
</div>
|
||||||
<div class="logo-text">php<span>My</span>Admin</div>
|
<div class="login">
|
||||||
</div>
|
<h2>MySQL Server Login</h2>
|
||||||
<nav>
|
<form action="/phpmyadmin/index.php" method="post" autocomplete="off">
|
||||||
<a href="#" class="nav-item">Databases</a>
|
<label for="username">Username:</label>
|
||||||
<a href="#" class="nav-item">SQL</a>
|
<input type="text" name="pma_username" id="username" placeholder="Username" autocomplete="username" autofocus>
|
||||||
<a href="#" class="nav-item">Status</a>
|
|
||||||
<a href="#" class="nav-item">User accounts</a>
|
<label for="password">Password:</label>
|
||||||
<a href="#" class="nav-item">Export</a>
|
<input type="password" name="pma_password" id="password" placeholder="Password" autocomplete="current-password">
|
||||||
<a href="#" class="nav-item">Import</a>
|
|
||||||
<a href="#" class="nav-item">Settings</a>
|
<button type="submit">Go</button>
|
||||||
</nav>
|
|
||||||
</div>
|
<div class="lang-select">
|
||||||
<div id="pma_main">
|
<label for="lang">Language:</label>
|
||||||
<div class="login_form">
|
<select name="lang" id="lang">
|
||||||
<h1>
|
<option value="en" selected>English</option>
|
||||||
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="#6c78af" stroke-width="2" style="vertical-align: middle; margin-right: 8px;">
|
<option value="de">Deutsch</option>
|
||||||
<rect x="3" y="11" width="18" height="11" rx="2" ry="2"></rect>
|
<option value="es">Español</option>
|
||||||
<path d="M7 11V7a5 5 0 0 1 10 0v4"></path>
|
<option value="fr">Français</option>
|
||||||
</svg>
|
<option value="it">Italiano</option>
|
||||||
Log in
|
<option value="ja">日本語</option>
|
||||||
</h1>
|
<option value="ko">한국어</option>
|
||||||
<form method="post" action="/phpmyadmin/index.php" name="login_form" autocomplete="off">
|
<option value="nl">Nederlands</option>
|
||||||
<fieldset>
|
<option value="pl">Polski</option>
|
||||||
<legend>Log in</legend>
|
<option value="pt">Português</option>
|
||||||
<div class="item">
|
<option value="ru">Русский</option>
|
||||||
<label for="input_servername">Server Choice:</label>
|
<option value="zh">中文</option>
|
||||||
<select name="server" id="input_servername">
|
</select>
|
||||||
<option value="1">127.0.0.1</option>
|
|
||||||
<option value="2">localhost</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<label for="input_username">Username:</label>
|
|
||||||
<input type="text" name="pma_username" id="input_username" value="" autocomplete="username" autofocus>
|
|
||||||
</div>
|
|
||||||
<div class="item">
|
|
||||||
<label for="input_password">Password:</label>
|
|
||||||
<input type="password" name="pma_password" id="input_password" value="" autocomplete="current-password">
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
<input type="hidden" name="token" value="a1b2c3d4e5f6g7h8i9j0">
|
|
||||||
<input type="hidden" name="set_session" value="1">
|
|
||||||
<button type="submit" class="btn" id="input_go" value="Log in">Log in</button>
|
|
||||||
<div class="lang-select">
|
|
||||||
<label for="lang_select">Language:</label>
|
|
||||||
<select name="lang" id="lang_select">
|
|
||||||
<option value="en" selected>English</option>
|
|
||||||
<option value="de">Deutsch</option>
|
|
||||||
<option value="es">Español</option>
|
|
||||||
<option value="fr">Français</option>
|
|
||||||
<option value="it">Italiano</option>
|
|
||||||
<option value="ja">日本語</option>
|
|
||||||
<option value="ko">한국어</option>
|
|
||||||
<option value="nl">Nederlands</option>
|
|
||||||
<option value="pl">Polski</option>
|
|
||||||
<option value="pt">Português</option>
|
|
||||||
<option value="ru">Русский</option>
|
|
||||||
<option value="zh">中文</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<div class="footer">
|
|
||||||
<a href="https://www.phpmyadmin.net/docs/" target="_blank">Documentation</a> |
|
|
||||||
<a href="https://www.phpmyadmin.net/" target="_blank">Official Homepage</a> |
|
|
||||||
<a href="https://github.com/phpmyadmin/phpmyadmin" target="_blank">Contribute</a>
|
|
||||||
<br><br>
|
|
||||||
phpMyAdmin 5.2.1
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<input type="hidden" name="token" value="a1b2c3d4e5f6g7h8i9j0">
|
||||||
|
<input type="hidden" name="set_session" value="1">
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<div class="footer">
|
||||||
|
<a href="https://www.phpmyadmin.net/docs/" target="_blank">Documentation</a> |
|
||||||
|
<a href="https://www.phpmyadmin.net/" target="_blank">Official Homepage</a> |
|
||||||
|
<a href="https://github.com/phpmyadmin/phpmyadmin" target="_blank">Contribute</a>
|
||||||
|
<br><br>
|
||||||
|
phpMyAdmin 5.2.1
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -7,6 +7,8 @@ Disallow: /database/
|
|||||||
Disallow: /private/
|
Disallow: /private/
|
||||||
Disallow: /uploads/
|
Disallow: /uploads/
|
||||||
Disallow: /wp-admin/
|
Disallow: /wp-admin/
|
||||||
|
Disallow: /login/
|
||||||
|
Disallow: /admin/login
|
||||||
Disallow: /phpMyAdmin/
|
Disallow: /phpMyAdmin/
|
||||||
Disallow: /admin/login.php
|
Disallow: /admin/login.php
|
||||||
Disallow: /api/v1/users
|
Disallow: /api/v1/users
|
||||||
|
|||||||
@@ -5,12 +5,12 @@
|
|||||||
<meta name="viewport" content="width=device-width">
|
<meta name="viewport" content="width=device-width">
|
||||||
<meta name="robots" content="max-image-preview:large, noindex, noarchive">
|
<meta name="robots" content="max-image-preview:large, noindex, noarchive">
|
||||||
<title>Log In ‹ WordPress — WordPress</title>
|
<title>Log In ‹ WordPress — WordPress</title>
|
||||||
<style>
|
<style type="text/css">
|
||||||
html {{
|
html {
|
||||||
background: #f0f0f1;
|
background: #f0f0f1;
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
}}
|
}
|
||||||
body {{
|
body {
|
||||||
background: #f0f0f1;
|
background: #f0f0f1;
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||||
@@ -19,34 +19,45 @@
|
|||||||
color: #3c434a;
|
color: #3c434a;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}}
|
}
|
||||||
a {{
|
a {
|
||||||
color: #2271b1;
|
color: #2271b1;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
}}
|
}
|
||||||
a:hover, a:active {{
|
a:hover, a:active {
|
||||||
color: #135e96;
|
color: #135e96;
|
||||||
}}
|
}
|
||||||
#login {{
|
#login {
|
||||||
width: 320px;
|
width: 320px;
|
||||||
padding: 8% 0 0;
|
padding: 8% 0 0;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
}}
|
}
|
||||||
#login h1 {{
|
#login h1 {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}}
|
margin: 0 0 20px;
|
||||||
#login h1 a {{
|
}
|
||||||
background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA4NCA4NCI+PHBhdGggZD0iTTQyIDBDMTguOCAwIDAgMTguOCAwIDQyczE4LjggNDIgNDIgNDIgNDItMTguOCA0Mi00MlM2NS4yIDAgNDIgMHptMCA3OC40QzIxLjggNzguNCA1LjYgNjIuMiA1LjYgNDJTMjEuOCA1LjYgNDIgNS42IDc4LjQgMjEuOCA3OC40IDQyIDYyLjIgNzguNCA0MiA3OC40ek0yMC4xIDQyYzAgNy42IDQuNSAxNC4yIDEwLjkgMTcuM2wtOS4yLTI1LjJjLTEuMSAyLjUtMS43IDUuMi0xLjcgNy45em0zNi44LTEuMWMwLTIuNC0uOS01LjYtMi40LTcuMi0xLjUtMi0zLTMuNC0zLTUuMiAwLTIgMS41LTMuOSAzLjctMy45aC4zYy00LjktNC42LTExLjQtNy40LTE4LjUtNy40LTkuNiAwLTE4IDQuOS0yMi45IDEyLjMuNiAwIDEuMiAwIDEuNyAwIDIuOCAwIDcuMi0uMyA3LjItLjNzLjItLjEuMi0uMi0xLjUtLjEtMS41LS4xYy45LTEuMSAxLjYtMy4xIDEuNi0zLjEuMiAwIDEuOS41IDIuNS41cy42LjEuNi4xYy0xLjMuOC0xLjUgMy4xLTEuNSAzLjFzMCAuNC40LjRjLjMgMCAuOC0uMy44LS4zLjguNCAxLjcgMi4xIDEuNyAyLjF2LS4yYy42IDEuNCAyLjMgNS4yIDIuMyA1LjIgMS4xIDMuMiAyLjggNS41IDQuMSA3LjIgMS4zIDEuNyAyLjggMy4xIDQuNCAzLjggNC4yLTEuMSA3LjItNC4zIDguNS03LjZsLjItLjVjLjEtLjMuMi0uNi40LTFsLTYuNi0xOGMtLjYtMS42LTEtMi43LTEuNC0zLjhoLS41Yy0uNCAwLS43LjEtLjcuMS0uMS4xLjIuMi4yLjJzMS40LjEgMi4yLjRjLjkuMiAyIC43IDIgLjcuMy4xLjcuMy43LjNzLjEgMCAuMS0uMWMwIDAgLjEtLjItLjQtLjQtLjMtLjEtMS0uMy0xLjYtLjUtLjUtLjEtLjktLjItMS0uMi0uMSAwLS4xLS4xLS4xLS4xdi0uMWMwIC4xLjEuMS4xLjFzMCAuMS0uMS4xYy0uMi4xLjEuMy41LjVzLjkuNSAxLjQuN2MuNi4zIDEuMS43IDEuNC45LjMuMy42LjkuOSAxLjIuMy40LjYgMS4xLjggMS43bDQuMSAxMy44YzIuNy0xLjEgNC42LTMuNyA0LjYtNi43eiIgZmlsbD0iIzMzMzMzMyIvPjwvc3ZnPg==');
|
#login h1 {
|
||||||
background-size: 84px;
|
text-align: center;
|
||||||
background-position: center top;
|
margin: 0 0 30px;
|
||||||
background-repeat: no-repeat;
|
font-size: 28px;
|
||||||
|
font-weight: 400;
|
||||||
color: #3c434a;
|
color: #3c434a;
|
||||||
height: 84px;
|
}
|
||||||
font-size: 0;
|
|
||||||
|
#login h1 a {
|
||||||
|
color: #2271b1;
|
||||||
|
text-decoration: none;
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 28px;
|
||||||
display: block;
|
display: block;
|
||||||
outline: 0;
|
background: none;
|
||||||
}}
|
height: auto;
|
||||||
.login form {{
|
}
|
||||||
|
|
||||||
|
#login h1 a:hover {
|
||||||
|
color: #135e96;
|
||||||
|
}
|
||||||
|
.login form {
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
margin-left: 0;
|
margin-left: 0;
|
||||||
padding: 26px 24px 34px;
|
padding: 26px 24px 34px;
|
||||||
@@ -55,8 +66,8 @@
|
|||||||
background: #fff;
|
background: #fff;
|
||||||
border: 1px solid #c3c4c7;
|
border: 1px solid #c3c4c7;
|
||||||
box-shadow: 0 1px 3px rgba(0, 0, 0, .04);
|
box-shadow: 0 1px 3px rgba(0, 0, 0, .04);
|
||||||
}}
|
}
|
||||||
.login form .input, .login input[type="text"], .login input[type="password"] {{
|
.login form .input, .login input[type="text"], .login input[type="password"] {
|
||||||
font-size: 24px;
|
font-size: 24px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 3px;
|
padding: 3px;
|
||||||
@@ -66,29 +77,29 @@
|
|||||||
box-shadow: none;
|
box-shadow: none;
|
||||||
color: #2c3338;
|
color: #2c3338;
|
||||||
outline: none;
|
outline: none;
|
||||||
}}
|
}
|
||||||
.login form .input:focus {{
|
.login form .input:focus {
|
||||||
border-color: #2271b1;
|
border-color: #2271b1;
|
||||||
box-shadow: 0 0 0 1px #2271b1;
|
box-shadow: 0 0 0 1px #2271b1;
|
||||||
}}
|
}
|
||||||
.login label {{
|
.login label {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
line-height: 1.5;
|
line-height: 1.5;
|
||||||
display: inline-block;
|
display: block;
|
||||||
margin-bottom: 3px;
|
margin-bottom: 8px;
|
||||||
}}
|
}
|
||||||
.login .forgetmenot {{
|
.login .forgetmenot {
|
||||||
margin: 2px 0 24px;
|
margin: 2px 0 24px;
|
||||||
}}
|
}
|
||||||
.login .forgetmenot label {{
|
.login .forgetmenot label {
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}}
|
}
|
||||||
.login .forgetmenot input {{
|
.login .forgetmenot input {
|
||||||
margin: 0 4px 0 0;
|
margin: 0 4px 0 0;
|
||||||
}}
|
}
|
||||||
.wp-hide-pw {{
|
.wp-hide-pw {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0;
|
right: 0;
|
||||||
top: 0;
|
top: 0;
|
||||||
@@ -98,17 +109,17 @@
|
|||||||
border: none;
|
border: none;
|
||||||
color: #2271b1;
|
color: #2271b1;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}}
|
}
|
||||||
.wp-hide-pw:hover {{
|
.wp-hide-pw:hover {
|
||||||
color: #135e96;
|
color: #135e96;
|
||||||
}}
|
}
|
||||||
.user-pass-wrap {{
|
.user-pass-wrap {
|
||||||
position: relative;
|
position: relative;
|
||||||
}}
|
}
|
||||||
.wp-pwd {{
|
.wp-pwd {
|
||||||
position: relative;
|
position: relative;
|
||||||
}}
|
}
|
||||||
#wp-submit {{
|
#wp-submit {
|
||||||
float: right;
|
float: right;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
@@ -123,57 +134,57 @@
|
|||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
background: #2271b1;
|
background: #2271b1;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}}
|
}
|
||||||
#wp-submit:hover {{
|
#wp-submit:hover {
|
||||||
background: #135e96;
|
background: #135e96;
|
||||||
border-color: #135e96;
|
border-color: #135e96;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
}}
|
}
|
||||||
p.submit {{
|
p.submit {
|
||||||
margin-bottom: 0;
|
margin-bottom: 0;
|
||||||
}}
|
}
|
||||||
#nav {{
|
#nav {
|
||||||
margin: 24px 0 0 0;
|
margin: 24px 0 0 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}}
|
}
|
||||||
#nav a {{
|
#nav a {
|
||||||
color: #50575e;
|
color: #50575e;
|
||||||
}}
|
}
|
||||||
#nav a:hover {{
|
#nav a:hover {
|
||||||
color: #135e96;
|
color: #135e96;
|
||||||
}}
|
}
|
||||||
#backtoblog {{
|
#backtoblog {
|
||||||
margin: 16px 0 0 0;
|
margin: 16px 0 0 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}}
|
}
|
||||||
#backtoblog a {{
|
#backtoblog a {
|
||||||
color: #50575e;
|
color: #50575e;
|
||||||
}}
|
}
|
||||||
#backtoblog a:hover {{
|
#backtoblog a:hover {
|
||||||
color: #135e96;
|
color: #135e96;
|
||||||
}}
|
}
|
||||||
.privacy-policy-page-link {{
|
.privacy-policy-page-link {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
margin-top: 16px;
|
margin-top: 16px;
|
||||||
}}
|
}
|
||||||
.privacy-policy-page-link a {{
|
.privacy-policy-page-link a {
|
||||||
color: #50575e;
|
color: #50575e;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
}}
|
}
|
||||||
@media screen and (max-width: 400px) {{
|
@media screen and (max-width: 400px) {
|
||||||
#login {{
|
#login {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
box-sizing: border-box;
|
box-sizing: border-box;
|
||||||
}}
|
}
|
||||||
}}
|
}
|
||||||
</style>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body class="login js login-action-login wp-core-ui locale-en-us">
|
<body class="login js login-action-login wp-core-ui locale-en-us">
|
||||||
<div id="login">
|
<div id="login">
|
||||||
<h1><a href="https://wordpress.org/">Powered by WordPress</a></h1>
|
<h1><a href="https://wordpress.org/">WordPress Login</a></h1>
|
||||||
<form name="loginform" id="loginform" action="/wp-login.php" method="post">
|
<form name="loginform" id="loginform" action="/wp-login.php" method="post">
|
||||||
<p>
|
<p>
|
||||||
<label for="user_login">Username or Email Address</label>
|
<label for="user_login">Username or Email Address</label>
|
||||||
|
|||||||
Reference in New Issue
Block a user