Fix #18: Exception leak remediation across 87 PHP files

- Replaced all client-facing $e->getMessage() with generic error messages
- Added error_log() with filename prefix to all catch blocks
- Covered jsonError(), echo, and json_encode() response patterns
- Also fixed 2 remaining display_errors=1 and add_invoice.php leak
- Script-assisted fix for 75 files, manual fix for 12 remaining edge cases
This commit is contained in:
Hamza-Ayed
2026-06-17 07:48:31 +03:00
parent e51d266a0f
commit 72eeb24cd7
88 changed files with 240 additions and 100 deletions

View File

@@ -181,8 +181,10 @@ try {
jsonSuccess($final_result);
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[get.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
} catch (Throwable $e) {
jsonError("Internal error: " . $e->getMessage());
error_log("[get.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}
?>

View File

@@ -160,7 +160,9 @@ try {
jsonSuccess($limited_results);
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getBalash.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
} catch (Throwable $e) {
jsonError("Internal error: " . $e->getMessage());
error_log("[getBalash.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}

View File

@@ -154,7 +154,9 @@ try {
jsonSuccess($limited_results);
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getCarsLocationByPassengerVan.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
} catch (Throwable $e) {
jsonError("Internal error: " . $e->getMessage());
error_log("[getCarsLocationByPassengerVan.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}

View File

@@ -164,7 +164,9 @@ try {
jsonSuccess($limited_results);
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getComfort.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
} catch (Throwable $e) {
jsonError("Internal error: " . $e->getMessage());
error_log("[getComfort.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}

View File

@@ -153,7 +153,9 @@ try {
jsonSuccess($limited_results);
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getDelivery.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
} catch (Throwable $e) {
jsonError("Internal error: " . $e->getMessage());
error_log("[getDelivery.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}

View File

@@ -87,8 +87,10 @@ try {
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getDriverCarsLocationToPassengerAfterApplied.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
} catch (Throwable $e) {
jsonError("Internal error: " . $e->getMessage());
error_log("[getDriverCarsLocationToPassengerAfterApplied.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}
?>

View File

@@ -119,7 +119,8 @@ try {
printSuccess("Report generated based on Daily Summary.", $savePath);
} catch (Exception $e) {
jsonError("Error: " . $e->getMessage());
error_log("[getDriverTimeOnline.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}
// --- دوال مساعدة ---

View File

@@ -155,7 +155,9 @@ try {
jsonSuccess($limited_results);
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getElectric.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
} catch (Throwable $e) {
jsonError("Internal error: " . $e->getMessage());
error_log("[getElectric.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}

View File

@@ -154,7 +154,9 @@ try {
jsonSuccess($limited_results);
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getFemalDriver.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
} catch (Throwable $e) {
jsonError("Internal error: " . $e->getMessage());
error_log("[getFemalDriver.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}

View File

@@ -81,8 +81,10 @@ try {
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getLocationParents.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
} catch (Throwable $e) {
jsonError("Internal error: " . $e->getMessage());
error_log("[getLocationParents.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}
?>

View File

@@ -108,5 +108,6 @@ try {
jsonError("No car locations found");
}
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getPinkBike.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}

View File

@@ -151,7 +151,9 @@ try {
jsonSuccess($limited_results);
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getSpeed.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
} catch (Throwable $e) {
jsonError("Internal error: " . $e->getMessage());
error_log("[getSpeed.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}

View File

@@ -10,7 +10,7 @@ header("Content-Type: application/json; charset=UTF-8");
// تفعيل إظهار الأخطاء لمعرفة مشكلة الكتابة
error_reporting(E_ALL);
ini_set('display_errors', 1);
ini_set('display_errors', 0);
try {
// البدء بالاتصال بقواعد البيانات المطلوبة
@@ -122,6 +122,6 @@ try {
}
} catch (Exception $e) {
echo json_encode(["status" => "error", "message" => $e->getMessage()]);
echo json_encode(["status" => "error", "message" => "An internal error occurred"]);
}
?>

View File

@@ -20,5 +20,6 @@ try {
jsonError("No car locations found");
}
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[get_location_area_links.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}

View File

@@ -81,6 +81,7 @@ LIMIT 10;
jsonError("No car locations found");
}
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[getfemalbehavior.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}
?>

View File

@@ -49,9 +49,11 @@ try {
}
} catch (PDOException $e) {
jsonError("Database error: " . $e->getMessage());
error_log("[save_behavior.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
} catch (Throwable $e) {
jsonError("Internal error: " . $e->getMessage());
error_log("[save_behavior.php] " . $e->getMessage());
jsonError("An internal error occurred. Please try again later.");
}
// تم حذف exit() من هنا ليتم التعامل معها داخل try/catch