encryptData($v); } error_log("[GIFT_CHECK] Received Phone: " . $phone); error_log("[GIFT_CHECK] Variants: " . implode(', ', $phoneVariants)); // بناء استعلام يبحث عن كل الاحتمالات (المشفرة وغير المشفرة) $placeholders = []; $params = []; foreach ($encVariants as $i => $ev) { $placeholders[] = "phone = :enc$i"; $params[":enc$i"] = $ev; } foreach ($phoneVariants as $i => $pv) { $placeholders[] = "phone = :raw$i"; $params[":raw$i"] = $pv; } $sql = "SELECT * FROM `driver` WHERE " . implode(" OR ", $placeholders); $stmt = $con->prepare($sql); foreach ($params as $key => $val) { $stmt->bindValue($key, $val); } $stmt->execute(); if ($stmt->rowCount() > 0) { $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // Decrypt sensitive fields $fieldsToDecrypt = ['phone', 'email', 'first_name', 'last_name', 'name_arabic', 'national_number', 'address', 'gender', 'site', 'birthdate']; foreach ($rows as &$row) { foreach ($fieldsToDecrypt as $f) { if (!empty($row[$f])) { $dec = $encryptionHelper->decryptData($row[$f]); if ($dec !== false && $dec !== null) { $row[$f] = $dec; } } } } unset($row); jsonSuccess($rows); } else { jsonError("No recent driver location activity found"); } ?>