V1rus Private
User / IP
:
216.73.217.108
Host / Server
:
190.92.174.125 / aerosofthealthcare.com
System
:
Linux s3739.bom1.stableserver.net 4.18.0-513.24.1.lve.2.el8.x86_64 #1 SMP Fri May 24 12:42:50 UTC 2024 x86_64
Cmd
|
Upload
|
Mass Deface
|
Create
|
Sym
:
/
home
/
aerosoft
/
www
/
exam
/
Viewing: login.php
<?php include 'config.php'; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Login | LearnHub</title> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"> <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet"> <style> :root { --primary-color: #4361ee; --secondary-color: #3a0ca3; --accent-color: #4cc9f0; --success-color: #4bb543; --light-bg: #f8f9fa; --dark-text: #2d3748; } body { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); min-height: 100vh; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; display: flex; align-items: center; } .login-container { max-width: 450px; margin: 0 auto; background: white; border-radius: 20px; box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1); overflow: hidden; animation: slideUp 0.6s ease-out; } @keyframes slideUp { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: translateY(0); } } .login-header { background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); color: white; padding: 40px 30px; text-align: center; position: relative; } .login-header::before { content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%23ffffff" fill-opacity="0.1" d="M0,96L48,112C96,128,192,160,288,186.7C384,213,480,235,576,213.3C672,192,768,128,864,128C960,128,1056,192,1152,192C1248,192,1344,128,1392,96L1440,64L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>'); background-size: cover; } .login-header h2 { position: relative; font-weight: 700; margin-bottom: 10px; } .login-header p { position: relative; opacity: 0.9; font-size: 1.1rem; } .login-body { padding: 40px; } .form-control { border: 2px solid #e2e8f0; border-radius: 10px; padding: 12px 15px; font-size: 15px; transition: all 0.3s ease; } .form-control:focus { border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(67, 97, 238, 0.1); } .form-label { font-weight: 600; color: var(--dark-text); margin-bottom: 8px; } .input-group-icon { position: relative; } .input-group-icon .form-control { padding-left: 45px; } .input-group-icon i { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); color: #a0aec0; z-index: 5; } .btn-login { background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); border: none; color: white; padding: 14px; border-radius: 10px; font-weight: 600; font-size: 16px; transition: all 0.3s ease; box-shadow: 0 4px 15px rgba(67, 97, 238, 0.3); } .btn-login:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(67, 97, 238, 0.4); color: white; } .alert { border-radius: 10px; border: none; padding: 15px 20px; } .register-link { color: var(--primary-color); text-decoration: none; font-weight: 600; transition: color 0.3s ease; } .register-link:hover { color: var(--secondary-color); } .user-type-badge { background: linear-gradient(135deg, #4cc9f0, #4361ee); color: white; padding: 8px 16px; border-radius: 20px; font-size: 0.8rem; font-weight: 600; display: inline-block; margin-top: 10px; } .additional-options { border-top: 1px solid #e2e8f0; padding-top: 20px; margin-top: 20px; } .option-link { color: #718096; text-decoration: none; font-size: 0.9rem; transition: color 0.3s ease; } .option-link:hover { color: var(--primary-color); } @media (max-width: 768px) { .login-container { margin: 20px; border-radius: 15px; } .login-body { padding: 30px 25px; } .login-header { padding: 30px 20px; } } .floating-alert { position: fixed; top: 20px; right: 20px; z-index: 1050; animation: slideInRight 0.5s ease-out; } @keyframes slideInRight { from { opacity: 0; transform: translateX(100%); } to { opacity: 1; transform: translateX(0); } } .demo-accounts { background: var(--light-bg); border-radius: 10px; padding: 15px; margin-top: 20px; border-left: 4px solid var(--primary-color); } .demo-accounts h6 { color: var(--dark-text); font-weight: 600; margin-bottom: 10px; } .demo-item { font-size: 0.85rem; margin-bottom: 5px; } </style> </head> <body> <!-- Animated Background --> <div class="position-absolute w-100 h-100" style="z-index: -1;"> <div class="position-absolute top-0 start-0 w-100 h-100" style="background: rgba(255,255,255,0.1);"></div> </div> <div class="container"> <div class="login-container"> <!-- Header --> <div class="login-header"> <h2><i class="fas fa-sign-in-alt me-2"></i>Welcome Back</h2> <p>Sign in to continue your learning journey</p> </div> <!-- Body --> <div class="login-body"> <?php if ($_SERVER['REQUEST_METHOD'] == 'POST') { $email = sanitize($_POST['email']); $password = $_POST['password']; // Check student login $stmt = $pdo->prepare("SELECT * FROM students WHERE email = ?"); $stmt->execute([$email]); $student = $stmt->fetch(); if ($student && password_verify($password, $student['password'])) { $_SESSION['student_id'] = $student['id']; $_SESSION['student_name'] = $student['name']; echo '<div class="alert alert-success d-flex align-items-center" role="alert"> <i class="fas fa-check-circle me-2"></i> <div>Login successful! Redirecting...</div> </div>'; echo '<script>setTimeout(function() { window.location.href = "student_dashboard.php"; }, 1000);</script>'; } else { // Check admin login $stmt = $pdo->prepare("SELECT * FROM admin WHERE username = ?"); $stmt->execute([$email]); $admin = $stmt->fetch(); if ($admin && password_verify($password, $admin['password'])) { $_SESSION['admin_id'] = $admin['id']; $_SESSION['admin_username'] = $admin['username']; echo '<div class="alert alert-success d-flex align-items-center" role="alert"> <i class="fas fa-check-circle me-2"></i> <div>Admin login successful! Redirecting...</div> </div>'; echo '<script>setTimeout(function() { window.location.href = "admin_dashboard.php"; }, 1000);</script>'; } else { echo '<div class="alert alert-danger d-flex align-items-center" role="alert"> <i class="fas fa-exclamation-triangle me-2"></i> <div>Invalid email/username or password!</div> </div>'; } } } ?> <form method="POST" action="" id="loginForm"> <div class="mb-4"> <label class="form-label">Email or Username <span class="text-danger">*</span></label> <div class="input-group-icon"> <i class="fas fa-user"></i> <input type="text" class="form-control" name="email" placeholder="Enter your email or username" required> </div> </div> <div class="mb-4"> <label class="form-label">Password <span class="text-danger">*</span></label> <div class="input-group-icon"> <i class="fas fa-lock"></i> <input type="password" class="form-control" name="password" placeholder="Enter your password" required> </div> </div> <div class="d-flex justify-content-between align-items-center mb-4"> <div class="form-check"> <input class="form-check-input" type="checkbox" id="rememberMe"> <label class="form-check-label" for="rememberMe"> Remember me </label> </div> <a href="#" class="option-link"> <i class="fas fa-key me-1"></i>Forgot Password? </a> </div> <button type="submit" class="btn btn-login w-100 mb-4"> <i class="fas fa-sign-in-alt me-2"></i>Sign In </button> </form> <!-- Demo Accounts (for testing) --> <div class="demo-accounts"> <h6><i class="fas fa-info-circle me-1"></i>Demo Accounts</h6> <div class="demo-item"> <strong>Student:</strong> student@example.com / password123 </div> <div class="demo-item"> <strong>Admin:</strong> admin / admin123 </div> </div> <div class="text-center mt-4"> <p class="mb-0">Don't have an account? <a href="register.php" class="register-link"> <i class="fas fa-user-plus me-1"></i>Create Account </a> </p> </div> <!-- Additional Options --> <div class="additional-options"> <div class="row text-center"> <div class="col-6"> <a href="index.php" class="option-link"> <i class="fas fa-home me-1"></i>Home </a> </div> <div class="col-6"> <a href="register.php" class="option-link"> <i class="fas fa-question-circle me-1"></i>Help </a> </div> </div> </div> </div> </div> </div> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script> <script> // Form validation and animation const form = document.getElementById('loginForm'); form.addEventListener('submit', function(e) { const requiredFields = form.querySelectorAll('[required]'); let valid = true; requiredFields.forEach(field => { if (!field.value.trim()) { field.style.borderColor = '#e53e3e'; valid = false; // Reset border color after 2 seconds setTimeout(() => { field.style.borderColor = '#e2e8f0'; }, 2000); } }); if (!valid) { e.preventDefault(); // Add shake animation to invalid fields requiredFields.forEach(field => { if (!field.value.trim()) { field.classList.add('animate__animated', 'animate__headShake'); setTimeout(() => { field.classList.remove('animate__animated', 'animate__headShake'); }, 1000); } }); } }); // Add loading state to submit button form.addEventListener('submit', function() { const submitBtn = form.querySelector('button[type="submit"]'); submitBtn.innerHTML = '<i class="fas fa-spinner fa-spin me-2"></i>Signing In...'; submitBtn.disabled = true; // Re-enable button after 3 seconds in case of error setTimeout(() => { submitBtn.innerHTML = '<i class="fas fa-sign-in-alt me-2"></i>Sign In'; submitBtn.disabled = false; }, 3000); }); // Auto-fill demo accounts for testing document.addEventListener('DOMContentLoaded', function() { const urlParams = new URLSearchParams(window.location.search); const demo = urlParams.get('demo'); if (demo === 'student') { document.querySelector('input[name="email"]').value = 'student@example.com'; document.querySelector('input[name="password"]').value = 'password123'; } else if (demo === 'admin') { document.querySelector('input[name="email"]').value = 'admin'; document.querySelector('input[name="password"]').value = 'admin123'; } }); // Show password functionality const passwordInput = document.querySelector('input[name="password"]'); const passwordIcon = document.querySelector('.fa-lock'); passwordIcon.addEventListener('click', function() { if (passwordInput.type === 'password') { passwordInput.type = 'text'; passwordIcon.classList.remove('fa-lock'); passwordIcon.classList.add('fa-unlock'); } else { passwordInput.type = 'password'; passwordIcon.classList.remove('fa-unlock'); passwordIcon.classList.add('fa-lock'); } }); </script> </body> </html>
Coded With 💗 by
HanzOFC