From ec64282d8aac71f8ad64c1d423ae38e1b69c9b39 Mon Sep 17 00:00:00 2001 From: Alexander Andreev Date: Sat, 21 Feb 2026 16:10:51 +0300 Subject: [PATCH] Public: improve comment submit error diagnostics and fallback --- index.php | 27 ++++++++++++++++++++++----- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/index.php b/index.php index e2665fa..dbdbe35 100644 --- a/index.php +++ b/index.php @@ -37,8 +37,9 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && (string)($_POST['action'] ?? '') == try { $savedComment = commentAdd($photoId, (int)$u['id'], limitText($text, 1000)); $commentSaved = true; - } catch (Throwable) { - $errorMessage = 'Не удалось отправить комментарий.'; + } catch (Throwable $e) { + error_log('Comment add failed: ' . $e->getMessage()); + $errorMessage = 'Ошибка отправки комментария: ' . $e->getMessage(); $errorCode = 500; } } else { @@ -1004,9 +1005,25 @@ function outputWatermarked(string $path, string $mime): never } }); - const payload = await response.json().catch(() => null); - if (!response.ok || !payload || payload.ok !== true) { - throw new Error(payload && payload.message ? String(payload.message) : 'Не удалось отправить комментарий.'); + const raw = await response.text(); + let payload = null; + try { + payload = JSON.parse(raw); + } catch { + payload = null; + } + + if (!payload) { + if (response.ok) { + window.location.reload(); + return; + } + + throw new Error(raw.trim() !== '' ? raw.slice(0, 220) : 'Не удалось отправить комментарий.'); + } + + if (!response.ok || payload.ok !== true) { + throw new Error(payload.message ? String(payload.message) : 'Не удалось отправить комментарий.'); } setCommentFeedback(payload.message || 'Ваш комментарий отправлен.', false);