prepare(" SELECT id, name, surname, level, class, username, password FROM teachers WHERE username = :username AND school_id = :school_id "); $stmt->execute([ 'username' => $username, 'school_id' => $school_id ]); $user = $stmt->fetch(); if ($user && password_verify($password, $user['password'])) { // Login successful $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; $_SESSION['role'] = $role; $_SESSION['school_id'] = $school_id; $_SESSION['teacher_id'] = $user['id']; $_SESSION['level'] = $user['level']; $_SESSION['class'] = $user['class']; // บันทึกประวัติการล็อกอินสำเร็จ recordLoginHistory($pdo, $user['id'], $username, $role, $school_id, 'success'); // Redirect to console header('Location: console'); exit; } else { // Try with plain text password (for development/testing) $stmt = $pdo->prepare(" SELECT id, name, surname, level, class, username, password FROM teachers WHERE username = :username AND password = :password AND school_id = :school_id "); $stmt->execute([ 'username' => $username, 'password' => $password, 'school_id' => $school_id ]); $user = $stmt->fetch(); if ($user) { // Login successful $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; $_SESSION['role'] = $role; $_SESSION['school_id'] = $school_id; $_SESSION['teacher_id'] = $user['id']; $_SESSION['level'] = $user['level']; $_SESSION['class'] = $user['class']; // บันทึกประวัติการล็อกอินสำเร็จ recordLoginHistory($pdo, $user['id'], $username, $role, $school_id, 'success'); // Redirect to console header('Location: console'); exit; } else { // บันทึกประวัติการล็อกอินล้มเหลว recordLoginHistory($pdo, '0', $username, $role, $school_id, 'failed', 'ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง'); $error = 'ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง'; } } } else if ($role === 'student' || $role === 'parent') { // Check in students table $stmt = $pdo->prepare(" SELECT id, title, name, surname, level, class, number, username, password FROM students WHERE username = :username AND school_id = :school_id "); $stmt->execute([ 'username' => $username, 'school_id' => $school_id ]); $user = $stmt->fetch(); if ($user && password_verify($password, $user['password'])) { // Login successful $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; $_SESSION['student'] = $user['title'] . $user['name'] . ' '. $user['surname']; $_SESSION['role'] = $role; $_SESSION['school_id'] = $school_id; $_SESSION['student_id'] = $user['id']; $_SESSION['level'] = $user['level']; $_SESSION['class'] = $user['class']; $_SESSION['number'] = $user['number']; // Redirect to console header('Location: console'); exit; } else { // Try with plain text password (for development/testing) $stmt = $pdo->prepare(" SELECT id, title, name, surname, level, class, number, username, password FROM students WHERE username = :username AND password = :password AND school_id = :school_id "); $stmt->execute([ 'username' => $username, 'password' => $password, 'school_id' => $school_id ]); $user = $stmt->fetch(); if ($user) { // Login successful $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; $_SESSION['student'] = $user['title'] . $user['name'] . ' '. $user['surname']; $_SESSION['role'] = $role; $_SESSION['school_id'] = $school_id; $_SESSION['student_id'] = $user['id']; $_SESSION['level'] = $user['level']; $_SESSION['class'] = $user['class']; $_SESSION['number'] = $user['number']; // Redirect to console header('Location: console'); exit; } else { $error = 'ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง'; } } } } } // เพิ่มฟังก์ชันสำหรับบันทึกประวัติการล็อกอิน function recordLoginHistory($pdo, $user_id, $username, $role, $school_id, $status, $details = null) { $ip = $_SERVER['REMOTE_ADDR']; $user_agent = $_SERVER['HTTP_USER_AGENT']; $stmt = $pdo->prepare(" INSERT INTO login_history (user_id, username, role, school_id, ip_address, user_agent, status, login_details) VALUES (:user_id, :username, :role, :school_id, :ip_address, :user_agent, :status, :login_details) "); $stmt->execute([ 'user_id' => $user_id, 'username' => $username, 'role' => $role, 'school_id' => $school_id, 'ip_address' => $ip, 'user_agent' => $user_agent, 'status' => $status, 'login_details' => $details ]); // ถ้าล็อกอินสำเร็จ เก็บ login_history_id ใน session if ($status === 'success') { $_SESSION['login_history_id'] = $pdo->lastInsertId(); } return $pdo->lastInsertId(); } // Get list of schools $stmt = $pdo->query("SELECT school_id, school_name FROM user_settings ORDER BY school_name"); $allSchools = $stmt->fetchAll(); $schools = []; $uniqueSchoolNames = []; foreach ($allSchools as $school) { if (!in_array($school['school_name'], $uniqueSchoolNames)) { $uniqueSchoolNames[] = $school['school_name']; $schools[] = $school; } } // Set page title $page_title = 'เข้าสู่ระบบ'; // Include header require_once 'includes/header.php'; ?>