query($createUsersTableQuery); // Check if admin user exists $adminCheckQuery = "SELECT * FROM users WHERE username = 'admin' AND user_type = 'faculty'"; $adminResult = $conn->query($adminCheckQuery); if ($adminResult && $adminResult->num_rows === 0) { // Create default admin user $adminPassword = password_hash('admin', PASSWORD_DEFAULT); $createAdminQuery = "INSERT INTO users (username, email, password, user_type) VALUES ('admin', 'admin@example.com', '$adminPassword', 'faculty')"; $conn->query($createAdminQuery); } // Process login form if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = trim($_POST['username']); $password = $_POST['password']; $userType = $_POST['user_type']; // Basic validation if (empty($username) || empty($password) || empty($userType)) { $error = "Please enter both username and password and select user type."; } else { if ($userType === 'faculty') { // Faculty login - check against users table $query = "SELECT * FROM users WHERE username = ? AND user_type = 'faculty' AND status = 'active'"; $stmt = $conn->prepare($query); $stmt->bind_param("s", $username); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows === 1) { $user = $result->fetch_assoc(); // Verify password if (password_verify($password, $user['password'])) { // Set session variables $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; $_SESSION['user_type'] = 'faculty'; // Update last login time $updateQuery = "UPDATE users SET last_login = NOW() WHERE id = ?"; $updateStmt = $conn->prepare($updateQuery); $updateStmt->bind_param("i", $user['id']); $updateStmt->execute(); // Redirect to home page header("Location: index.php"); exit; } else { $error = "Invalid username or password."; } } else { $error = "Invalid username or password."; } } else { // Student login - check against students_info table $studentCheckQuery = "SHOW TABLES LIKE 'students_info'"; $tableExists = $conn->query($studentCheckQuery)->num_rows > 0; if ($tableExists) { // Get student data structure $columnsQuery = "SHOW COLUMNS FROM students_info"; $columnsResult = $conn->query($columnsQuery); $studentIdField = null; // Find student ID field (assuming it's either 'student_id', 'Student_ID', or similar) while ($column = $columnsResult->fetch_assoc()) { if (preg_match('/(student|stud|roll)[\s_-]?(id|number|no)/i', $column['Field'])) { $studentIdField = $column['Field']; break; } } if ($studentIdField) { $query = "SELECT * FROM students_info WHERE $studentIdField = ?"; $stmt = $conn->prepare($query); $stmt->bind_param("s", $username); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows === 1) { $student = $result->fetch_assoc(); // For students, password should be same as student ID for simplicity if ($password === $username) { // Create or update user record for this student $userCheckQuery = "SELECT * FROM users WHERE username = ? AND user_type = 'student'"; $userCheckStmt = $conn->prepare($userCheckQuery); $userCheckStmt->bind_param("s", $username); $userCheckStmt->execute(); $userResult = $userCheckStmt->get_result(); if ($userResult->num_rows === 0) { // Create new user record $hashedPassword = password_hash($password, PASSWORD_DEFAULT); $createUserQuery = "INSERT INTO users (username, password, user_type) VALUES (?, ?, 'student')"; $createUserStmt = $conn->prepare($createUserQuery); $createUserStmt->bind_param("ss", $username, $hashedPassword); $createUserStmt->execute(); $userId = $conn->insert_id; } else { $user = $userResult->fetch_assoc(); $userId = $user['id']; } // Set session variables $_SESSION['user_id'] = $userId; $_SESSION['username'] = $username; $_SESSION['user_type'] = 'student'; $_SESSION['student_id'] = $student[$studentIdField]; // Update last login time $updateQuery = "UPDATE users SET last_login = NOW() WHERE id = ?"; $updateStmt = $conn->prepare($updateQuery); $updateStmt->bind_param("i", $userId); $updateStmt->execute(); // Redirect to home page header("Location: index.php"); exit; } else { $error = "Invalid password. Students should use their student ID as password."; } } else { $error = "Student ID not found in our records."; } } else { $error = "Student ID field not found in database structure."; } } else { $error = "Student information table not found."; } } } } // Check for success message $success = ''; if (isset($_SESSION['success_message'])) { $success = $_SESSION['success_message']; unset($_SESSION['success_message']); } // Include header include 'includes/header.php'; ?>
Access the project database with your credentials