- URL 하드코딩 → .env APP_URL 기반 동적 URL로 변경 - DB 연결 하드코딩 → .env 기반으로 변경 - MySQL strict mode DATE 오류 수정
135 lines
4.8 KiB
PHP
135 lines
4.8 KiB
PHP
<?php
|
|
require_once($_SERVER['DOCUMENT_ROOT'] . "/session.php");
|
|
|
|
ini_set('display_errors', 1);
|
|
ini_set('display_startup_errors', 1);
|
|
error_reporting(E_ALL);
|
|
|
|
header("Content-Type: application/json");
|
|
|
|
$num = isset($_REQUEST['num']) ? $_REQUEST['num'] : '';
|
|
$tablename = isset($_REQUEST['tablename']) ? $_REQUEST['tablename'] : 'output';
|
|
$ACIaskDate = isset($_REQUEST['ACIaskDate']) ? $_REQUEST['ACIaskDate'] : '';
|
|
$ACIdoneDate = isset($_REQUEST['ACIdoneDate']) ? $_REQUEST['ACIdoneDate'] : '';
|
|
|
|
// JSON 데이터를 저장할 경로 설정
|
|
$jsonFilePath = "../output/real_json/" . $num . ".json";
|
|
|
|
/**
|
|
* 모든 필드가 빈 값인지 확인하는 함수
|
|
* 각 항목은 객체 형태로 저장되며,
|
|
* - 일반 입력 요소: 'value' 값이 빈 문자열인지,
|
|
* - 체크박스: 'checked'가 '1'이 아닌지 확인합니다.
|
|
*/
|
|
function isAllEmpty($data) {
|
|
$keys = ['inputValue', 'beforeWidth', 'beforeHeight', 'afterWidth', 'afterHeight', 'recordComent', 'exceptCheck'];
|
|
foreach ($keys as $key) {
|
|
if (isset($data[$key]) && is_array($data[$key])) {
|
|
foreach ($data[$key] as $item) {
|
|
// 일반 입력 요소의 경우
|
|
if (isset($item['value']) && trim($item['value']) !== '') {
|
|
return false;
|
|
}
|
|
// 체크박스의 경우 (값이 '1'이면 체크된 상태)
|
|
if (isset($item['checked']) && $item['checked'] === '1') {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
if (isset($_POST['realiList'])) {
|
|
$realiList_jsondata = json_decode($_POST['realiList'], true);
|
|
|
|
if ($realiList_jsondata === null && json_last_error() !== JSON_ERROR_NONE) {
|
|
echo json_encode([
|
|
'error' => 'Invalid JSON data provided.',
|
|
'json_error' => json_last_error_msg()
|
|
], JSON_UNESCAPED_UNICODE);
|
|
// 기존 JSON 파일 삭제
|
|
if (file_exists($jsonFilePath)) {
|
|
unlink($jsonFilePath);
|
|
}
|
|
exit;
|
|
}
|
|
|
|
// 만약 모든 데이터가 빈 값이라면, JSON 파일을 삭제하고 DB 업데이트 시 빈 값으로 처리
|
|
if (isAllEmpty($realiList_jsondata)) {
|
|
if (file_exists($jsonFilePath)) {
|
|
unlink($jsonFilePath);
|
|
}
|
|
|
|
// 데이터베이스 업데이트: realiList 필드를 빈 값으로 저장
|
|
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
|
|
$pdo = db_connect();
|
|
try {
|
|
$pdo->beginTransaction();
|
|
$sql = "UPDATE {$DB}.{$tablename} SET realiList=? WHERE num=? LIMIT 1";
|
|
$stmh = $pdo->prepare($sql);
|
|
$stmh->bindValue(1, '', PDO::PARAM_STR); // 빈 값 저장
|
|
$stmh->bindValue(2, $num, PDO::PARAM_STR);
|
|
$stmh->execute();
|
|
$pdo->commit();
|
|
} catch (PDOException $Exception) {
|
|
$pdo->rollBack();
|
|
error_log("오류: " . $Exception->getMessage());
|
|
echo json_encode(['error' => $Exception->getMessage()], JSON_UNESCAPED_UNICODE);
|
|
exit;
|
|
}
|
|
|
|
echo json_encode([
|
|
'num' => $num,
|
|
'message' => 'JSON data is empty. JSON file deleted and database updated.',
|
|
'realiList_jsondata' => $realiList_jsondata
|
|
], JSON_UNESCAPED_UNICODE);
|
|
exit;
|
|
}
|
|
|
|
// 기존 JSON 파일 삭제 (덮어쓰기 위해)
|
|
if (file_exists($jsonFilePath)) {
|
|
unlink($jsonFilePath);
|
|
}
|
|
|
|
// JSON 데이터를 파일에 저장
|
|
$saveResult = file_put_contents($jsonFilePath, json_encode($realiList_jsondata, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT));
|
|
if ($saveResult === false) {
|
|
echo json_encode(['error' => 'Failed to write JSON file.'], JSON_UNESCAPED_UNICODE);
|
|
exit;
|
|
}
|
|
} else {
|
|
echo json_encode(['error' => 'No realiList data provided.'], JSON_UNESCAPED_UNICODE);
|
|
exit;
|
|
}
|
|
|
|
require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php");
|
|
$pdo = db_connect();
|
|
|
|
try {
|
|
$pdo->beginTransaction();
|
|
// 데이터베이스에 JSON 파일 경로 저장
|
|
$sql = "UPDATE {$DB}.{$tablename} SET realiList=? WHERE num=? LIMIT 1";
|
|
$stmh = $pdo->prepare($sql);
|
|
$stmh->bindValue(1, $jsonFilePath, PDO::PARAM_STR);
|
|
$stmh->bindValue(2, $num, PDO::PARAM_STR);
|
|
$stmh->execute();
|
|
$pdo->commit();
|
|
} catch (PDOException $Exception) {
|
|
$pdo->rollBack();
|
|
error_log("오류: " . $Exception->getMessage());
|
|
echo json_encode(['error' => $Exception->getMessage()], JSON_UNESCAPED_UNICODE);
|
|
exit;
|
|
}
|
|
|
|
$data = [
|
|
'num' => $num,
|
|
'realiList source' => $_POST['realiList'],
|
|
'json_file' => $jsonFilePath,
|
|
'realiList_jsondata' => $realiList_jsondata,
|
|
'message' => 'JSON data saved to file and database updated successfully.'
|
|
];
|
|
|
|
echo json_encode($data, JSON_UNESCAPED_UNICODE);
|
|
?>
|