first commit 2

This commit is contained in:
hmw1001
2026-06-11 18:47:38 +09:00
parent c768729ce6
commit 6f534e33a6
11095 changed files with 1595758 additions and 0 deletions
@@ -0,0 +1,91 @@
<?php
include_once('../../../../../common.php'); // 💡 [수정] 그누보드 전체 환경을 로드하도록 수정
header('Content-Type: application/json');
// 1. 입력값 검증
$wr_id = isset($_POST['wr_id']) ? (int)$_POST['wr_id'] : 0;
// 💡 [수정] bo_table 값 받기
$bo_table = isset($_POST['bo_table']) ? preg_replace('/[^a-z0-9_]/i', '', $_POST['bo_table']) : '';
if (!$wr_id || !$bo_table) {
echo json_encode(['success' => false, 'message' => '잘못된 접근입니다. (파라미터 부족)']);
exit;
}
// 2. 권한 검증 (본인 또는 관리자만 삭제 가능)
// 💡 [수정] bo_table을 이용해 테이블명 생성
$write_table = $g5['write_prefix'] . $bo_table;
// 게시판 존재 여부 확인 (테이블 존재 여부 체크는 생략 가능하지만, 안전을 위해 bo_table 검증)
$board = get_board_db($bo_table);
if (!$board) {
echo json_encode(['success' => false, 'message' => '존재하지 않는 게시판입니다.']);
exit;
}
// 게시글 조회
$write = get_write($write_table, $wr_id);
if (!$write['wr_id']) {
echo json_encode(['success' => false, 'message' => '존재하지 않는 글입니다.']);
exit;
}
if (!$is_admin && $member['mb_id'] !== $write['mb_id']) {
echo json_encode(['success' => false, 'message' => '삭제할 권한이 없습니다.']);
exit;
}
// 3. DB 트랜잭션 시작
sql_query("START TRANSACTION");
try {
// 4. 삭제할 estimate 정보 조회
$estimate = sql_fetch("SELECT id FROM estimate WHERE wr_id = '{$wr_id}'");
if ($estimate) {
$estimate_id = $estimate['id'];
// 4-1. estimate_item 삭제
$sql_delete_items = "DELETE FROM estimate_item WHERE estimate_id = '{$estimate_id}'";
sql_query($sql_delete_items);
// 4-2. estimate_bidding 삭제 (이 글이 제안한 입찰 정보)
$sql_delete_bidding = "DELETE FROM estimate_bidding WHERE wr_id = '{$wr_id}'";
sql_query($sql_delete_bidding);
// 4-3. estimate (마스터) 삭제
$sql_delete_estimate = "DELETE FROM estimate WHERE id = '{$estimate_id}'";
sql_query($sql_delete_estimate);
}
// 5. 게시글 삭제
// 5-1. 댓글 삭제 (이 글에 달린 대댓글)
$sql_delete_comments = "DELETE FROM {$write_table} WHERE wr_parent = '{$wr_id}' AND wr_is_comment = 1";
sql_query($sql_delete_comments);
// 5-2. 게시글 본문 삭제
$sql_delete_write = "DELETE FROM {$write_table} WHERE wr_id = '{$wr_id}'";
sql_query($sql_delete_write);
// 5-3. 게시판 글 수 업데이트
// 답변글도 게시판 글 수에 포함되므로 1 감소시킴
$sql_update_board_count = "UPDATE g5_board SET bo_count_write = bo_count_write - 1 WHERE bo_table = '{$bo_table}'";
sql_query($sql_update_board_count);
// 5-4. 최신글 캐시 삭제
delete_cache_latest($bo_table);
// 6. 트랜잭션 커밋
sql_query("COMMIT");
echo json_encode(['success' => true, 'message' => '견적 제안이 성공적으로 삭제되었습니다.']);
} catch (Exception $e) {
// 7. 오류 발생 시 롤백
sql_query("ROLLBACK");
echo json_encode(['success' => false, 'message' => 'DB 처리 중 오류가 발생했습니다: ' . $e->getMessage()]);
}
exit;
?>