prepare($sql); if ($stmt) { $stmt->bind_param("ssssss", $user, $ip, $os, $browser, $thistime, $status); $stmt->execute(); $stmt->close(); } } catch (Exception $e) { // Ignore logging errors so they don't break the login flow error_log("Login Auth Log Error: " . $e->getMessage()); } } try { //------- Check Block IP ---------- $stmt_block = $conn2->prepare("SELECT block_ip_number FROM block_ip WHERE block_ip_number = ?"); $stmt_block->bind_param("s", $ip); $stmt_block->execute(); $stmt_block->store_result(); if ($stmt_block->num_rows >= 1) { $stmt_block->close(); echo '
Your IP is Blocked !!!
'; exit(); } $stmt_block->close(); //------- Check User Credentials ---------- $stmt_user = $conn1->prepare("SELECT loginname, name, entryposition, two_fa_secret_key_samui FROM opduser WHERE loginname = ? AND passweb = ? AND two_fa_secret_key_samui IS NOT NULL AND account_disable='N'"); $stmt_user->bind_param("ss", $user, $md5_pass); $stmt_user->execute(); $result_user = $stmt_user->get_result(); if ($result_user->num_rows === 1) { $row = $result_user->fetch_assoc(); $account = $row['loginname']; $name = $row['name']; $position = $row['entryposition']; $fa_secretkey = $row['two_fa_secret_key_samui']; if (TokenAuth6238::verify($fa_secretkey, $currentcode)) { session_regenerate_id(true); // Prevent session fixation $_SESSION['sess_userid'] = session_id(); $_SESSION['account'] = $account; $_SESSION['name'] = $name; $_SESSION['position'] = $position; $_SESSION['ip'] = $ip; log_auth($conn2, $user, $ip, $os, $browser, $thistime, "Login Success"); header("Location: main.php"); exit(); } else { log_auth($conn2, $user, $ip, $os, $browser, $thistime, "2FA Authen Fail"); header("Location: error.php?message=Pass+Code"); exit(); } } else { log_auth($conn2, $user, $ip, $os, $browser, $thistime, "User/Pass Fail"); header("Location: error.php?message=" . urlencode("บัญชีผู้ใช้ / รหัสผ่าน")); exit(); } } catch (Exception $e) { // If something crashes completely, show error error_log("Authen Error: " . $e->getMessage()); header("Location: error.php?message=" . urlencode("ระบบฐานข้อมูลขัดข้อง")); exit(); } ?>