false,'error'=>'รหัสแอดมินไม่ถูกต้อง'], JSON_UNESCAPED_UNICODE); exit; } $id = preg_replace('/[^0-9]/', '', (string)($_POST['id'] ?? '')); if ($id === '') { echo json_encode(['ok'=>false,'error'=>'no id'], JSON_UNESCAPED_UNICODE); exit; } if (!is_dir($DATA_DIR)) @mkdir($DATA_DIR, 0775, true); $verify = tc_load($VERIFY); $rec = $verify[$id] ?? ['result'=>'none','comment'=>'','images'=>[]]; if (!isset($rec['images']) || !is_array($rec['images'])) $rec['images'] = []; $res = $_POST['result'] ?? ''; if (in_array($res, ['pass','fail','none'], true)) $rec['result'] = $res; if (isset($_POST['comment'])) $rec['comment'] = mb_substr(trim((string)$_POST['comment']), 0, 2000); // ลบรูป if (($_POST['removeImage'] ?? '') !== '') { $rm = basename((string)$_POST['removeImage']); $rec['images'] = array_values(array_filter($rec['images'], function($x) use ($rm){ return $x !== $rm; })); @unlink($UPLOADS . '/' . $rm); } // อัปโหลดรูป if (!empty($_FILES['image']['tmp_name']) && is_uploaded_file($_FILES['image']['tmp_name'])) { $ext = strtolower(pathinfo($_FILES['image']['name'], PATHINFO_EXTENSION)); if (in_array($ext, ['jpg','jpeg','png','gif','webp'], true) && $_FILES['image']['size'] < 8*1024*1024) { if (!is_dir($UPLOADS)) @mkdir($UPLOADS, 0775, true); $fn = $id . '_' . time() . '_' . bin2hex(random_bytes(3)) . '.' . $ext; if (move_uploaded_file($_FILES['image']['tmp_name'], $UPLOADS . '/' . $fn)) $rec['images'][] = $fn; } } $rec['at'] = date('Y-m-d H:i'); $verify[$id] = $rec; file_put_contents($VERIFY, json_encode($verify, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT), LOCK_EX); echo json_encode(['ok'=>true,'rec'=>$rec], JSON_UNESCAPED_UNICODE); exit; } $bugs = tc_load($BUGS); $verify = tc_load($VERIFY); ?>
| # | ปัญหา | สำคัญ | Dev | ผลตรวจ QA |
|---|