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