From fb5a95469193df01fcb9c0e51724d91357e2e2a4 Mon Sep 17 00:00:00 2001 From: kimbokon Date: Sun, 14 Dec 2025 15:42:40 +0900 Subject: [PATCH] Fix: 500 error(DB logic) and Geolocation timeout issue --- .../Shared/PDF/fonts/utils/pfm2afm.exe | Bin 22891 -> 0 bytes geoattendance/fix_geo_db.php | 37 ++++++ geoattendance/index.php | 118 ++++++++++++++---- holiday/list.php | 19 ++- img/uploads/2019_11_15_15_31_48_.JPG | Bin 0 -> 15439 bytes img/uploads/2019_11_15_15_38_20_.JPG | Bin 0 -> 11473 bytes img/uploads/2019_11_15_15_42_26_.JPG | Bin 0 -> 19004 bytes img/uploads/2019_11_15_15_43_33_.JPG | Bin 0 -> 11349 bytes img/uploads/2019_11_15_15_48_30_.JPG | Bin 0 -> 10286 bytes img/uploads/2019_11_15_15_50_51_.JPG | Bin 0 -> 13879 bytes output/debug_schema.php | 12 ++ output/fix_db_autoincrement.php | 54 ++++++++ output/insert.php | 16 ++- output/lotnum.txt | 2 +- session.php | 5 +- 15 files changed, 228 insertions(+), 35 deletions(-) delete mode 100644 PHPExcel_1.8.0/Classes/PHPExcel/Shared/PDF/fonts/utils/pfm2afm.exe create mode 100644 geoattendance/fix_geo_db.php create mode 100644 img/uploads/2019_11_15_15_31_48_.JPG create mode 100644 img/uploads/2019_11_15_15_38_20_.JPG create mode 100644 img/uploads/2019_11_15_15_42_26_.JPG create mode 100644 img/uploads/2019_11_15_15_43_33_.JPG create mode 100644 img/uploads/2019_11_15_15_48_30_.JPG create mode 100644 img/uploads/2019_11_15_15_50_51_.JPG create mode 100644 output/debug_schema.php create mode 100644 output/fix_db_autoincrement.php diff --git a/PHPExcel_1.8.0/Classes/PHPExcel/Shared/PDF/fonts/utils/pfm2afm.exe b/PHPExcel_1.8.0/Classes/PHPExcel/Shared/PDF/fonts/utils/pfm2afm.exe deleted file mode 100644 index 25c21fa1af17f457e8041b7799c1bc6f1d502adf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22891 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 diff --git a/geoattendance/fix_geo_db.php b/geoattendance/fix_geo_db.php new file mode 100644 index 00000000..97f5c1cf --- /dev/null +++ b/geoattendance/fix_geo_db.php @@ -0,0 +1,37 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + // 1. Check for ID 0 and move it if exists + // We use a subquery to find a safe new ID + echo "Checking for ID 0...\n"; + $stmt = $pdo->query("SELECT count(*) FROM geo_attendance WHERE id = 0"); + if ($stmt->fetchColumn() > 0) { + echo " - Found row with ID 0. Moving it to a new ID...\n"; + // Calculate max id + 1 + $stmt = $pdo->query("SELECT MAX(id) FROM geo_attendance"); + $maxId = $stmt->fetchColumn(); + $newId = ($maxId > 0 ? $maxId : 0) + 1; + + $pdo->exec("UPDATE geo_attendance SET id = $newId WHERE id = 0"); + echo " - ID 0 moved to $newId.\n"; + } + + // 2. Apply AUTO_INCREMENT + echo "Applying AUTO_INCREMENT to 'id' column...\n"; + $sql = "ALTER TABLE geo_attendance MODIFY id INT NOT NULL AUTO_INCREMENT"; + $pdo->exec($sql); + echo " - Success! 'geo_attendance.id' is now AUTO_INCREMENT.\n"; + +} catch (Exception $e) { + echo "Error: " . $e->getMessage() . "\n"; +} +?> diff --git a/geoattendance/index.php b/geoattendance/index.php index ada992fb..8d9bc59c 100644 --- a/geoattendance/index.php +++ b/geoattendance/index.php @@ -3,7 +3,7 @@ - SAM GeoWork - GPS 기반 출퇴근 시스템 + SAM GPS 기반 출퇴근 시스템 @@ -161,6 +161,9 @@ const [distance, setDistance] = useState(null); const [activeTab, setActiveTab] = useState('home'); + const [permissionStatus, setPermissionStatus] = useState('unknown'); + const [isSecure, setIsSecure] = useState(window.isSecureContext); + useEffect(() => { lucide.createIcons(); }, [activeTab, records]); @@ -169,31 +172,79 @@ useEffect(() => { loadRecords(); loadOfficeConfig(); + checkPermission(); }, []); - // Start watching location - useEffect(() => { - if ('geolocation' in navigator) { - const watchId = navigator.geolocation.watchPosition( - (position) => { - const newLoc = { - latitude: position.coords.latitude, - longitude: position.coords.longitude, - accuracy: position.coords.accuracy - }; - setCurrentLocation(newLoc); - setErrorMsg(null); - }, - (err) => { - console.error(err); - setErrorMsg("Unable to retrieve location. Please enable GPS."); - }, - { enableHighAccuracy: true, maximumAge: 10000, timeout: 5000 } - ); - return () => navigator.geolocation.clearWatch(watchId); - } else { - setErrorMsg("Geolocation is not supported by your browser."); + const checkPermission = async () => { + if (navigator.permissions && navigator.permissions.query) { + try { + const result = await navigator.permissions.query({ name: 'geolocation' }); + setPermissionStatus(result.state); + result.onchange = () => { + setPermissionStatus(result.state); + }; + } catch (error) { + console.error("Permission query failed", error); + } } + }; + + // Start watching location with fallback logic + useEffect(() => { + let watchId = null; + + const startWatch = (highAccuracy = true) => { + if (watchId) navigator.geolocation.clearWatch(watchId); + + if ('geolocation' in navigator) { + watchId = navigator.geolocation.watchPosition( + (position) => { + const newLoc = { + latitude: position.coords.latitude, + longitude: position.coords.longitude, + accuracy: position.coords.accuracy + }; + setCurrentLocation(newLoc); + setErrorMsg(null); + }, + (err) => { + console.error(err); + + // On Timeout (code 3) and currently using High Accuracy, try fallback + if (err.code === 3 && highAccuracy) { + console.warn("High accuracy timed out. Falling back to low accuracy."); + startWatch(false); + return; + } + + let msg = "위치를 가져올 수 없습니다."; + switch(err.code) { + case 1: msg = "위치 정보 권한이 거부되었습니다. 브라우저 설정에서 권한을 허용해주세요."; break; + case 2: msg = "위치 정보를 사용할 수 없습니다. GPS 신호를 확인해주세요."; break; + case 3: msg = "위치 정보 요청 시간이 초과되었습니다. (Low Accuracy 시도 실패)"; break; + default: msg = "알 수 없는 오류가 발생했습니다. (" + err.message + ")"; break; + } + if (window.location.protocol !== 'https:' && window.location.hostname !== 'localhost' && window.location.hostname !== '127.0.0.1') { + msg += " (주의: 보안 연결(HTTPS)이 아니면 위치 정보가 차단될 수 있습니다)"; + } + setErrorMsg(msg); + }, + { + enableHighAccuracy: highAccuracy, + maximumAge: 10000, + timeout: 15000 // 15 seconds timeout + } + ); + } else { + setErrorMsg("Geolocation is not supported by your browser."); + } + }; + + startWatch(true); // Start with High Accuracy + + return () => { + if (watchId) navigator.geolocation.clearWatch(watchId); + }; }, []); // Recalculate distance when location or office changes @@ -437,8 +488,25 @@
-

디버그 정보

-
+

시스템 상태 확인

+
+
+ GPS 권한: + + {permissionStatus === 'granted' ? '허용됨' : permissionStatus === 'prompt' ? '대기중(물어봄)' : '거부됨'} + +
+
+ 보안 연결(HTTPS): + + {isSecure ? '안전함' : '불안전(HTTP)'} + +
+ {!isSecure && ( +

+ 주의: HTTPS가 아니면 최신 브라우저에서 GPS가 차단됩니다. +

+ )}

거리: {distance ? distance.toFixed(1) : '알 수 없음'} 미터

반경 제한: {office.allowedRadiusMeters} 미터

GPS 정확도: {currentLocation?.accuracy ? currentLocation.accuracy.toFixed(1) + 'm' : '알 수 없음'}

diff --git a/holiday/list.php b/holiday/list.php index 09a4916d..d1bfec65 100644 --- a/holiday/list.php +++ b/holiday/list.php @@ -41,13 +41,14 @@ function checkNull($strtmp) { $search = isset($_REQUEST['search']) ? $_REQUEST['search'] : ''; $mode = isset($_REQUEST["mode"]) ? $_REQUEST["mode"] : ''; +$sort_order = isset($_REQUEST['sort_order']) ? $_REQUEST['sort_order'] : 'DESC'; $tablename = 'holiday'; require_once($_SERVER['DOCUMENT_ROOT'] . "/lib/mydb.php"); $pdo = db_connect(); -$order = " ORDER BY registedate DESC, num desc "; +$order = " ORDER BY startdate " . ($sort_order === 'ASC' ? 'ASC' : 'DESC') . ", num desc "; if (checkNull($search)) { $sql = "SELECT * FROM ".$DB.".".$tablename." @@ -65,7 +66,8 @@ try { - + +
@@ -112,7 +114,9 @@ try { - + @@ -179,6 +183,15 @@ $(document).ready(function() { $("#searchBtn").on("click", function() { $("#board_form").submit(); }); + + // 휴일시작 헤더 클릭 시 정렬 토글 + $("#sortStartDate").on("click", function(e) { + e.stopPropagation(); + var currentOrder = $("#sort_order").val(); + var newOrder = (currentOrder === 'DESC') ? 'ASC' : 'DESC'; + $("#sort_order").val(newOrder); + $("#board_form").submit(); + }); }); function loadForm(mode, num = null) { diff --git a/img/uploads/2019_11_15_15_31_48_.JPG b/img/uploads/2019_11_15_15_31_48_.JPG new file mode 100644 index 0000000000000000000000000000000000000000..c95ae67258566b90bcf5342badd164b572552308 GIT binary patch literal 15439 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 literal 0 HcmV?d00001 diff --git a/img/uploads/2019_11_15_15_42_26_.JPG b/img/uploads/2019_11_15_15_42_26_.JPG new file mode 100644 index 0000000000000000000000000000000000000000..9ad0d29c4df0bc09f0d1062947cb3dd70ce0606e GIT binary patch literal 19004 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 literal 0 HcmV?d00001 diff --git a/img/uploads/2019_11_15_15_43_33_.JPG b/img/uploads/2019_11_15_15_43_33_.JPG new file mode 100644 index 0000000000000000000000000000000000000000..d3f945e6eb4da368dc7029aed9e2676b76045513 GIT binary patch literal 11349 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 literal 0 HcmV?d00001 diff --git a/img/uploads/2019_11_15_15_50_51_.JPG b/img/uploads/2019_11_15_15_50_51_.JPG new file mode 100644 index 0000000000000000000000000000000000000000..61aa82cebf32f0b9162dd8a7c21393b1f9a7601a GIT binary patch literal 13879 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"SHOW COLUMNS FROM output LIKE 'num'"); + $row = $stmt->fetch(PDO::FETCH_ASSOC); + print_r($row); +} catch (Exception $e) { + echo "Error: " . $e->getMessage(); +} +?> diff --git a/output/fix_db_autoincrement.php b/output/fix_db_autoincrement.php new file mode 100644 index 00000000..c17ccf12 --- /dev/null +++ b/output/fix_db_autoincrement.php @@ -0,0 +1,54 @@ +setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); + + $DB = 'chandj'; + + // 1. Fix output table + echo "Fixing 'output' table...\n"; + // Check if auto_increment exists or just try to apply it + // Usually 'MODIFY num INT AUTO_INCREMENT' works. Assuming 'num' is int. + // We also need to make sure we don't break existing keys. + // Safest is "MODIFY num INT NOT NULL AUTO_INCREMENT" + $sql = "ALTER TABLE {$DB}.output MODIFY num INT NOT NULL AUTO_INCREMENT"; + $pdo->exec($sql); + echo " - 'output.num' set to AUTO_INCREMENT successfully.\n"; + +} catch (Exception $e) { + echo " - Error fixing 'output': " . $e->getMessage() . "\n"; +} + +try { + // 2. Fix geo_attendance table + // First, find the primary key column name + echo "Fixing 'geo_attendance' table...\n"; + $stmt = $pdo->query("SHOW KEYS FROM {$DB}.geo_attendance WHERE Key_name = 'PRIMARY'"); + $pk = $stmt->fetch(PDO::FETCH_ASSOC); + + if ($pk) { + $pkColumn = $pk['Column_name']; + echo " - Found Primary Key column: $pkColumn\n"; + + $sql = "ALTER TABLE {$DB}.geo_attendance MODIFY $pkColumn INT NOT NULL AUTO_INCREMENT"; + $pdo->exec($sql); + echo " - 'geo_attendance.$pkColumn' set to AUTO_INCREMENT successfully.\n"; + } else { + echo " - Could not find Primary Key for geo_attendance.\n"; + } + +} catch (Exception $e) { + echo " - Error fixing 'geo_attendance': " . $e->getMessage() . "\n"; +} + +echo "Done.\n"; +?> diff --git a/output/insert.php b/output/insert.php index e5ad42b1..dcbfc304 100644 --- a/output/insert.php +++ b/output/insert.php @@ -1,12 +1,12 @@ - beginTransaction(); @@ -178,6 +181,7 @@ try { ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; $stmh = $pdo->prepare($sql); + $stmh->execute([ $outdate, $indate, $orderman, $outworkplace, $outputplace, $receiver, $phone, $comment, $con_num, $root, @@ -291,7 +295,8 @@ try { $pdo->commit(); } catch (Exception $ex) { $pdo->rollBack(); - print "오류: ".$Exception->getMessage(); + // print "오류: ".$Exception->getMessage(); + throw new Exception($ex->getMessage()); } } @@ -317,7 +322,8 @@ try { $pdo->commit(); } catch (PDOException $Exception) { $pdo->rollBack(); - print "오류: ".$Exception->getMessage(); + // print "오류: ".$Exception->getMessage(); + throw new Exception($Exception->getMessage()); } } diff --git a/output/lotnum.txt b/output/lotnum.txt index 961636ae..d3c36ef4 100644 --- a/output/lotnum.txt +++ b/output/lotnum.txt @@ -1 +1 @@ -250717-02 \ No newline at end of file +251214-03 \ No newline at end of file diff --git a/session.php b/session.php index db8fc068..96935153 100644 --- a/session.php +++ b/session.php @@ -31,6 +31,9 @@ $first_approval_id = $_SESSION["first_approval_id"] ?? ''; $first_approval_name = $_SESSION["first_approval_name"] ?? ''; // APP_URL 기반 동적 URL 설정 -$root_dir = rtrim($_ENV['APP_URL'] ?? 'https://5130.co.kr', '/'); +// APP_URL 기반 동적 URL 설정 +// $root_dir = rtrim($_ENV['APP_URL'] ?? 'https://5130.co.kr', '/'); +$protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on') ? "https://" : "http://"; +$root_dir = $protocol . $_SERVER['HTTP_HOST']; $WebSite = $root_dir . '/'; ?> \ No newline at end of file

번호휴일시작휴일시작 + + 휴일종료 기간체크 내용