From c255909cfccff1cc0322bec05ad615a917b8f6a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=B5=9C=EC=A4=80=ED=9D=A0?= Date: Mon, 21 Apr 2025 18:16:03 +0900 Subject: [PATCH] dbms_primeidc_init...1 --- extdbms/lib/Configs/App.php | 105 +++++++- extdbms/lib/Configs/Constant.php | 9 - extdbms/lib/Configs/Route.php | 20 +- .../{DBMS => }/Client/ClientController.php | 4 +- .../{DBMS => }/Client/CouponController.php | 2 +- .../{DBMS => }/Client/DashboardController.php | 2 +- .../{DBMS => }/Client/MemoController.php | 2 +- .../{DBMS => }/Client/PaymentController.php | 2 +- .../{DBMS => }/Client/PointController.php | 27 +- .../Controllers/{DBMS => }/DBMSController.php | 2 +- .../{DBMS => }/DashboardController.php | 4 +- .../{DBMS => }/DefenceController.php | 2 +- .../{DBMS => }/GearlistController.php | 2 +- .../{DBMS => }/NavigatorController.php | 2 +- .../{DBMS => }/ServerController.php | 2 +- .../{DBMS => }/ServiceController.php | 2 +- extdbms/lib/Core/App.php | 1 - extdbms/lib/Core/Controller.php | 8 +- extdbms/lib/{ => Core}/Database/DB.php | 4 +- .../lib/{ => Core}/Database/QueryBuilder.php | 2 +- extdbms/lib/Core/Helper.php | 37 --- extdbms/lib/{ => Core}/Http/BearerToken.php | 2 +- extdbms/lib/{ => Core}/Http/Cookie.php | 6 +- extdbms/lib/{ => Core}/Http/Http.php | 2 +- extdbms/lib/{ => Core}/Http/Redirect.php | 2 +- extdbms/lib/{ => Core}/Http/Request.php | 2 +- extdbms/lib/{ => Core}/Http/Response.php | 2 +- extdbms/lib/{ => Core}/Http/Session.php | 10 +- extdbms/lib/{ => Core}/Http/Url.php | 41 ++- extdbms/lib/{ => Core}/Http/Validator.php | 2 +- extdbms/lib/Core/Logger.php | 49 ++++ .../{ => Core}/Middlewares/AuthMiddleware.php | 6 +- .../{ => Middlewares}/MiddlewareInterface.php | 2 +- extdbms/lib/Core/Model.php | 4 +- extdbms/lib/Core/Service.php | 9 - extdbms/lib/Core/Utils/Pagination.php | 117 +++++++++ .../{DBMS => }/Client/ClientHelper.php | 2 +- .../Helpers/{DBMS => }/Client/PointHelper.php | 2 +- .../lib/Helpers/{DBMS => }/ServiceHelper.php | 2 +- extdbms/lib/Services/ClientService.php | 24 ++ extdbms/lib/Services/PointService.php | 5 - extdbms/lib/Utils/Pagination.php | 112 +------- extdbms/lib/Views/dbms/client/point/index.php | 8 + extdbms/lib/Views/dbms/dashboard/topboard.php | 4 +- extdbms/old/NonPaymentList.php | 209 --------------- extdbms/old/README.md | 3 - extdbms/old/config.php | 3 - extdbms/old/corp_domain.php | 113 -------- extdbms/old/coupon.php | 20 -- extdbms/old/customer_memo.php | 32 --- extdbms/old/customer_memo_up.php | 22 -- extdbms/old/deepfinder_list.php | 7 - extdbms/old/default_alert.php | 20 -- extdbms/old/defense_index.php | 193 -------------- extdbms/old/defense_modify.php | 120 --------- extdbms/old/defense_new.php | 120 --------- extdbms/old/depositbillpaper.php | 11 - extdbms/old/domain_buy_list.php | 133 ---------- extdbms/old/domain_coupon.php | 120 --------- extdbms/old/domain_coupon.php.bak | 125 --------- extdbms/old/domain_coupon_buy.php | 126 --------- extdbms/old/domain_coupon_use.php | 122 --------- extdbms/old/dotdefender_list.php | 7 - extdbms/old/footer.php | 55 ---- extdbms/old/function.php | 225 ---------------- extdbms/old/gear_ready.php | 118 --------- extdbms/old/gear_ready_up.php | 24 -- extdbms/old/header.php | 51 ---- extdbms/old/ipsearch.php | 146 ----------- extdbms/old/jarvis_email.mp3 | Bin 21843 -> 0 bytes extdbms/old/lib.php | 81 ------ extdbms/old/member_memo.php | 207 --------------- extdbms/old/member_memo_sent.php | 190 -------------- extdbms/old/member_memo_up.php | 29 --- extdbms/old/mk3.php | 245 ------------------ extdbms/old/mkwork.php | 109 -------- extdbms/old/navigation_alert.php | 130 ---------- extdbms/old/new_server_list.php | 94 ------- extdbms/old/officenet.php | 25 -- extdbms/old/payment.php | 174 ------------- extdbms/old/server_use.php | 236 ----------------- extdbms/old/server_use_g6.php | 192 -------------- extdbms/old/service_list_coupon.php | 31 --- extdbms/old/service_list_cs_count.php | 31 --- extdbms/old/total_counting.php | 20 -- extdbms/old/total_counting_customer.php | 146 ----------- extdbms/old/working_history.php | 42 --- extdbms/old/worksheetMK.php | 37 --- .../sessions/sess_2kp09d4offvrgis5tjm1eb85dr | 0 .../sessions/sess_5usjjv06mpg0un4rmsbu3gjr1q | 0 .../sessions/sess_f1ik46rf35v7qtufk5it7qsdj4 | 0 .../sessions/sess_fifjsmdv2clkemvsltb6gr4j3f | 0 .../sessions/sess_kg2d6ceddvmr8ab87ok5n3dgvp | 0 .../sessions/sess_luutgn955dt16f28ecb8a1t8qj | 0 .../sessions/sess_mkbs4vpeu01s5vaslrb1d802lh | 0 .../sessions/sess_v0cfugmiu9m8c6tn4o15v0bs37 | 0 96 files changed, 423 insertions(+), 4377 deletions(-) rename extdbms/lib/Controllers/{DBMS => }/Client/ClientController.php (97%) rename extdbms/lib/Controllers/{DBMS => }/Client/CouponController.php (99%) rename extdbms/lib/Controllers/{DBMS => }/Client/DashboardController.php (99%) rename extdbms/lib/Controllers/{DBMS => }/Client/MemoController.php (96%) rename extdbms/lib/Controllers/{DBMS => }/Client/PaymentController.php (98%) rename extdbms/lib/Controllers/{DBMS => }/Client/PointController.php (80%) rename extdbms/lib/Controllers/{DBMS => }/DBMSController.php (94%) rename extdbms/lib/Controllers/{DBMS => }/DashboardController.php (99%) rename extdbms/lib/Controllers/{DBMS => }/DefenceController.php (98%) rename extdbms/lib/Controllers/{DBMS => }/GearlistController.php (98%) rename extdbms/lib/Controllers/{DBMS => }/NavigatorController.php (98%) rename extdbms/lib/Controllers/{DBMS => }/ServerController.php (98%) rename extdbms/lib/Controllers/{DBMS => }/ServiceController.php (98%) rename extdbms/lib/{ => Core}/Database/DB.php (88%) rename extdbms/lib/{ => Core}/Database/QueryBuilder.php (99%) rename extdbms/lib/{ => Core}/Http/BearerToken.php (92%) rename extdbms/lib/{ => Core}/Http/Cookie.php (57%) rename extdbms/lib/{ => Core}/Http/Http.php (91%) rename extdbms/lib/{ => Core}/Http/Redirect.php (97%) rename extdbms/lib/{ => Core}/Http/Request.php (98%) rename extdbms/lib/{ => Core}/Http/Response.php (96%) rename extdbms/lib/{ => Core}/Http/Session.php (84%) rename extdbms/lib/{ => Core}/Http/Url.php (55%) rename extdbms/lib/{ => Core}/Http/Validator.php (99%) create mode 100644 extdbms/lib/Core/Logger.php rename extdbms/lib/{ => Core}/Middlewares/AuthMiddleware.php (78%) rename extdbms/lib/Core/{ => Middlewares}/MiddlewareInterface.php (75%) create mode 100644 extdbms/lib/Core/Utils/Pagination.php rename extdbms/lib/Helpers/{DBMS => }/Client/ClientHelper.php (85%) rename extdbms/lib/Helpers/{DBMS => }/Client/PointHelper.php (78%) rename extdbms/lib/Helpers/{DBMS => }/ServiceHelper.php (87%) delete mode 100644 extdbms/old/NonPaymentList.php delete mode 100644 extdbms/old/README.md delete mode 100644 extdbms/old/config.php delete mode 100644 extdbms/old/corp_domain.php delete mode 100644 extdbms/old/coupon.php delete mode 100644 extdbms/old/customer_memo.php delete mode 100644 extdbms/old/customer_memo_up.php delete mode 100644 extdbms/old/deepfinder_list.php delete mode 100644 extdbms/old/default_alert.php delete mode 100644 extdbms/old/defense_index.php delete mode 100644 extdbms/old/defense_modify.php delete mode 100644 extdbms/old/defense_new.php delete mode 100644 extdbms/old/depositbillpaper.php delete mode 100644 extdbms/old/domain_buy_list.php delete mode 100644 extdbms/old/domain_coupon.php delete mode 100644 extdbms/old/domain_coupon.php.bak delete mode 100644 extdbms/old/domain_coupon_buy.php delete mode 100644 extdbms/old/domain_coupon_use.php delete mode 100644 extdbms/old/dotdefender_list.php delete mode 100644 extdbms/old/footer.php delete mode 100644 extdbms/old/function.php delete mode 100644 extdbms/old/gear_ready.php delete mode 100644 extdbms/old/gear_ready_up.php delete mode 100644 extdbms/old/header.php delete mode 100644 extdbms/old/ipsearch.php delete mode 100644 extdbms/old/jarvis_email.mp3 delete mode 100644 extdbms/old/lib.php delete mode 100644 extdbms/old/member_memo.php delete mode 100644 extdbms/old/member_memo_sent.php delete mode 100644 extdbms/old/member_memo_up.php delete mode 100644 extdbms/old/mk3.php delete mode 100644 extdbms/old/mkwork.php delete mode 100644 extdbms/old/navigation_alert.php delete mode 100644 extdbms/old/new_server_list.php delete mode 100644 extdbms/old/officenet.php delete mode 100644 extdbms/old/payment.php delete mode 100644 extdbms/old/server_use.php delete mode 100644 extdbms/old/server_use_g6.php delete mode 100644 extdbms/old/service_list_coupon.php delete mode 100644 extdbms/old/service_list_cs_count.php delete mode 100644 extdbms/old/total_counting.php delete mode 100644 extdbms/old/total_counting_customer.php delete mode 100644 extdbms/old/working_history.php delete mode 100644 extdbms/old/worksheetMK.php create mode 100644 extdbms/writeable/sessions/sess_2kp09d4offvrgis5tjm1eb85dr create mode 100644 extdbms/writeable/sessions/sess_5usjjv06mpg0un4rmsbu3gjr1q create mode 100644 extdbms/writeable/sessions/sess_f1ik46rf35v7qtufk5it7qsdj4 create mode 100644 extdbms/writeable/sessions/sess_fifjsmdv2clkemvsltb6gr4j3f create mode 100644 extdbms/writeable/sessions/sess_kg2d6ceddvmr8ab87ok5n3dgvp create mode 100644 extdbms/writeable/sessions/sess_luutgn955dt16f28ecb8a1t8qj create mode 100644 extdbms/writeable/sessions/sess_mkbs4vpeu01s5vaslrb1d802lh create mode 100644 extdbms/writeable/sessions/sess_v0cfugmiu9m8c6tn4o15v0bs37 diff --git a/extdbms/lib/Configs/App.php b/extdbms/lib/Configs/App.php index b4a32f2..6e72e46 100644 --- a/extdbms/lib/Configs/App.php +++ b/extdbms/lib/Configs/App.php @@ -4,7 +4,6 @@ namespace lib\Configs; use \lib\Core\App as Core; use Dotenv\Dotenv; -use lib\Database\DB; class App extends Core { @@ -13,6 +12,110 @@ class App extends Core // .env 파일 로드 $dotenv = Dotenv::createImmutable(ROOT_PATH); $dotenv->load(); + + // 환경 변수 설정 + //Application 관련 + define('APP_ENV', $_ENV['APP_ENV'] ?? 'production'); + define('APP_URL', $_ENV['APP_URL'] ?? 'http://localhost'); + define('APP_NAME', $_ENV['APP_NAME'] ?? 'MyApp'); + define('APP_VERSION', $_ENV['APP_VERSION'] ?? '1.0.0'); + define('APP_TIMEZONE', $_ENV['APP_TIMEZONE'] ?? 'Asia/Seoul'); + define('APP_LOCALE', $_ENV['APP_LOCALE'] ?? 'en'); + define('APP_CHARSET', $_ENV['APP_CHARSET'] ?? 'UTF-8'); + + //디버그관련련 + //APP_DEBUG는 true로 설정하면 디버그 모드로 작동합니다. + define('APP_DEBUG', $_ENV['APP_DEBUG'] ?? false); + define('APP_DEBUG_LEVEL', $_ENV['APP_DEBUG_LEVEL'] ?? 'error'); + + //Session 관련 + define('APP_SESSION_DRIVER', $_ENV['APP_SESSION_DRIVER'] ?? 'file'); + define('APP_SESSION_NAME', $_ENV['APP_SESSION_NAME'] ?? 'PHPSESSID'); + define('APP_SESSION_LIFETIME', $_ENV['APP_SESSION_LIFETIME'] ?? 120); + define('APP_SESSION_PATH', $_ENV['APP_SESSION_PATH'] ?? ROOT_PATH . '/writeable/sessions'); + define('APP_SESSION_PERMISSION', $_ENV['APP_SESSION_PERMISSION'] ?? 0775); + + //Cookie 관련 + define('APP_SESSION_COOKIE_PATH', $_ENV['APP_SESSION_COOKIE_PATH'] ?? '/'); + define('APP_SESSION_COOKIE_EXPIRE', $_ENV['APP_SESSION_COOKIE_EXPIRE'] ?? 3600); + define('APP_SESSION_COOKIE_DOMAIN', $_ENV['APP_SESSION_COOKIE_DOMAIN'] ?? null); + define('APP_SESSION_COOKIE_SECURE', $_ENV['APP_SESSION_COOKIE_SECURE'] ?? false); + define('APP_SESSION_COOKIE_HTTPONLY', $_ENV['APP_SESSION_COOKIE_HTTPONLY'] ?? true); + define('APP_SESSION_USE_ONLY_COOKIES', $_ENV['APP_SESSION_USE_ONLY_COOKIES'] ?? true); + define('APP_SESSION_USE_STRICT_MODE', $_ENV['APP_SESSION_USE_STRICT_MODE'] ?? true); + define('APP_SESSION_USE_UNIQUE_ID', $_ENV['APP_SESSION_USE_UNIQUE_ID'] ?? false); + define('APP_SESSION_USE_FLASH', $_ENV['APP_SESSION_USE_FLASH'] ?? true); + define('APP_SESSION_USE_INPUT', $_ENV['APP_SESSION_USE_INPUT'] ?? true); + + //CSRF 관련 + define('APP_SESSION_USE_CSRF', $_ENV['APP_SESSION_USE_CSRF'] ?? true); + define('APP_SESSION_USE_CSRF_TOKEN', $_ENV['APP_SESSION_USE_CSRF_TOKEN'] ?? true); + define('APP_SESSION_USE_CSRF_NAME', $_ENV['APP_SESSION_USE_CSRF_NAME'] ?? 'csrf_token'); + define('APP_SESSION_USE_CSRF_EXPIRE', $_ENV['APP_SESSION_USE_CSRF_EXPIRE'] ?? 3600); + define('APP_SESSION_USE_CSRF_EXCLUDE', $_ENV['APP_SESSION_USE_CSRF_EXCLUDE'] ?? []); + define('APP_SESSION_USE_CSRF_EXCLUDE_METHOD', $_ENV['APP_SESSION_USE_CSRF_EXCLUDE_METHOD'] ?? ['GET', 'HEAD', 'OPTIONS']); + define('APP_SESSION_USE_CSRF_EXCLUDE_URI', $_ENV['APP_SESSION_USE_CSRF_EXCLUDE_URI'] ?? []); + + //Log관련 + define('APP_LOG_PATH', $_ENV['APP_LOG_PATH'] ?? ROOT_PATH . '/logs'); + define('APP_LOG_PERMISSION', $_ENV['APP_LOG_PERMISSION'] ?? 0775); + define('APP_LOG_LEVEL', $_ENV['APP_LOG_LEVEL'] ?? 'error'); + define('APP_LOG_FORMAT', $_ENV['APP_LOG_FORMAT'] ?? 'text'); + define('APP_LOG_MAX_SIZE', $_ENV['APP_LOG_MAX_SIZE'] ?? 1048576); // 1MB + define('APP_LOG_MAX_FILES', $_ENV['APP_LOG_MAX_FILES'] ?? 5); + define('APP_LOG_DATE_FORMAT', $_ENV['APP_LOG_DATE_FORMAT'] ?? 'Y-m-d H:i:s'); + define('APP_LOG_CHANNEL', $_ENV['APP_LOG_CHANNEL'] ?? 'default'); + define('APP_LOG_LEVELS', $_ENV['APP_LOG_LEVELS'] ?? [ + 'emergency' => 0, + 'alert' => 1, + 'critical' => 2, + 'error' => 3, + 'warning' => 4, + 'notice' => 5, + 'info' => 6, + 'debug' => 7, + ]); + define('APP_LOG_FORMATS', $_ENV['APP_LOG_FORMATS'] ?? [ + 'text' => "{date} [{level}] {message}", + 'json' => '{"date": "{date}", "level": "{level}", "message": "{message}"}', + ]); + define('APP_LOG_CHANNELS', $_ENV['APP_LOG_CHANNELS'] ?? [ + 'default' => [ + 'driver' => 'single', + 'path' => APP_LOG_PATH . '/app.log', + 'level' => APP_LOG_LEVEL, + 'formatter' => APP_LOG_FORMAT, + 'max_size' => APP_LOG_MAX_SIZE, + 'max_files' => APP_LOG_MAX_FILES, + ], + ]); + + //Database 정보 + define('DATABASE_DRIVER', $_ENV['DATABASE_DRIVER'] ?? $_SERVER['DATABASE_DRIVER'] ?? 'mysql'); + define('DATABASE_HOST', $_ENV['DATABASE_HOST'] ?? $_SERVER['DATABASE_HOST'] ?? 'localhost'); + define('DATABASE_DB', $_ENV['DATABASE_DB'] ?? $_SERVER['DATABASE_DB'] ?? 'test'); + define('DATABASE_CHARSET', $_ENV['DATABASE_CHARSET'] ?? $_SERVER['DATABASE_CHARSET'] ?? 'utf8'); + define('DATABASE_ID', $_ENV['DATABASE_ID'] ?? $_SERVER['DATABASE_ID'] ?? 'test'); + define('DATABASE_PASSWORD', $_ENV['DATABASE_PASSWORD'] ?? $_SERVER['DATABASE_PASSWORD'] ?? 'test'); + define('DATABASE_QUERY_DEBUG', $_ENV['DATABASE_QUERY_DEBUG'] ?? $_SERVER['DATABASE_QUERY_DEBUG'] ?? false); + + //View 관련 + define('VIEW_PATH', $_ENV['VIEW_PATH'] ?? ROOT_PATH . '/views'); + define('VIEW_CACHE_PATH', $_ENV['VIEW_CACHE_PATH'] ?? ROOT_PATH . '/cache/views'); + define('VIEW_CACHE_ENABLED', $_ENV['VIEW_CACHE_ENABLED'] ?? true); + define('VIEW_CACHE_LIFETIME', $_ENV['VIEW_CACHE_LIFETIME'] ?? 3600); + define('VIEW_CACHE_DRIVER', $_ENV['VIEW_CACHE_DRIVER'] ?? 'file'); + define('VIEW_CACHE_PREFIX', $_ENV['VIEW_CACHE_PREFIX'] ?? 'view_cache_'); + define('VIEW_CACHE_SUFFIX', $_ENV['VIEW_CACHE_SUFFIX'] ?? '.php'); + define('VIEW_CACHE_EXTENSION', $_ENV['VIEW_CACHE_EXTENSION'] ?? '.html'); + + if (APP_DEBUG) { + error_reporting(E_ALL); + ini_set('display_errors', '1'); + } else { + error_reporting(0); + ini_set('display_errors', '0'); + } parent::__construct(); } } diff --git a/extdbms/lib/Configs/Constant.php b/extdbms/lib/Configs/Constant.php index f6ccce2..f01a269 100644 --- a/extdbms/lib/Configs/Constant.php +++ b/extdbms/lib/Configs/Constant.php @@ -1,13 +1,4 @@ getClientService()->getModel()->where('Client_Code', $client_code); + $client = $this->getClientService()->getEntity(); + if (!$client) { + throw new \Exception("[$client_code]에 해당하는 고객정보가 존재하지 않습니다."); + } //포인트 형식 $type = $this->request->get('type'); if (!$type) { @@ -112,20 +117,28 @@ class PointController extends ClientController 'note' => $note ]; $this->getServiceService()->beginTransaction(); - // //서비스포인트 갯수 수정 - // $this->getServiceService()->usePointByService($service, $point); // //포인트 사용내역 onetime에 등록 // $this->getOnetimeService()->usePointByService($service, $client, $member, $onetime_case, $point, $note, $onetime_request_date); // //포인트 사용내역 history에 등록 // $this->getHistoryService()->usePointByService($service, $client, $onetime_case, $point, $note, $onetime_request_date);; + //포인트 사용내역 point에 등록 $this->getPointService()->getModel()->insert($formDatas); + if ($type == 'withdrawal') { //사용자 포인트 출금 + $this->getClientService()->withdrawalPoint($this->client, $amount); + } else { //사용자 포인트 입금 + $this->getClientService()->depositPoint($this->client, $amount); + } $this->getServiceService()->commit(); - return $this->redirect->to(DBMS_SITE_URL . "/IdcPointList.cup")->with('success', ['message' => '포인트 작업이 완료되었습니다.']); + $message_key = 'success'; + $message = "포인트 : [$amount]" . DBMS_CLIENT_POINT_TYPE[$type] . "이 완료되었습니다"; } catch (\PDOException $e) { $this->getServiceService()->rollback(); - return $this->redirect->back()->withInput()->with('error', ['message' => '포인트 사용에 실패하였습니다.:' . $e->getMessage()]); + $message_key = 'error'; + $message = "실패:" . $e->getMessage(); } catch (\Exception $e) { - return $this->redirect->back()->withInput()->with('error', ['message' => '포인트 사용에 실패하였습니다.:' . $e->getMessage()]); + $message_key = 'error'; + $message = "실패" . $e->getMessage(); } + return $this->redirect->to(DBMS_SITE_URL . "/IdcPointList.cup?client_code=$client_code")->with($message_key, ['message' => $message]); } } //Class diff --git a/extdbms/lib/Controllers/DBMS/DBMSController.php b/extdbms/lib/Controllers/DBMSController.php similarity index 94% rename from extdbms/lib/Controllers/DBMS/DBMSController.php rename to extdbms/lib/Controllers/DBMSController.php index 8a3337b..bf38f2e 100644 --- a/extdbms/lib/Controllers/DBMS/DBMSController.php +++ b/extdbms/lib/Controllers/DBMSController.php @@ -1,6 +1,6 @@ start(); + $this->init(); } // 세션 시작 - public function start(): void + public function init(): void { if (session_status() === PHP_SESSION_NONE) { + if (!is_dir(APP_SESSION_PATH)) { + mkdir(APP_SESSION_PATH, APP_SESSION_PERMISSION, true); + } + session_save_path(APP_SESSION_PATH); session_start(); } } diff --git a/extdbms/lib/Http/Url.php b/extdbms/lib/Core/Http/Url.php similarity index 55% rename from extdbms/lib/Http/Url.php rename to extdbms/lib/Core/Http/Url.php index 589c5fd..77ff698 100644 --- a/extdbms/lib/Http/Url.php +++ b/extdbms/lib/Core/Http/Url.php @@ -1,6 +1,6 @@ baseUrl; } @@ -63,4 +63,41 @@ class Url extends Http $scriptDir = rtrim(dirname($_SERVER['SCRIPT_NAME'] ?? ''), '/'); return $scheme . '://' . $host . $scriptDir; } + + public static function baseUrl(): string + { + $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https://" : "http://"; + $host = $_SERVER['HTTP_HOST'] ?? 'localhost'; + $script = str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']); + + return rtrim($protocol . $host . $script, '/'); + } + + public static function currentUrl(): string + { + $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https://" : "http://"; + $host = $_SERVER['HTTP_HOST'] ?? 'localhost'; + $uri = $_SERVER['REQUEST_URI'] ?? ''; + + return $protocol . $host . $uri; + } + + public static function previousUrl(): ?string + { + return $_SERVER['HTTP_REFERER'] ?? null; + } + + public static function urlIs(string $pattern): bool + { + $uri = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); + $pattern = str_replace('*', '.*', preg_quote($pattern, '/')); + return preg_match("/^{$pattern}$/", $uri) === 1; + } + + public static function getSegment(int $index): ?string + { + $uri = trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'); + $segments = explode('/', $uri); + return $segments[$index - 1] ?? null; + } } diff --git a/extdbms/lib/Http/Validator.php b/extdbms/lib/Core/Http/Validator.php similarity index 99% rename from extdbms/lib/Http/Validator.php rename to extdbms/lib/Core/Http/Validator.php index 88fc331..b092527 100644 --- a/extdbms/lib/Http/Validator.php +++ b/extdbms/lib/Core/Http/Validator.php @@ -1,6 +1,6 @@ logPath = rtrim($logDir, DIRECTORY_SEPARATOR); + if (!is_dir($this->logPath)) { + mkdir($this->logPath, APP_LOG_PERMISSION, true); + } + } + + public function log(string $message, string $level = 'INFO'): void + { + $filename = date('Y-m-d') . '.log'; + $filepath = "{$this->logPath}/{$filename}"; + $time = date('Y-m-d H:i:s'); + + $formatted = "[{$time}] [{$level}] {$message}\n"; + + file_put_contents($filepath, $formatted, FILE_APPEND); + } + + public function info(string $message): void + { + $this->log($message, 'INFO'); + } + + public function error(string $message): void + { + $this->log($message, 'ERROR'); + } + + public function warning(string $message): void + { + $this->log($message, 'WARNING'); + } + + public function debug(string $message): void + { + if (defined('APP_DEBUG') && APP_DEBUG) { + $this->log($message, 'DEBUG'); + } + } +} diff --git a/extdbms/lib/Middlewares/AuthMiddleware.php b/extdbms/lib/Core/Middlewares/AuthMiddleware.php similarity index 78% rename from extdbms/lib/Middlewares/AuthMiddleware.php rename to extdbms/lib/Core/Middlewares/AuthMiddleware.php index 2ba354f..be80bfb 100644 --- a/extdbms/lib/Middlewares/AuthMiddleware.php +++ b/extdbms/lib/Core/Middlewares/AuthMiddleware.php @@ -1,9 +1,9 @@ _debug = $debug; - } - final public function getDebug() - { - return $this->_debug; - } } //Class diff --git a/extdbms/lib/Core/Utils/Pagination.php b/extdbms/lib/Core/Utils/Pagination.php new file mode 100644 index 0000000..cebf140 --- /dev/null +++ b/extdbms/lib/Core/Utils/Pagination.php @@ -0,0 +1,117 @@ +totalItems = $totalItems; + $this->perPage = $perPage; + $this->currentPage = max(1, $currentPage); + $this->totalPages = (int)ceil($totalItems / $perPage); + $this->start = ($this->currentPage - 1) * $perPage; + $this->end = min($this->start + $perPage, $totalItems); + $this->groupSize = intval(VIEW_LIST_PAGINATION_GROUPSIZE); + } + + public function hasPrevious(): bool + { + return $this->currentPage > 1; + } + + public function hasNext(): bool + { + return $this->currentPage < $this->totalPages; + } + + public function previousPage(): int + { + return max(1, $this->currentPage - 1); + } + + public function nextPage(): int + { + return min($this->totalPages, $this->currentPage + 1); + } + + public function getOffset(): int + { + return $this->start; + } + + public function getLimit(): int + { + return $this->perPage; + } + + public function toArray(): array + { + return [ + 'current_page' => $this->currentPage, + 'per_page' => $this->perPage, + 'total_items' => $this->totalItems, + 'total_pages' => $this->totalPages, + 'has_previous' => $this->hasPrevious(), + 'has_next' => $this->hasNext(), + 'previous_page' => $this->previousPage(), + 'next_page' => $this->nextPage(), + 'offset' => $this->getOffset(), + 'limit' => $this->getLimit(), + ]; + } + + public function render(string $baseUrl = '', array $query = []): string + { + if ($this->totalPages <= 1) { + return ''; + } + + $html = ''; + return $html; + } + private function pageLink(int $page, string $label, string $baseUrl, array $query): string + { + $query['curPage'] = $page; + $url = $baseUrl . '?' . http_build_query($query); + return '
  • ' . $label . '
  • '; + } +} diff --git a/extdbms/lib/Helpers/DBMS/Client/ClientHelper.php b/extdbms/lib/Helpers/Client/ClientHelper.php similarity index 85% rename from extdbms/lib/Helpers/DBMS/Client/ClientHelper.php rename to extdbms/lib/Helpers/Client/ClientHelper.php index ab7591a..348ac82 100644 --- a/extdbms/lib/Helpers/DBMS/Client/ClientHelper.php +++ b/extdbms/lib/Helpers/Client/ClientHelper.php @@ -1,6 +1,6 @@ getModel()->where("Client_Code", $client->getClientCode()); + $this->getModel()->update(["Client_Point=(Client_Point+{$point})" => null]); + return true; + } + //사용자 포인트 출금 + public function withdrawalPoint(Entity $client, int $point): bool + { + if ($point < 0) { + throw new \Exception("포인트금액이 잘못되었습니다. 포인트 : $point"); + } + if ($client->getPoint() < $point) { + throw new \Exception("포인트금액이 잘못되었습니다. 남은 포인트: " . $client->getPoint() . ", 포인트 : $point"); + } + $this->getModel()->where("Client_Code", $client->getClientCode()); + $this->getModel()->update(["Client_Point=(Client_Point-{$point})" => null]); + return true; + } } diff --git a/extdbms/lib/Services/PointService.php b/extdbms/lib/Services/PointService.php index 1651ec3..15650b7 100644 --- a/extdbms/lib/Services/PointService.php +++ b/extdbms/lib/Services/PointService.php @@ -27,9 +27,4 @@ class PointService extends CommonService { return Entity::class; } - - public function insert(array $formDatas): Entity - { - return parent::insert($formDatas); - } //insert } //Class diff --git a/extdbms/lib/Utils/Pagination.php b/extdbms/lib/Utils/Pagination.php index 2b89046..cd504de 100644 --- a/extdbms/lib/Utils/Pagination.php +++ b/extdbms/lib/Utils/Pagination.php @@ -2,116 +2,12 @@ namespace lib\Utils; -class Pagination -{ - public int $currentPage; - public int $perPage; - public int $totalItems; - public int $totalPages; - public int $groupSize = 10; - public int $start; - public int $end; +use lib\Core\Utils\Pagination as Core; +class Pagination extends Core +{ public function __construct(int $totalItems, int $currentPage = 1, int $perPage = 10) { - $this->totalItems = $totalItems; - $this->perPage = $perPage; - $this->currentPage = max(1, $currentPage); - $this->totalPages = (int)ceil($totalItems / $perPage); - $this->start = ($this->currentPage - 1) * $perPage; - $this->end = min($this->start + $perPage, $totalItems); - $this->groupSize = intval(VIEW_LIST_PAGINATION_GROUPSIZE); - } - - public function hasPrevious(): bool - { - return $this->currentPage > 1; - } - - public function hasNext(): bool - { - return $this->currentPage < $this->totalPages; - } - - public function previousPage(): int - { - return max(1, $this->currentPage - 1); - } - - public function nextPage(): int - { - return min($this->totalPages, $this->currentPage + 1); - } - - public function getOffset(): int - { - return $this->start; - } - - public function getLimit(): int - { - return $this->perPage; - } - - public function toArray(): array - { - return [ - 'current_page' => $this->currentPage, - 'per_page' => $this->perPage, - 'total_items' => $this->totalItems, - 'total_pages' => $this->totalPages, - 'has_previous' => $this->hasPrevious(), - 'has_next' => $this->hasNext(), - 'previous_page' => $this->previousPage(), - 'next_page' => $this->nextPage(), - 'offset' => $this->getOffset(), - 'limit' => $this->getLimit(), - ]; - } - - public function render(string $baseUrl = '', array $query = []): string - { - if ($this->totalPages <= 1) { - return ''; - } - - $html = ''; - return $html; - } - private function pageLink(int $page, string $label, string $baseUrl, array $query): string - { - $query['curPage'] = $page; - $url = $baseUrl . '?' . http_build_query($query); - return '
  • ' . $label . '
  • '; + parent::__construct($totalItems, $currentPage, $perPage); } } diff --git a/extdbms/lib/Views/dbms/client/point/index.php b/extdbms/lib/Views/dbms/client/point/index.php index 72861bf..92da629 100644 --- a/extdbms/lib/Views/dbms/client/point/index.php +++ b/extdbms/lib/Views/dbms/client/point/index.php @@ -1,3 +1,11 @@ +
    diff --git a/extdbms/lib/Views/dbms/dashboard/topboard.php b/extdbms/lib/Views/dbms/dashboard/topboard.php index 9715d0e..bb1378b 100644 --- a/extdbms/lib/Views/dbms/dashboard/topboard.php +++ b/extdbms/lib/Views/dbms/dashboard/topboard.php @@ -33,8 +33,8 @@
    -
    newServers ?>
    -
    최근 day ?>일간 신규서버 대수
    +
    newServices ?>
    +
    최근 day ?>일간 신규서비스스 대수
    diff --git a/extdbms/old/NonPaymentList.php b/extdbms/old/NonPaymentList.php deleted file mode 100644 index c036e12..0000000 --- a/extdbms/old/NonPaymentList.php +++ /dev/null @@ -1,209 +0,0 @@ - - - - >전체 - >당일 - >1일전 - >2일전 - >3일전 - - - - - $total) {$list_no = $total;} -$total_page = ($total != '0') ? ceil($total / $list_no) : '0'; - -$page = $_GET[curPage]; - -if (!$page) {$page = 1;} elseif ($page >= $total_page) {$page = $total_page;} else { $page = $page;} - -$next_page = ($page-'1') * $list_no; -$next_no = $next_page + $list_no; - -switch ($_GET[mode]) { - case "today": - //당일 - $query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') AND service_payment_date = CURDATE() ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit " . $next_page . "," . $next_no; - break; - case "1day": - //1일전 - $query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') AND service_payment_date = Date_Add(curdate(),INTERVAL 1 DAY) ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit " . $next_page . "," . $next_no; - break; - case "2day": - //2일전 - $query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') AND service_payment_date = Date_Add(curdate(),INTERVAL 2 DAY) ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit " . $next_page . "," . $next_no; - break; - case "3day": - //3일전 - $query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') AND service_payment_date = Date_Add(curdate(),INTERVAL 3 DAY) ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit " . $next_page . "," . $next_no; - break; - - case "custom": - //커스텀 - //$query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') AND service_payment_date = CURDATE() Group By server_code ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit ".$next_page.",".$next_no; - $query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') AND service_payment_date = Date_Add(curdate(),INTERVAL 1 DAY) Group By server_code ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit " . $next_page . "," . $next_no; - break; - - default: - //전체 - $query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit " . $next_page . "," . $next_no; - break; -} - -$result = @mysql_query($query, $db_connect) or die($db_q_error); -?> - -엑셀 -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    고객명종류장비명IP결제일서비스 가격과금상태미납과금비고
    -
    - 0) { - - $p_start = (($n_page - 1) * $page_scale)+'1'; - $link = ""; - $link .= "<<"; - $link .= ""; - echo $link . " "; -} -$is = ($n_page * $page_scale)+'1'; -for ($i = $is; $i < $is + $page_scale; $i++) { - - if ($i < $total_page+'1') { - if ($i == $page) {$ib = "$i";} else { $ib = $i;} - $link = ""; - $link .= $ib; - $link .= ""; - echo $link . " "; - } -} -if ($n_page < $page3) { - $link = ""; - $link .= ">>"; - $link .= ""; - echo $link; -} -?> -
    - - - - - diff --git a/extdbms/old/README.md b/extdbms/old/README.md deleted file mode 100644 index bd3dc44..0000000 --- a/extdbms/old/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# EXTDBMS - -DBMS용 PHP 소스 \ No newline at end of file diff --git a/extdbms/old/config.php b/extdbms/old/config.php deleted file mode 100644 index 5792480..0000000 --- a/extdbms/old/config.php +++ /dev/null @@ -1,3 +0,0 @@ - - - - - - - -
    - / - -
    - - -
  • - - >수정 -
  • - - - - - - - - diff --git a/extdbms/old/coupon.php b/extdbms/old/coupon.php deleted file mode 100644 index 49e119b..0000000 --- a/extdbms/old/coupon.php +++ /dev/null @@ -1,20 +0,0 @@ -execute($lines, $client_field); -echo "Coupon 설정이 완료되었습니다.\n"; diff --git a/extdbms/old/customer_memo.php b/extdbms/old/customer_memo.php deleted file mode 100644 index 3e233e6..0000000 --- a/extdbms/old/customer_memo.php +++ /dev/null @@ -1,32 +0,0 @@ - - -
    - - - - - - - -
    비    고
    -
    - diff --git a/extdbms/old/customer_memo_up.php b/extdbms/old/customer_memo_up.php deleted file mode 100644 index e895443..0000000 --- a/extdbms/old/customer_memo_up.php +++ /dev/null @@ -1,22 +0,0 @@ - - -:6752/serviceDetail.sev?client_code='" /> - diff --git a/extdbms/old/deepfinder_list.php b/extdbms/old/deepfinder_list.php deleted file mode 100644 index 2780bb5..0000000 --- a/extdbms/old/deepfinder_list.php +++ /dev/null @@ -1,7 +0,0 @@ -execute("딥파인더"); diff --git a/extdbms/old/default_alert.php b/extdbms/old/default_alert.php deleted file mode 100644 index 3b9eab9..0000000 --- a/extdbms/old/default_alert.php +++ /dev/null @@ -1,20 +0,0 @@ -load(); - -require_once "lib/Core/Config.php"; -try { - $control = isset($argv[1]) ? $argv[1] : "lib\\Controllers\\SiteController"; - $control = new $control(); - $function = isset($argv[2]) ? $argv[2] : "dashboard"; - $key_name = "sitekey"; - $sitekey = array_key_exists($key_name, $_GET) ? $_GET[$key_name] : false; - $sitekey = isset($arvg[3]) ? $argv[1] : "dbms.prime-idc.jp"; - return $control->$function($sitekey); -} catch (\Exception $e) { - echo $e->getMessage(); -} diff --git a/extdbms/old/defense_index.php b/extdbms/old/defense_index.php deleted file mode 100644 index 3e93547..0000000 --- a/extdbms/old/defense_index.php +++ /dev/null @@ -1,193 +0,0 @@ - - - - - - -
    - / - -
    - - -
  • - - >수정 -
  • - - - - - - - - - \ No newline at end of file diff --git a/extdbms/old/defense_modify.php b/extdbms/old/defense_modify.php deleted file mode 100644 index 1c4e52c..0000000 --- a/extdbms/old/defense_modify.php +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - * - - &parents=>등록
    - - - - - >수정
    - - - - - - - - - - - - -MODIFY - - - - \ No newline at end of file diff --git a/extdbms/old/defense_new.php b/extdbms/old/defense_new.php deleted file mode 100644 index 98463be..0000000 --- a/extdbms/old/defense_new.php +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - * - - &parents=>등록
    - - - - - >수정
    - - - - - - - - - - - - -NEW - - - - \ No newline at end of file diff --git a/extdbms/old/depositbillpaper.php b/extdbms/old/depositbillpaper.php deleted file mode 100644 index 98489fa..0000000 --- a/extdbms/old/depositbillpaper.php +++ /dev/null @@ -1,11 +0,0 @@ -getBillingPaper($_GET); -} catch (\Exception $e) { - die($e->getMessage()); -} diff --git a/extdbms/old/domain_buy_list.php b/extdbms/old/domain_buy_list.php deleted file mode 100644 index b273ad7..0000000 --- a/extdbms/old/domain_buy_list.php +++ /dev/null @@ -1,133 +0,0 @@ - $total) {$list_no = $total;} -$total_page = ($total != '0') ? ceil($total / $list_no) : '0'; - -$page = $_GET[page]; - -if (!$page) {$page = 1;} elseif ($page >= $total_page) {$page = $total_page;} else { $page = $page;} - -$next_page = ($page-'1') * $list_no; -$next_no = $next_page + $list_no; - -$result = @mysql_query($query, $db_connect) or die($db_q_error); -?> -
    -2015년 전체구매건수 : -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    고객명서비스코드수량결제금액미납금액신청일비 고담당자
    -
    - - diff --git a/extdbms/old/domain_coupon.php b/extdbms/old/domain_coupon.php deleted file mode 100644 index 9a25f8e..0000000 --- a/extdbms/old/domain_coupon.php +++ /dev/null @@ -1,120 +0,0 @@ - - - $total) {$list_no = $total;} -$total_page = ($total != '0') ? ceil($total / $list_no) : '0'; - -$page = $_GET[curPage]; - -if (!$page) {$page = 1;} elseif ($page >= $total_page) {$page = $total_page;} else { $page = $page;} - -$next_page = ($page-'1') * $list_no; -$next_no = $next_page + $list_no; - -$query = "select servicedb.service_code, servicedb.client_code,servicedb.service_line,servicedb.server_code,servicedb.service_ip,servicedb.service_open_date,servicedb.coupon,servicedb.coupon_use,clientdb.client_code,clientdb.client_name From servicedb Natural Join clientdb where servicedb.service_line NOT IN ( 'vpn', 'test','soloLine','substitution' ) and Client_Code not in ('C219','C116','C012','C497','C464','C526') and service_ip not like '27.125.204%' order by clientdb.client_name,service_open_date asc limit " . $next_page . "," . $next_no; - -//$query="select servicedb.service_code, servicedb.client_code,servicedb.service_line,servicedb.server_code,servicedb.service_ip,servicedb.service_open_date,servicedb.coupon,clientdb.client_code,clientdb.client_name From servicedb Natural Join clientdb where servicedb.service_line NOT IN ( 'vpn', 'test','soloLine','substitution' ) and Client_Code not in ('C219','C116','C012') order by service_code asc"; - -$coupon_data = @mysql_query($query, $db_connect) or die($db_q_error); -$total_coupon = mysql_query("select sum(coupon),sum(coupon_use) from servicedb", $db_connect) or die($db_q_error); -$total_coupon = mysql_fetch_assoc($total_coupon); -?> -
    전체 남은 수량 : / 전체 사용 수량 :

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    No발급쿠폰남은수량사용완료고객명서비스코드장비명서버IP서비스개시일회선종류
    5"; } else { echo "3";}?>
    -
    - -
    - 0) { - - $p_start = (($n_page - 1) * $page_scale)+'1'; - $link = ""; - $link .= "<<"; - $link .= ""; - echo $link . " "; -} -$is = ($n_page * $page_scale)+'1'; -for ($i = $is; $i < $is + $page_scale; $i++) { - - if ($i < $total_page+'1') { - if ($i == $page) {$ib = "$i";} else { $ib = $i;} - $link = ""; - $link .= $ib; - $link .= ""; - echo $link . " "; - } -} -if ($n_page < $page3) { - $link = ""; - $link .= ">>"; - $link .= ""; - echo $link; -} - -?> -
    - diff --git a/extdbms/old/domain_coupon.php.bak b/extdbms/old/domain_coupon.php.bak deleted file mode 100644 index 85a2de0..0000000 --- a/extdbms/old/domain_coupon.php.bak +++ /dev/null @@ -1,125 +0,0 @@ - - -$total){$list_no=$total;} -$total_page = ($total != '0' ) ? ceil($total/$list_no) : '0'; - -$page = $_GET[curPage]; - -if(!$page) {$page = 1;} -elseif($page >= $total_page){$page=$total_page;} -else {$page=$page;} - -$next_page=($page-'1')*$list_no; -$next_no=$next_page+$list_no; - -$query="select servicedb.service_code, servicedb.client_code,servicedb.service_line,servicedb.server_code,servicedb.service_ip,servicedb.service_open_date,servicedb.coupon,servicedb.coupon_use,clientdb.client_code,clientdb.client_name From servicedb Natural Join clientdb where servicedb.service_line NOT IN ( 'vpn', 'test','soloLine','substitution' ) and Client_Code not in ('C219','C116','C012','C497','C464','C526') and service_ip not like '27.125.204%' order by clientdb.client_name,service_open_date asc limit ".$next_page.",".$next_no; - -//$query="select servicedb.service_code, servicedb.client_code,servicedb.service_line,servicedb.server_code,servicedb.service_ip,servicedb.service_open_date,servicedb.coupon,clientdb.client_code,clientdb.client_name From servicedb Natural Join clientdb where servicedb.service_line NOT IN ( 'vpn', 'test','soloLine','substitution' ) and Client_Code not in ('C219','C116','C012') order by service_code asc"; - - -$coupon_data = @mysql_query($query , $db_connect) or die($db_q_error); -$total_coupon=mysql_query("select sum(coupon),sum(coupon_use) from servicedb" , $db_connect) or die($db_q_error); -$total_coupon=mysql_fetch_assoc($total_coupon); -?> -
    전체 남은 수량 : / 전체 사용 수량 :

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    No발급쿠폰남은수량사용완료고객명서비스코드장비명서버IP서비스개시일회선종류
    5"; } else { echo "3";}?>
    -
    - -
    - 0){ - - $p_start = (($n_page-1)*$page_scale)+'1'; - $link = ""; - $link .= "<<"; - $link .= ""; - echo $link." "; -} -$is = ($n_page*$page_scale)+'1'; -for($i=$is; $i < $is+$page_scale; $i++){ - - - if($i < $total_page+'1'){ - if($i==$page){$ib="$i";}else{$ib=$i;} - $link = ""; - $link .= $ib; - $link .= ""; - echo $link." "; - } -} -if($n_page < $page3){ - $link = ""; - $link .= ">>"; - $link .= ""; - echo $link; -} - -?> -
    - diff --git a/extdbms/old/domain_coupon_buy.php b/extdbms/old/domain_coupon_buy.php deleted file mode 100644 index 3094457..0000000 --- a/extdbms/old/domain_coupon_buy.php +++ /dev/null @@ -1,126 +0,0 @@ -"; - //echo $onetime_query; - //echo "
    "; - //echo $history_query; - -//echo $_GET[client_code].$_GET[service_code].$_GET[client_name].$_GET[server_code].$_GET[coupon].$_GET[mkworker].$_GET[mkid]; - echo " - -"; -} else { - //$sql = sprintf("select * from servicedb where service_code='%s'", $_GET['service_code']); - //$stmt = @mysql_query($sql, $db_connect) or die($db_q_error); - //$service = mysql_fetch_assoc($stmt); -?> -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    고객코드
    서비스코드
    고객명
    장비번호
    - - 도메인 구매 수량 - - (개별 서버에 할당된 남은 쿠폰 수량 : ) - -
    서비스 금액 - 도메인 쿠폰 사용 - - -
    도메인 신청일 - - 쿠폰 사용일 - -
    도메인 리스트 -
    (공백을 허용하지 않습니다. 예제처럼 붙여쓰기 하세요 / 예제 : test.com/123.com/idcjp.jp) -
    - - -
    -
    -
    - - diff --git a/extdbms/old/domain_coupon_use.php b/extdbms/old/domain_coupon_use.php deleted file mode 100644 index b89de3d..0000000 --- a/extdbms/old/domain_coupon_use.php +++ /dev/null @@ -1,122 +0,0 @@ - - - $total) {$list_no = $total;} -$total_page = ($total != '0') ? ceil($total / $list_no) : '0'; - -$page = $_GET[curPage]; - -if (!$page) {$page = 1;} elseif ($page >= $total_page) {$page = $total_page;} else { $page = $page;} - -$next_page = ($page-'1') * $list_no; -$next_no = $next_page + $list_no; - -$query = "select servicedb.service_code, servicedb.client_code,servicedb.service_line,servicedb.server_code,servicedb.service_ip,servicedb.service_open_date,coupon,coupon_use,clientdb.client_code,clientdb.client_name From servicedb Natural Join clientdb where servicedb.service_line NOT IN ( 'vpn', 'test','soloLine','substitution' ) and servicedb.client_code = '$client_code' and service_ip not like '27.125.204%' order by service_open_date asc limit " . $next_page . "," . $next_no; -$coupon_data = @mysql_query($query, $db_connect) or die($db_q_error); -?> -

    고객명 : / 쿠폰발급대상 : 대 / 전체 남은 수량 :

    -
    - - - - - - - - - - - - - - - - - - -";} else { $coupon_color = "";} - ?> - - - - - - - - - - - - - - - - - -
    No발급쿠폰남은수량사용완료서비스코드장비명서버IP서비스개시일회선종류사용
    &client_name=&client_code=&server_code=&coupon=&mode=&mkworker=&mkid=>사용하기
    -
    - -
    - 0) { - - $p_start = (($n_page - 1) * $page_scale)+'1'; - $link = ""; - $link .= "<<"; - $link .= ""; - echo $link . " "; -} -$is = ($n_page * $page_scale)+'1'; -for ($i = $is; $i < $is + $page_scale; $i++) { - - if ($i < $total_page+'1') { - if ($i == $page) {$ib = "$i";} else { $ib = $i;} - $link = ""; - $link .= $ib; - $link .= ""; - echo $link . " "; - } -} -if ($n_page < $page3) { - $link = ""; - $link .= ">>"; - $link .= ""; - echo $link; -} - -?> -
    - diff --git a/extdbms/old/dotdefender_list.php b/extdbms/old/dotdefender_list.php deleted file mode 100644 index 0068fad..0000000 --- a/extdbms/old/dotdefender_list.php +++ /dev/null @@ -1,7 +0,0 @@ -execute("닷 디펜더"); diff --git a/extdbms/old/footer.php b/extdbms/old/footer.php deleted file mode 100644 index 5edb20d..0000000 --- a/extdbms/old/footer.php +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - diff --git a/extdbms/old/function.php b/extdbms/old/function.php deleted file mode 100644 index 34a4a17..0000000 --- a/extdbms/old/function.php +++ /dev/null @@ -1,225 +0,0 @@ -= $s_len) {$cnt = ($s_len - $i) % 4; - break;} else { - $i += 3; - } - - } else if (($oc & 0xF0) == 0xE0) // 3byte - { - if ($i + 3 >= $s_len) {$cnt = ($s_len - $i) % 3; - break;} else { - $i += 2; - } - - } else if (($oc & 0xE0) == 0xC0) // 2byte - { - if ($i + 2 >= $s_len) {$cnt = ($s_len - $i) % 2; - break;} else { - $i++; - } - - } else // 1byte - { - $cnt = 0; - } - - } - if ($cnt) { - $s = substr($s, 0, $s_len - $cnt); - } - - if (strlen($s) >= strlen($str)) { - $suffix = ""; - } - - return $s . $suffix; -} - -//문자열 처리 trim,htmlspecialchars,addslashes -function mk_trim() -{ - $nums = func_num_args(); - $row = func_get_args(); - for ($i = 0; $i < $nums; $i++) { - $row[$i] = addslashes($row[$i]); - $row[$i] = htmlspecialchars($row[$i]); - $row[$i] = trim($row[$i]); - return $row[$i]; - } -} - -//DB 테이블 생성 확인 -function exist_table($table_name) -{ - $result = mysql_query("show tables like '" . $table_name . "'"); - $row = mysql_fetch_array($result, MYSQL_NUM); - if ($row == false) { - return false; - } - - return true; -} - -// 실행시간 체크 -function getmicrotime() -{ - list($usec, $sec) = explode(' ', microtime()); - return ((float) $usec + (float) $sec); -} - -//패스워드 암호화 -function sha_256($user_passwd) -{ - $return = hash('sha256', $user_passwd); - return $return; -} - -//get response -function get_response($host, $request) -{ - $fp = fsockopen($host, 80); - if (!$fp) {flush(); - } else { - fputs($fp, $request); - flush(); - $response = ""; - while (!feof($fp)) {$response .= fgets($fp, 1024);} - } - fclose($fp); - return $response; -} - -//용량계산 -function size($size) -{ - $unit = array(" Byte", " KB", " MB", " GB"); - if (!$size) { - return "0" . $unit[0]; - } - - if ($size < 1024) // 바이트 - { - return $size . $unit[0]; - } - - if ($size > 1024 && $size < 1024 * 1024) // 킬로바이트 - { - return sprintf("%0.1f " . $unit[1], $size / 1024); - } - - if ($size > 1024 * 1024 && $size < 1024 * 1024 * 1024) // 메가바이트 - { - return sprintf("%0.1f " . $unit[2], $size / (1024 * 1024)); - } - - if ($size > 1024 * 1024 * 1000 && $size < 1024 * 1024 * 1024 * 1024) // 기가바이트 - { - return sprintf("%0.1f " . $unit[3], $size / (1024 * 1024 * 1000)); - } - -} - -//프록시 서버 체크-실제 아이피 가져오기 -function use_ip() -{ - $reverse = 0; - $e = 0; - $hostip = getenv("HTTP_X_FORWARDED_FOR"); - $hostip = $hostip ? $hostip : getenv("REMOTE_ADDR"); - $check = $reverse ? @gethostbyaddr($hostip) : ""; - $hostip = $check ? $check : $hostip; - $gateway_ip = getenv("REMOTE_ADDR"); - return $hostip; -} - -//GMT 시간 표시 -function GMT($time_zone) -{ - switch ($time_zone) { - case 'Kwajalein':$gmt = "-12"; - break; - case 'Pacific/Midway':$gmt = "-11"; - break; - case 'Pacific/Honolulu':$gmt = "-10"; - break; - case 'America/Anchorage':$gmt = "-9"; - break; - case 'America/Los_Angeles':$gmt = "-8"; - break; - case 'America/Denver':$gmt = "-7"; - break; - case 'America/Tegucigalpa':$gmt = "-6"; - break; - case 'America/New_York':$gmt = "-5"; - break; - case 'America/Caracas':$gmt = "-4.30"; - break; - case 'America/Halifax':$gmt = "-4"; - break; - case 'America/St_Johns':$gmt = "-3.30"; - break; - case 'America/Argentina/Buenos_Aires':$gmt = "-3"; - break; - case 'America/Sao_Paulo':$gmt = "-3"; - break; - case 'Atlantic/South_Georgia':$gmt = "-2"; - break; - case 'Atlantic/Azores':$gmt = "-1"; - break; - case 'Europe/Dublin':$gmt = "0"; - break; - case 'Europe/Belgrade':$gmt = "+1"; - break; - case 'Europe/Minsk':$gmt = "+2"; - break; - case 'Asia/Kuwait':$gmt = "+3"; - break; - case 'Asia/Tehran':$gmt = "+3.30"; - break; - case 'Asia/Muscat':$gmt = "+4"; - break; - case 'Asia/Yekaterinburg':$gmt = "+5"; - break; - case 'Asia/Kolkata':$gmt = "+5.30"; - break; - case 'Asia/Katmandu':$gmt = "+5.45"; - break; - case 'Asia/Dhaka':$gmt = "+6"; - break; - case 'Asia/Rangoon':$gmt = "+6.30"; - break; - case 'Asia/Krasnoyarsk':$gmt = "+7"; - break; - case 'Asia/Brunei':$gmt = "+8"; - break; - case 'Asia/Seoul':$gmt = "+9"; - break; - case 'Australia/Darwin':$gmt = "+9.30"; - break; - case 'Australia/Canberra':$gmt = "+10"; - break; - case 'Asia/Magadan':$gmt = "+11"; - break; - case 'Pacific/Fiji':$gmt = "+12"; - break; - case 'Pacific/Tongatapu':$gmt = "+13"; - break; - } - return $gmt; -} diff --git a/extdbms/old/gear_ready.php b/extdbms/old/gear_ready.php deleted file mode 100644 index 994a29c..0000000 --- a/extdbms/old/gear_ready.php +++ /dev/null @@ -1,118 +0,0 @@ - - - -[ 돌아가기 ] - - - - - - - - - - - - - - - -
    CPUHDDOS수량
    -
    -장비번호 : - -OS : -작업자 : - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    가용장비번호CPURAMHDDBRAND포맷보류recieverelease비고DISUSE현재이전READYREADYREADY
    - - - - - -
    - - - diff --git a/extdbms/old/gear_ready_up.php b/extdbms/old/gear_ready_up.php deleted file mode 100644 index 8c0efe0..0000000 --- a/extdbms/old/gear_ready_up.php +++ /dev/null @@ -1,24 +0,0 @@ - - - - diff --git a/extdbms/old/header.php b/extdbms/old/header.php deleted file mode 100644 index 3f6658a..0000000 --- a/extdbms/old/header.php +++ /dev/null @@ -1,51 +0,0 @@ - - - - - -<?=$site_title?> - - - - - - - - -/style.css' type='text/css' /> - - - - - diff --git a/extdbms/old/ipsearch.php b/extdbms/old/ipsearch.php deleted file mode 100644 index b774d99..0000000 --- a/extdbms/old/ipsearch.php +++ /dev/null @@ -1,146 +0,0 @@ - - - -
    -[ 돌아가기 ] - -
    -IP 입력 : - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    CODENAMESERVERIPSWNOTETELMAIL
    - - - diff --git a/extdbms/old/jarvis_email.mp3 b/extdbms/old/jarvis_email.mp3 deleted file mode 100644 index 2b2fa6305549f23ae63b7f59e74c83d085bcbfee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21843 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 diff --git a/extdbms/old/lib.php b/extdbms/old/lib.php deleted file mode 100644 index fae4a87..0000000 --- a/extdbms/old/lib.php +++ /dev/null @@ -1,81 +0,0 @@ - - $total) {$list_no = $total;} -$total_page = ($total != '0') ? ceil($total / $list_no) : '0'; - -$page = $_GET[page]; - -if (!$page) {$page = 1;} elseif ($page >= $total_page) {$page = $total_page;} else { $page = $page;} - -$next_page = ($page-'1') * $list_no; -$next_no = $next_page + $list_no; - -$result = @mysql_query($query, $db_connect) or die($db_q_error); -?> - - -
    - - - - - - - - - - - - - - - - -긴급'; - break; - case '2':$data[comment_case] = '지시'; - break; - case '3':$data[comment_case] = '전달'; - break; - case '4':$data[comment_case] = '기타'; - break; - default:$data[comment_case] = '일반'; - break; - } - $content = nl2br($data[content]); - if ($_GET[page] == 'default') {$content = cut_str($content, 180, " ... more");} else {} - ?> - - - - - - - - - - - -
    구분보낸사람내용보낸날짜보낸시간받는사람확인
    $data[receiver]";}?> -확인완료"; - } else { - - if ($data[receiver] == '전체' or $data[receiver] == '팀장' or $data[receiver] == '영업' or $data[receiver] == '1팀' or $data[receiver] == '2팀' or $data[receiver] == '시스템' or $data[receiver] == '네트워크' or $data[receiver] == '알바') { - $msg = "
    - - - - - - -
    "; - } else { - $msg = "
    "; - } - } - ?> - -
    - - - - diff --git a/extdbms/old/member_memo_sent.php b/extdbms/old/member_memo_sent.php deleted file mode 100644 index 5c151bf..0000000 --- a/extdbms/old/member_memo_sent.php +++ /dev/null @@ -1,190 +0,0 @@ - - $total) {$list_no = $total;} -$total_page = ($total != '0') ? ceil($total / $list_no) : '0'; - -$page = $_GET[page]; - -if (!$page) {$page = 1;} elseif ($page >= $total_page) {$page = $total_page;} else { $page = $page;} - -$next_page = ($page-'1') * $list_no; -$next_no = $next_page + $list_no; - -$result = @mysql_query($query, $db_connect) or die($db_q_error); -?> - - -
    - - - - - - - - - - - - - - - -긴급'; - break; - case '2':$data[comment_case] = '지시'; - break; - case '3':$data[comment_case] = '전달'; - break; - case '4':$data[comment_case] = '기타'; - break; - default:$data[comment_case] = '일반'; - break; - } - ?> - - - - - - - - - - -
    구분내용보낸날짜보낸시간받는사람확인
    $data[receiver]";}?> - - -
    - - - - - - diff --git a/extdbms/old/member_memo_up.php b/extdbms/old/member_memo_up.php deleted file mode 100644 index f5c6d09..0000000 --- a/extdbms/old/member_memo_up.php +++ /dev/null @@ -1,29 +0,0 @@ -"; -} else { - echo ""; -} diff --git a/extdbms/old/mk3.php b/extdbms/old/mk3.php deleted file mode 100644 index 7faf6d1..0000000 --- a/extdbms/old/mk3.php +++ /dev/null @@ -1,245 +0,0 @@ - - -
    - - - - -
    - - - -
    - >전체
    - >당일
    - >1일전
    - >2일전
    - >3일전
    - >커스텀(수정중)
    - - -
    - - $total) {$list_no = $total;} -$total_page = ($total != '0') ? ceil($total / $list_no) : '0'; - -$page = $_GET[curPage]; - -if (!$page) {$page = 1;} elseif ($page >= $total_page) {$page = $total_page;} else { $page = $page;} - -$next_page = ($page-'1') * $list_no; -$next_no = $next_page + $list_no; - -switch ($_GET[mode]) { - case "today": - //당일 - $query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') AND service_payment_date = CURDATE() ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit " . $next_page . "," . $next_no; - break; - case "1day": - //1일전 - $query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') AND service_payment_date = Date_Add(curdate(),INTERVAL 1 DAY) ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit " . $next_page . "," . $next_no; - break; - case "2day": - //2일전 - $query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') AND service_payment_date = Date_Add(curdate(),INTERVAL 2 DAY) ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit " . $next_page . "," . $next_no; - break; - case "3day": - //3일전 - $query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') AND service_payment_date = Date_Add(curdate(),INTERVAL 3 DAY) ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit " . $next_page . "," . $next_no; - break; - - case "custom": - //커스텀 - //$query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') AND service_payment_date = CURDATE() Group By server_code ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit ".$next_page.",".$next_no; - $query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') AND service_payment_date = Date_Add(curdate(),INTERVAL 1 DAY) Group By server_code ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit " . $next_page . "," . $next_no; - break; - - default: - //전체 - $query = "SELECT clientdb.Client_Code,Client_Name,service_line,server_code,service_ip,service_payment_date,service_amount,service_nonpayment,service_note,adddb_case,adddb.client_code,adddb.service_code,adddb_nonpayment,adddb_payment,adddb_accountStatus,addDB_ip,addDB_payment_date FROM clientdb INNER JOIN servicedb ON clientdb.client_code = servicedb.client_code INNER JOIN adddb ON servicedb.service_code = adddb.service_code WHERE servicedb.service_code = adddb.service_code AND adddb.client_code not in ('C116','C219') AND adddb.adddb_accountStatus not in ('complete') ORDER BY service_payment_date,Client_Name,adddb_accountStatus ASC limit " . $next_page . "," . $next_no; - break; -} - -$result = @mysql_query($query, $db_connect) or die($db_q_error); -?> -
    -미납 서버 대수 : -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    고객명종류장비명결제일서비스 가격과금상태미납과금청구서 발행 대상비고
    ()
    -
    - 0) { - - $p_start = (($n_page - 1) * $page_scale)+'1'; - $link = ""; - $link .= "<<"; - $link .= ""; - echo $link . " "; -} -$is = ($n_page * $page_scale)+'1'; -for ($i = $is; $i < $is + $page_scale; $i++) { - - if ($i < $total_page+'1') { - if ($i == $page) {$ib = "$i";} else { $ib = $i;} - $link = ""; - $link .= $ib; - $link .= ""; - echo $link . " "; - } -} -if ($n_page < $page3) { - $link = ""; - $link .= ">>"; - $link .= ""; - echo $link; -} -?> -
    - - - -
    - - - - -
    - - - diff --git a/extdbms/old/mkwork.php b/extdbms/old/mkwork.php deleted file mode 100644 index afac756..0000000 --- a/extdbms/old/mkwork.php +++ /dev/null @@ -1,109 +0,0 @@ - - / / - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    업체명회선장비번호장비사양스위치OS기본IP정상가할인금액서비스가
    - - -
      - -
    • - -
    • - -
    - - - -echo .$mk_q1_data[service_line].$mk_q1_data[server_code].$mk_q1_data[service_sw].$mk_q1_data[service_os].$mk_q1_data[service_ip]; -echo "/"; -echo $mk_default; -echo "/"; -echo $mk_discount; -echo "/"; -echo $mk_service; -echo "
    "; -*/ -?> diff --git a/extdbms/old/navigation_alert.php b/extdbms/old/navigation_alert.php deleted file mode 100644 index 2f38332..0000000 --- a/extdbms/old/navigation_alert.php +++ /dev/null @@ -1,130 +0,0 @@ - - - - -"; -$result = @mysql_query($query, $db_connect) or die($db_q_error); - -?> -