Add diagnose_login.php for database query diagnostics
This commit is contained in:
94
backend/diagnose_login.php
Normal file
94
backend/diagnose_login.php
Normal file
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
header('Content-Type: text/plain; charset=UTF-8');
|
||||
require_once __DIR__ . '/core/bootstrap.php';
|
||||
|
||||
echo "--- 🔍 SIRO LOGIN DIAGNOSTIC TOOL ---\n\n";
|
||||
|
||||
try {
|
||||
$con = Database::get('main');
|
||||
echo "✅ Database connection successful.\n";
|
||||
} catch (Exception $e) {
|
||||
echo "❌ Database connection failed: " . $e->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";
|
||||
}
|
||||
Reference in New Issue
Block a user