From 8839a500fc6c2b74b0f00ceff80a093ff6b6fdc3 Mon Sep 17 00:00:00 2001 From: Hamza-Ayed Date: Thu, 25 Jun 2026 00:00:37 +0300 Subject: [PATCH] Add diagnose_login.php for database query diagnostics --- backend/diagnose_login.php | 94 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) create mode 100644 backend/diagnose_login.php diff --git a/backend/diagnose_login.php b/backend/diagnose_login.php new file mode 100644 index 0000000..e7fa425 --- /dev/null +++ b/backend/diagnose_login.php @@ -0,0 +1,94 @@ +getMessage() . "\n"; + exit; +} + +$targetId = 'e494c5750f95e1c26654'; +echo "Target Passenger ID: " . $targetId . "\n\n"; + +// 1. Check passengers table +try { + $stmt = $con->prepare("SELECT * FROM passengers WHERE id = ?"); + $stmt->execute([$targetId]); + $p = $stmt->fetch(PDO::FETCH_ASSOC); + if ($p) { + echo "โœ… Passenger found in database:\n"; + echo " - Phone (encrypted): " . $p['phone'] . "\n"; + echo " - Phone (decrypted): " . $encryptionHelper->decryptData($p['phone']) . "\n"; + echo " - First Name (decrypted): " . $encryptionHelper->decryptData($p['first_name']) . "\n"; + echo " - Last Name (decrypted): " . $encryptionHelper->decryptData($p['last_name']) . "\n"; + } else { + echo "โŒ Passenger NOT found in database!\n"; + } +} catch (Exception $e) { + echo "โŒ Error querying passengers table: " . $e->getMessage() . "\n"; +} + +// 2. Check phone_verification_passenger table +try { + $decryptedPhone = '962798583052'; + $encryptedPhone = $encryptionHelper->encryptData($decryptedPhone); + echo "\nSearching phone_verification_passenger for: $decryptedPhone ($encryptedPhone)\n"; + + $stmt = $con->prepare("SELECT * FROM phone_verification_passenger WHERE phone_number = ?"); + $stmt->execute([$encryptedPhone]); + $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); + if (!empty($rows)) { + echo "โœ… Phone verification rows found (" . count($rows) . "):\n"; + foreach ($rows as $row) { + echo " - ID: " . $row['id'] . " | Verified: " . $row['verified'] . " | Expiration: " . $row['expiration_time'] . " | Created At: " . $row['created_at'] . "\n"; + } + } else { + echo "โŒ No phone verification rows found for this phone number!\n"; + + // Let's get any recent rows + $stmt2 = $con->prepare("SELECT * FROM phone_verification_passenger ORDER BY id DESC LIMIT 5"); + $stmt2->execute(); + $all = $stmt2->fetchAll(PDO::FETCH_ASSOC); + echo " Recent rows in table:\n"; + foreach ($all as $row) { + $dec = $encryptionHelper->decryptData($row['phone_number']); + echo " - ID: " . $row['id'] . " | Phone (decrypted): $dec | Verified: " . $row['verified'] . "\n"; + } + } +} catch (Exception $e) { + echo "โŒ Error querying phone_verification_passenger: " . $e->getMessage() . "\n"; +} + +// 3. Test the exact SQL query from loginFromGooglePassenger.php +echo "\n--- ๐Ÿงช Testing loginFromGooglePassenger query (WITH verified = 1 constraint) ---\n"; +try { + $sqlOld = "SELECT p.`id` FROM passengers p + LEFT JOIN phone_verification_passenger ON phone_verification_passenger.phone_number = p.phone + WHERE p.id = :id AND phone_verification_passenger.verified = '1'"; + + $stmt = $con->prepare($sqlOld); + $stmt->execute([':id' => $targetId]); + $count = $stmt->rowCount(); + echo "Old query row count: $count\n"; +} catch (Exception $e) { + echo "Old query error: " . $e->getMessage() . "\n"; +} + +echo "\n--- ๐Ÿงช Testing loginFromGooglePassenger query (WITHOUT verified = 1 constraint) ---\n"; +try { + $sqlNew = "SELECT p.`id` FROM passengers p + LEFT JOIN phone_verification_passenger ON phone_verification_passenger.phone_number = p.phone + WHERE p.id = :id"; + + $stmt = $con->prepare($sqlNew); + $stmt->execute([':id' => $targetId]); + $count = $stmt->rowCount(); + echo "New query row count: $count\n"; +} catch (Exception $e) { + echo "New query error: " . $e->getMessage() . "\n"; +}