75 lines
2.5 KiB
PHP
75 lines
2.5 KiB
PHP
<?php
|
|
/**
|
|
* Admin/auth/debug_login.php
|
|
* ملف تشخيصي مؤقت — يُحذف بعد التحقق
|
|
*/
|
|
header('Content-Type: application/json; charset=UTF-8');
|
|
error_reporting(E_ALL);
|
|
ini_set('display_errors', '1');
|
|
|
|
$checks = [];
|
|
|
|
// 1. التحقق من ملف bootstrap
|
|
$bootstrapPath = __DIR__ . '/../../core/bootstrap.php';
|
|
$checks['bootstrap_exists'] = file_exists($bootstrapPath);
|
|
|
|
// 2. محاولة تحميل bootstrap مع التقاط الأخطاء
|
|
try {
|
|
ob_start();
|
|
require_once $bootstrapPath;
|
|
$bootstrapOutput = ob_get_clean();
|
|
$checks['bootstrap_loaded'] = true;
|
|
$checks['bootstrap_output'] = $bootstrapOutput ?: '(clean)';
|
|
} catch (Throwable $e) {
|
|
ob_end_clean();
|
|
$checks['bootstrap_loaded'] = false;
|
|
$checks['bootstrap_error'] = $e->getMessage() . ' in ' . $e->getFile() . ':' . $e->getLine();
|
|
}
|
|
|
|
// 3. التحقق من الدوال المطلوبة
|
|
$checks['filterRequest_exists'] = function_exists('filterRequest');
|
|
$checks['jsonError_exists'] = function_exists('jsonError');
|
|
$checks['sendWhatsAppFromServer_exists'] = function_exists('sendWhatsAppFromServer');
|
|
|
|
// 4. التحقق من قاعدة البيانات
|
|
try {
|
|
$con = Database::get('main');
|
|
$checks['db_connected'] = true;
|
|
|
|
// التحقق من بنية الجدول
|
|
$stmt = $con->query("DESCRIBE adminUser");
|
|
$columns = $stmt->fetchAll(PDO::FETCH_COLUMN);
|
|
$checks['adminUser_columns'] = $columns;
|
|
|
|
// هل يوجد جدول token_verification_admin؟
|
|
$stmt2 = $con->query("SHOW TABLES LIKE 'token_verification_admin'");
|
|
$checks['token_verification_admin_exists'] = $stmt2->rowCount() > 0;
|
|
|
|
if (!$checks['token_verification_admin_exists']) {
|
|
$checks['CRITICAL'] = 'Table token_verification_admin does NOT exist! This is why login fails.';
|
|
}
|
|
} catch (Throwable $e) {
|
|
$checks['db_connected'] = false;
|
|
$checks['db_error'] = $e->getMessage();
|
|
}
|
|
|
|
// 5. التحقق من PHP error log الأخير
|
|
$logPath = '/home/intaleq-api/logs/php_errors.log';
|
|
if (file_exists($logPath)) {
|
|
$lines = file($logPath);
|
|
$checks['last_5_errors'] = array_map('trim', array_slice($lines, -5));
|
|
} else {
|
|
$logPath2 = __DIR__ . '/../../logs/php_errors.log';
|
|
if (file_exists($logPath2)) {
|
|
$lines = file($logPath2);
|
|
$checks['last_5_errors'] = array_map('trim', array_slice($lines, -5));
|
|
} else {
|
|
$checks['error_log'] = 'Log file not found';
|
|
}
|
|
}
|
|
|
|
// 6. نسخة PHP
|
|
$checks['php_version'] = PHP_VERSION;
|
|
|
|
echo json_encode($checks, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
|