Compare commits

...
764 Commits
Author SHA1 Message Date
thisgun 4743ec91d8 버전 5.5.8 수정 2022-06-13 15:32:25 +09:00
thisgun bc56480db5 PHP5.2 호환성 문제 수정 2022-06-13 15:26:10 +09:00
thisgun 958abc9a91 Merge branch 'kjh_master' of github.com:gnuboard/g5-update into update_220613 2022-06-13 14:49:11 +09:00
thisgun 4b12ea8260 get_random_token_string 함수 코드 재수정 2022-06-13 14:47:50 +09:00
thisgun d4f554e653 clean_xss_tags 함수 수정으로 인해 일부 입력값에서 줄바꿈이 안되는 문제 수정 2022-06-13 14:46:08 +09:00
thisgun 30da5d6b22 PHP 8.1 mysqli_report 설정 수정 2022-06-13 14:37:21 +09:00
thisgun 9dd53a4efa PHP81버전 대응 충돌수정 2022-06-13 14:32:14 +09:00
jw2(kit rio) bdb1ab852d 게시물 파일 업로드시 undefined variable 오류 수정
파일 테이블의 필드를 이름으로 하는 배열을 설정합니다.
2022-06-13 14:28:54 +09:00
kit rio eba9401f89 ie6 지원 삭제 2022-06-13 14:28:50 +09:00
kit rio 509b2c0be7 PHP 8.1 기본스킨, 테마에서 없는 글,댓글 조회시 undefined variable 수정 2022-06-13 14:28:45 +09:00
kit rio 7950307173 PHP 8.1 설치 오류 수정 2022-06-13 14:28:40 +09:00
kit rio fc43e26c14 불필요한 PHP 5.1 이하 코드 삭제
json_encode, json_decode 는 PHP 5.2 부터 PHP 코어에 내장되어있습니다.
https://php-legacy-docs.zend.com/manual/php5/en/json.requirements
https://php-legacy-docs.zend.com/manual/php5/en/book.json
2022-06-13 14:28:35 +09:00
kjh 564723c648 탈퇴된 회원도 세션이 만료되도록 조건 추가 #191 2022-06-10 05:18:04 +00:00
kjh 4724cc4c05 이니시스 host check 정규표현식 패턴 수정 #186 2022-06-10 03:26:52 +00:00
KimTom89 068c8818f8 Merge pull request #2 from gnuboard/php81-jw
Php81 jw
2022-05-31 18:08:37 +09:00
kit rio cedb732c7a Merge remote-tracking branch 'g5-update/php81' into php81-jw 2022-05-31 17:20:53 +09:00
KimTom89 477001608e Merge pull request #1 from gnuboard/php81-jh
Php81 jh
2022-05-31 17:06:06 +09:00
kjh d9471833fe Merge branch 'php81-jw' 2022-05-31 07:38:17 +00:00
kit rio 3936a2d393 DB 설정 상수 주석 추가 2022-05-31 15:15:12 +09:00
kit rio 5465e073a2 PHP 8.1 deprecated openssl_pkey_free 함수 수정
8.1부터는 자동으로 메모리에서 해제가 되게 바뀌어서
8이하에서만 작동되게 수정.
2022-05-31 15:02:53 +09:00
kit rio df295bfe59 PHP 8.1 클래스 var -> public 수정 2022-05-31 14:56:08 +09:00
kjh 1fb9b5051c Checked PSR-1 / PHP 8.1 Undefiend Varialbe, Type error 2022-05-31 05:53:49 +00:00
kit rio 2371eecd13 테마와 중복되는 IE6 지원 삭제 2022-05-31 14:53:24 +09:00
kjh 993e689800 Checked PSR-1 / PHP 8.1 Undefiend Varialbe, type error 2022-05-30 08:30:08 +00:00
kit rio 0d414e3ed2 포인트관리 > 회원정보가 없는경우 오류수정 2022-05-30 11:06:31 +09:00
kjh b1640d7b76 Checked PSR-1: Basic Coding Standard 2022-05-27 09:20:20 +00:00
kjh 9199b7c986 Checked PSR-1: Basic Coding Standard & type error 2022-05-27 06:50:13 +00:00
kjh 44650b31f6 Checked PSR-1: Basic Coding Standard & Undefined Variable 2022-05-27 04:47:53 +00:00
kit rio d12c1c84e4 불필요한 PHP 5.2 미만 삭제 2022-05-27 10:20:36 +09:00
kit rio aaf5454144 PHP 문자열 내 변수 사용 중 Deprecated 사항 수정
PHP 8.2 문자열내 변수 ${var} -> {$var}
https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation
2022-05-26 16:58:07 +09:00
kjh 0031b20597 bo_table 선언 및 예외처리 추가 2022-05-26 06:09:45 +00:00
kit rio b5a8ce065f 삭제된 each 함수 foreach 로 수정 2022-05-26 11:47:27 +09:00
kit rio 30c9a54b4f PHP 8.0 PHP 엑셀 삭제된 split() 함수 대체
lib/Excel/php_writeexcel 는
영카트에서는 PHP 5.2 이하일 때만 쓰고 있으나
유저들이 씁니다.
2022-05-26 11:47:27 +09:00
thisgun c5395a7f44 버전 5.5.7.5 수정 2022-05-25 19:53:43 +09:00
thisgun 238f8c042c 불필요한 코드 수정 및 불필요한 파일 삭제 2022-05-25 19:44:00 +09:00
thisgun e3016b7a77 object cache를 삭제하지 못할수있는 버그수정 #190 2022-05-25 19:36:44 +09:00
thisgun 096f744f61 get_token_encryption_key함수에서 불필요한 코드 삭제 2022-05-25 19:36:40 +09:00
thisgun 62ebce3d9c 이전 보안패치중 random_bytes 함수를 잘못 적용할 것을 다시 수정 2022-05-25 19:36:35 +09:00
kit rio 767c3c5562 PHP 8.0 undefined variable 오류 수정
uri.lib.php 에서 uri.class.php 사용하지않고 있음.
2022-05-25 18:34:52 +09:00
kjh 3aee9326d7 fixed Undefined variable 2022-05-24 08:48:51 +00:00
kjh b591c91c99 투표 > 기타의견 작성 시 비회원만 capcha 표시하도록 수정 2022-05-24 08:47:17 +00:00
kjh 0edbdab1d8 PHP8.1 Syntax/Functionality Changes & Deprecations List Check 2022-05-24 08:44:52 +00:00
kjh 0b90f9d631 htmlpurifier 4.14.0 ver 적용 2022-05-24 08:42:01 +00:00
kit rio d3d7b9aadc PHP 8.0에서 변경된 implode() 매개변수 순서 수정 2022-05-24 17:10:17 +09:00
kit rio 66d9ae44da PHP 8.0에서 삭제된 배열 인덱스 표기 {} -> [] 수정 2022-05-24 17:09:13 +09:00
kit rio a19282b58e PHP 8.1 지원 클래스 맴버변수 var -> public 수정
클래스에서 var 와 public 은 동일한역할이며
PHP 5.2부터 지원됩니다.
2022-05-24 17:03:23 +09:00
thisgun 09ec2ac8cb 버전 5.5.7.4 수정 2022-05-24 16:00:17 +09:00
thisgun da2b6dafb3 세션고정취약점(버그게시판 글번호12095) 수정 2022-05-24 15:29:27 +09:00
thisgun 0a9f580c5b 버전 5.5.7.3 수정 2022-05-23 18:39:18 +09:00
thisgun f4aa0d0cd8 세션 폴더에 접근할수 문제 수정 및 세션 저장경로 수정#175 2022-05-23 18:37:23 +09:00
kit rio a73cdef008 PHP 8.1 지원 HTMLPurifier 패치 2022-05-23 14:13:41 +09:00
kit rio 0dbdef7543 PHP 8.0 지원 HTMLPurifier 4.14 업데이트 2022-05-20 10:11:45 +09:00
kit rio ea2187e1a8 PHP 8.1 부터 deprecate 되는 해시함수 수정
그누보드5는 PHP 5.2.17 부터 지원이라 무관합니다
2022-05-19 17:38:49 +09:00
jw2(kit rio) b3d5345b45 Merge branch 'gnuboard:master' into master 2022-05-18 15:34:43 +09:00
kagla 5a4ddbc455 버전 5.5.7.2 수정 2022-05-03 12:10:26 +09:00
kagla e2e06d4a23 게시판분류에서 '팅' 글자를 인식하지 못하여 패턴을 쌍따옴표로 수정 2022-05-03 12:10:02 +09:00
kagla b97565e387 버전 5.5.7.1 수정 2022-04-28 17:17:06 +09:00
kagla 7e3ad29696 form 입력값에서 space를 포함한 값이 넘어오는 경우가 있어 space 는 제외하고 replace 함 2022-04-28 17:14:59 +09:00
kagla 5981fd11bf Merge branch 'develop' 2022-04-28 16:41:11 +09:00
kagla 0645b8b2f4 버전 5.5.7 수정 2022-04-25 15:11:24 +09:00
kagla 3197f43be6 Merge branch 'develop' 2022-04-25 15:00:40 +09:00
seeoya 4bbaef4162 G5-20 주소 검색 중 화면 확대되지 않도록 수정 2022-04-21 14:43:47 +09:00
수영 d08fc856df Merge branch 'gnuboard:master' into master 2022-04-21 13:48:55 +09:00
kagla 3f840d9140 Merge branch 'php81' of https://github.com/gnuboard/gnuboard5 into php81 2022-04-20 06:23:03 +00:00
kagla ecb10436e5 PHP8.1 Deprecated: addslashes(): Passing null to parameter #1 ($string) of type string is deprecated. addslashes 함수의 문자타입의 첫번째 파라미터에 null을 전달하는 것은 더 이상 사용되지 않습니다. 해결 2022-04-20 06:20:24 +00:00
kagla 97baa9d0db 버전 5.5.6 수정 2022-04-18 16:52:22 +09:00
projectSylas 11718eb4c0 [G5-80] 본인인증 비밀번호 찾기 후 비밀번호 변경 관련 수정 2022-04-18 16:51:53 +09:00
kagla 41e3c23f9e Merge branch '220418' into develop 2022-04-18 16:31:31 +09:00
kagla fdd2d30f4e $desc_name, $desc_phone Undefined variable 문제 해결 2022-04-18 12:04:00 +09:00
kagla 13bc72def7 ip2long으로 변환된 REMOTE_ADDR을 유추할수 없도록 md5(sha1(REMOTE_ADDR))로 처리함 (kjsman님,220418) 2022-04-18 11:47:22 +09:00
kagla 2457055514 $url 파라미터에 HTML Entity Number 형식으로 값이 넘어오는 경우의 XSS 취약점 해결 (woonge님,220415) 2022-04-15 10:16:44 +09:00
kagla 6449af2b57 모바일에서는 모바일 페이지당 라인수로 적용하도록 수정 (coDribble님,220414) 2022-04-14 16:01:25 +09:00
kagla 258f94e597 Reflected XSS 취약점 해결, Fixed Reflected XSS vulnerability (220408,hunter.dev/9o3) 2022-04-08 11:17:24 +09:00
kagla 6660a4adc1 admin_common 기본 훅 추가 (220408,티로그님) 2022-04-08 10:31:50 +09:00
kagla de72f42216 버전 5.5.5 수정 2022-04-07 15:49:13 +09:00
kagla 162ce82da0 Merge branch 'develop' 2022-04-07 15:48:11 +09:00
kagla 9ac9e01a51 [KVE-2022-0184] XSS 및 SQLInjection 취약점 해결을 위해 사용하지 않고 있던 "코드 중복검사" 기능 제거 2022-04-07 15:43:43 +09:00
seeoya eef8f32efe G5-77 shop.override.js 총 금액 표시 통일 작업 2022-04-07 15:32:21 +09:00
seeoya fd7121a215 G5-67 상품 목록 갤러리 스킨(40) 수정 2022-04-07 15:30:02 +09:00
seeoya 3999b86f9f G5-67 상품 목록 갤러리 스킨 복구, 리스트 스킨에서 사진 클릭 되도록 수정 2022-04-07 14:28:50 +09:00
kagla 38e732e71e KVE-2021-1277 Open Redirect 취약점 해결 2022-04-06 14:08:20 +09:00
kagla 66130b3fe1 PHP8.1 Deprecated: addslashes(): Passing null to parameter #1 ($string) of type string is deprecated. addslashes 함수의 문자타입의 첫번째 파라미터에 null을 전달하는 것은 더 이상 사용되지 않습니다. 해결 2022-03-31 08:00:49 +00:00
kagla 767af99ba8 PHP8.1 number_format(): Passing null to parameter #1 ($num) of type float is deprecated. 부동소수점 타입의 파라미터 #1($num)에 null을 전달하는 것은 더 이상 사용되지 않습니다. 해결 2022-03-31 05:41:23 +00:00
수영 7ab46223b5 Merge branch 'gnuboard:master' into master 2022-03-30 15:53:20 +09:00
kagla 7144c4f4be 모바일페이지에서의 직접 접근을 막아 KVE-2021-1888_Reflected XSS 취약점 해결 2022-03-22 12:52:36 +09:00
kagla 15d13e2fbc Merge branch 'develop' of github.com:gnuboard/gnuboard5 into develop 2022-03-22 12:51:28 +09:00
kagla 05035d6f6c 버전 5.5.4 수정 2022-03-21 10:43:23 +09:00
seeoya b4891ab773 G5-57 쇼핑몰 주문서 - 배송지 목록 버튼 padding 제거 2022-03-17 12:16:33 +09:00
kagla 84a065c31b host 가 inicis.com 의 주소가 아니라면 false 반환, XSS 취약점 해결 (03sunf님,220317) 2022-03-17 11:17:22 +09:00
kagla ae6190116f height 중복선언 해결 (냠냠이님,220316) 2022-03-16 17:20:31 +09:00
kagla 8021ebadf9 Proxy 서버나 로드밸런서 등에서는 HTTPS 접속시 HTTP_X_FORWARDED_PROTO 로 체크해야 하는 경우가 있음 2022-03-16 16:39:14 +09:00
kagla d79c3be7ba SQL 구문 오류 해결 2022-03-16 16:07:13 +09:00
kagla af3b1b69d3 Proxy 서버나 로드밸런서 등에서는 사용자의 IP가 REMOTE_ADDR 이 아닌 HTTP_X_FORWARDED_FOR 에 저장된 경우가 있음 2022-03-16 16:04:56 +09:00
kagla bdcf17dfc2 Warning: Trying to access array offset on value of type null 오류 수정 2022-03-15 15:19:59 +09:00
수영 480fb98b32 Merge branch 'gnuboard:master' into master 2022-03-15 09:53:44 +09:00
kagla 99f7cd4d19 base_convert(): Passing null to parameter #1 ($num) of type string is deprecated. 문자열 유형의 매개변수 #1($num)에 null을 전달하는 것은 더 이상 사용되지 않습니다. 해결 2022-03-14 04:38:15 +00:00
EC2 Default User 2e7953daba PHP8.1 에 대응하기 위해 deprecated 되는 오류 등 수정 2022-03-14 00:53:09 +00:00
kagla 30a2481145 Cross-site Scripting (XSS) 해결 (SeungHyunKim님,220311) 2022-03-11 11:08:13 +09:00
kagla cb61fa3045 #167 Security Report : Cross-Site Scripting 오류 해결 (P0cas님,220311) 2022-03-11 11:01:15 +09:00
EC2 Default User 26dfe6379f PHP8.1에서 DB Table 존재유무 검사시 오류가 나는 describe 대신 show tables like 로 수정, PHP message: PHP Fatal error: Uncaught mysqli_sql_exception: Table 2022-03-10 05:31:54 +00:00
kagla 4ad2f60c34 [보안패치] KVE-2021-1987_그누보드(영카트)preauth SQL Injection 취약점 해결, shop/event.php 를 거쳐서 접근하도록 수정 2022-03-07 16:45:23 +09:00
kagla 1a12ee8d2c Merge branch 'v554' into develop 2022-03-07 15:42:42 +09:00
kagla 0253508cd0 Merge pull request #81 from whitedot/ui-fix
UI 수정사항 반영
2022-03-07 14:56:43 +09:00
kagla d602b5e0c6 Merge pull request #150 from loves2tu/google-feed
구글 판매자센터 피드
2022-03-07 14:46:38 +09:00
kagla fff191fc60 Merge pull request #156 from seeoya/inicert
#155 버튼 스타일 변경
2022-03-07 14:41:14 +09:00
kagla b1d22acba8 Merge pull request #158 from 39hn/master
일부 모바일 페이지에서 테마 파일 체크 오류 수정
2022-03-07 14:34:52 +09:00
kagla eba2f45b6c Merge pull request #166 from seeoya/master
다음 쇼핑하우 URL 수정
2022-03-07 14:29:35 +09:00
kagla 1174193b43 버전 5.5.3.1 수정 2022-03-07 09:26:07 +09:00
kagla 07631e70d8 Fatal error: Uncaught Error: Undefined constant "get_session" 아이핀 사용시에 발생하는 치명적인 오류 수정 (미뜨아님,220307) 2022-03-07 09:24:35 +09:00
kagla 203ca4a8a2 버전 5.5.3 2022-03-04 11:15:36 +09:00
kagla 7d7c90bd84 Merge branch 'v5.5.3' 2022-03-04 10:59:05 +09:00
kagla 3e31ce3084 Merge branch 'toss' into v5.5.3 2022-03-04 10:58:27 +09:00
kagla 1123b667af Merge branch 'google_price' into v5.5.3 2022-03-04 10:57:12 +09:00
kagla 694e039b03 1:1문의 등에서 url 오류가 발생하여 사용하지 않는 것으로 추정되는 코드 주석 처리 (작은별님,220304) 2022-03-04 10:47:51 +09:00
kagla 432bf47757 영카트 쇼핑몰 설정 업데이트시 누락되었다고 추정되는 곳에 HOOK 코드 추가 (드렁크수달님,220303 2022-03-03 16:56:46 +09:00
kagla 430586e490 주문내역수정의 결제대행사 링크에 표시되는 LG유플러스를 토스페이먼츠로 수정 (해피정님,220303) 2022-03-03 16:27:42 +09:00
seeoya 95964e3aec G5-40 다음 쇼핑하우 URL 수정 2022-03-02 14:08:48 +09:00
kagla 40cd0362c1 Merge remote-tracking branch 'origin/google_price' into google_price 2022-02-28 16:21:02 +09:00
kagla 53b3308019 코리아크레딧뷰로 KCB 서비스 신청 중단, 기존 사용자님들을 위해 회원사ID 입력 박스만 유지 2022-02-28 16:02:13 +09:00
kagla e0bc3cce81 토스페이먼츠 휴대폰 본인확인 서비스 종료에 따른 설정 수정 2022-02-28 12:25:58 +09:00
kagla 3d57480fef 설치시 누락되어 있던 필수 필드 추가 2022-02-28 11:40:27 +09:00
kagla ff2421df5b 메뉴 삭제시 메뉴설정의 확인 버튼을 눌러 저장해야 한다는 메세지 추가 2022-02-23 16:50:00 +09:00
kagla 3247ae2388 mysqli_connect 오류시 "MySQL Host, User, Password, DB 정보에 오류가 있습니다." 메시지 출력 2022-02-23 16:48:41 +09:00
kagla 36baa2a6ab PHP8에서 Undefined array key "code" 오류 해결 2022-02-23 16:47:33 +09:00
kagla c1259af317 버전 5.5.2 수정 (이니시스 통합인증[간편인증] 추가) 2022-02-22 12:07:39 +09:00
kagla e9c4eda1d7 통합인증과 간편인증 용어의 혼란을 방지하기 위하여 통합인증(간편인증)으로
문구 변경
2022-02-22 12:03:20 +09:00
kagla ce8110a2c1 PHP8 에서 설치시 Undefined variable $tmp_bo_table 오류 해결 (주민님,220221) 2022-02-21 17:35:47 +09:00
kagla e70e4b6cd2 PHP8 회원아이디($mb_id) 정의되지 않은 변수 오류 해결 2022-02-17 17:09:09 +09:00
kagla 1e7a71cdbc PHP8에서 정의되지 않은 오류 해결 (무와보님,220216) 2022-02-16 15:35:42 +09:00
kagla cf08961f63 (KVE-2021-1250) SQL 취약점 및 PHP8 정의되지 않은 변수 오류 해결 2022-02-16 15:13:53 +09:00
kagla 725c88c449 통합인증에서 혼란을 방지하기 위하여 간편인증에 대한 안내문구 추가 2022-02-15 18:17:20 +09:00
jeonghs2015 ecd2b1c72a 버전 5.5.1 수정 (이니시스 간편인증 추가) 2022-02-15 16:54:47 +09:00
39hn 967b7cca18 일부 모바일 페이지에서 테마 파일 체크 오류 수정 2022-01-28 09:50:00 +09:00
seeoya ff74503bac #155 버튼 스타일 변경 2022-01-24 14:16:30 +09:00
kagla 524deac54a 버전 5.5.1-beta 수정 2022-01-19 15:47:15 +09:00
kagla 1440e6a790 Merge branch 'inicert' of github.com:gnuboard/gnuboard5 into inicert 2022-01-19 15:39:43 +09:00
형진 7a6b0a3576 Merge pull request #151 from projectSylas/inicert
간편인증 : sa -> simple로 변경
2022-01-19 15:20:09 +09:00
projectSylas 1870a7d131 간편인증 : sa -> simple로 변경 2022-01-19 06:19:04 +00:00
loves2tu b8223d4409 구글 판매자센터 피드
- 상품 adult 관련 추가 수정
2022-01-19 06:16:31 +00:00
kagla 352f77d1d7 Merge pull request #135 from loves2tu/google-feed
구글 판매자센터 피드 xml 생성코드입니다.
2022-01-19 14:10:54 +09:00
형진 6182fce3a0 Merge pull request #149 from projectSylas/inicert
통합인증 : hot-fix
2022-01-17 16:48:22 +09:00
projectSylas 4cc9e6b001 통합인증 : 비밀번호 찾기 alert 문구 수정 2022-01-17 06:52:03 +00:00
projectSylas c58122c573 Merge branch 'inicert' of https://github.com/gnuboard/gnuboard5 into inicert 2022-01-17 06:44:09 +00:00
projectSylas 8fd390c46c 통합인증 : 관련 이슈 수정
- 회원 직접 탈퇴 시 dupinfo 제거
- 본인인증 갱신 시 이전페이지로 이동하게 수정
- 본인인증 내역 기록 조건 수정
2022-01-17 06:43:55 +00:00
kagla ad48b6ba00 버전 5.4.22 수정 2022-01-17 14:53:39 +09:00
민섭 b1930b9ede Merge pull request #148 from seeoya/inicert
inicert 프론트 변경사항
2022-01-17 11:59:08 +09:00
seeoya 75174615c7 관리자 : 본인확인설정 - 회원정보찾기 항목 안내문구 추가, confirm 제거 2022-01-17 11:52:53 +09:00
민섭 f29d32a86c Merge pull request #147 from seeoya/inicert
Inicert 프론트 변경사항
2022-01-17 11:34:18 +09:00
seeoya 1044bb9d37 모바일 회원가입 - placeholder 문구 변경 2022-01-17 11:29:13 +09:00
seeoya 92529d9c1e 회원정보찾기/추가본인인증 페이지 버튼 스타일 변경 2022-01-17 11:27:54 +09:00
민섭 fa02b84889 Merge pull request #146 from seeoya/inicert
통합인증 : 추가 개인정보처리방침 안내에 필수 표시 추가, 체크박스 색상 변경
2022-01-13 17:57:44 +09:00
seeoya fefe11f321 통합인증 : 추가 개인정보처리방침 안내에 필수 표시 추가, 체크박스 색상 변경 2022-01-13 17:53:03 +09:00
민섭 cf156f5d9e Merge pull request #144 from seeoya/inicert
Inicert 프론트 변경사항
2022-01-11 18:04:44 +09:00
수영 4f00321bcf Merge branch 'inicert' into inicert 2022-01-11 18:04:36 +09:00
seeoya 0898268692 새창 기본 스타일 - 버튼 가운데정렬 추가 2022-01-11 16:07:52 +09:00
seeoya 830cffefb0 통합인증 > 간편인증 문구 변경 2022-01-11 15:14:09 +09:00
seeoya 78f95c3182 ID/PW 찾기 박스 배경색 추가, 간격 추가 2022-01-11 15:03:01 +09:00
seeoya 7a8280af93 회원가입/정보수정 필수 항목 병기, 본인확인 시 자동입력 문구 추가, 체크박스 색상 변경 2022-01-11 14:50:26 +09:00
seeoya 7fe8d391d9 관리자 admin.css 파일의 오타 제거 (FreeMax님, 220106) 2022-01-10 14:30:46 +09:00
seeoya 21f4cf82a7 #133 쇼핑몰 상품문의, 사용후기 이동 시 해당 탭 활성화 (작은별님, 211229) 2022-01-10 14:29:58 +09:00
seeoya 7783027b58 #139 관리자 input에 좌우 여백 추가 2022-01-10 14:23:43 +09:00
seeoya 6e72dc7af4 사용후기 전체보기에서 관리자 답변이 보이지 않는 오류 수정 (작은별님, 220108) 2022-01-10 14:21:49 +09:00
seeoya 2f017e81a4 통합인증 : 버튼 클래스 추가 2022-01-10 13:37:27 +09:00
kagla 80a1c9ac48 버전 5.4.21 수정 2022-01-10 12:28:12 +09:00
kagla 6667adbef9 Merge branch 'thumbnail_file_delete' 2022-01-10 12:26:57 +09:00
kagla c0b790e7f9 Merge branch 'board_headtail' 2022-01-10 11:56:09 +09:00
형진 71a908ebac Merge pull request #141 from projectSylas/inicert
통합인증 : 브라우저로 접근한 모바일에서도 정상적으로 작동하게끔 스크립트 수정
2022-01-07 14:06:06 +09:00
projectSylas ce7e5b2c3d 통합인증 : 브라우저로 접근한 모바일에서도 정상적으로 작동하게끔 스크립트 수정 2022-01-07 04:49:26 +00:00
kagla 27216e2135 KG이니시스 통합인증 UI 변경 및 PHP8 에서 나오는 오류 수정 2022-01-07 12:15:28 +09:00
형진 b2c930c547 Merge pull request #138 from projectSylas/inicert
본인인증갱신 : 갱신 쿼리 오류 수정
2022-01-06 10:57:52 +09:00
projectSylas 2f6096f6a8 본인인증갱신 : 갱신 쿼리 오류 수정 2022-01-06 01:56:46 +00:00
projectSylas f56b577c25 게시판관리에서 상단, 하단 파일 경로를 입력하지 않았다면 기본 상단, 하단
파일을 include 하지 않도록 수정 (작은별님,220105)
2022-01-05 16:29:56 +09:00
형진 54103ddfe4 Merge pull request #137 from projectSylas/inicert
통합인증 이슈 수정
2022-01-05 11:12:53 +09:00
projectSylas c64fbaeb8e Merge branch 'master' of https://github.com/gnuboard/gnuboard5 into inicert 2022-01-05 02:07:17 +00:00
projectSylas 8bdf80e38c 본인인증 : 본인이아닌 타인이 인증할때 명의가 변경되지 못하게 수정 2022-01-05 01:50:57 +00:00
loves2tu d930791504 구글 판매자센터 피드
- 구글 쇼핑 파일이름, 파일 URL 관련 수정
2022-01-04 07:41:39 +00:00
loves2tu 57fc5353f1 구글 판매자센터 피드
- 테스트용 피드 삭제
2022-01-04 06:12:21 +00:00
projectSylas 9aa5d237a7 회원관리 : 회원 삭제시 본인인증 관련 정보 제거 2022-01-04 05:38:25 +00:00
projectSylas 033924f011 BBS : 게시판에서 본인확인 미사용시 비회원으로 접근하면 접근 불가능하던 이슈 수정 2022-01-04 05:37:31 +00:00
projectSylas ae29c976e6 통합인증 : 이름/핸드폰 인풋 밸류 조작시 해쉬값 체크 로직 추가 2022-01-04 05:36:16 +00:00
seeoya 2fc24b0746 구글 판매자센터 피드 항목 추가 2022-01-03 03:16:32 +00:00
loves2tu ebdd3b4390 구글 판매자센터 피드
- availability, adult 네임스페이스(g) 추가
2021-12-31 06:44:44 +00:00
loves2tu 4227039811 구글 판매자센터 피드
- 모든 옵션재고 중 1이상의 재고가 존재하는 경우 : in_stock
2021-12-31 06:32:14 +00:00
loves2tu 754b25191f Revert "구글 판매자센터 피드"
This reverts commit 8fbbae488b.
2021-12-31 06:18:08 +00:00
loves2tu 8fbbae488b 구글 판매자센터 피드
- 상품의 재고 & 상품옵션의 재고에 따른 재고값 수정
2021-12-31 06:03:15 +00:00
projectSylas 69b322144a 공지글 이동시 bo_notice 에서 글번호가 사라지지 않는 오류 수정 (ifelse님,211231) 2021-12-31 11:40:06 +09:00
loves2tu d97f27f2fa 구글 판매자센터 피드
- 상품 재고에 따른 out_of_stock 변경
2021-12-30 08:37:12 +00:00
loves2tu bddbcd5cdd 구글 판매자센터 피드
- query 수정 (table 조회 오류)
2021-12-30 05:42:30 +00:00
loves2tu 4c297a1e53 구글 판매자센터 피드
- 반복문 변수 오류 수정
2021-12-30 05:04:36 +00:00
loves2tu c82c33fc59 구글 판매자센터 피드
- 이미지 img1~10 존재여부 확인 후  image_link 생성
2021-12-29 06:29:16 +00:00
projectSylas 52f7eef288 공지글이 없을때 나오는 오류 Trying to access array offset on value of type null 수정 2021-12-29 11:37:29 +09:00
kagla 7d22399eac 버전 5.4.20 수정 2021-12-29 11:37:03 +09:00
loves2tu f25354b1b2 구글 판매자센터 피드
- 예외처리 추가 (it_id, it_name)
2021-12-28 05:46:48 +00:00
loves2tu daffdcbfce 구글 판매자센터 피드
- 다중카테도리 관련 성인인증 처리 수정
2021-12-28 05:16:19 +00:00
loves2tu 322e5cf83a 구글 판매자센터 피드
- 성인인증관련 category 조회 query 추가
2021-12-28 03:08:28 +00:00
loves2tu 7a2c29f192 구글 판매자센터 피드
- query 수정
 - 예외처리 추가
2021-12-27 05:56:08 +00:00
projectSylas 9af6991edd 그누보드만 사용하는 경우 썸네일 일괄삭제시 나오는 오류 수정 (МишаЧжан님,121227) 2021-12-27 09:50:55 +09:00
projectSylas 0ba6f3d861 통합인증 : die코드 제거 2021-12-24 08:01:20 +00:00
loves2tu 98b085e73e 구글 판매자센터 피드
- query 수정중
2021-12-23 02:09:11 +00:00
projectSylas 4305e6c8cc 통합인증 : kgcert를 inicert로 수정, 문구 kg -> ini로 수정 기존 인증버튼 여러개 -> 통합인증 하나로 통합 2021-12-22 05:51:24 +00:00
kagla a73967dd9a 버전 5.4.20 수정 2021-12-22 11:05:18 +09:00
kagla d941742b67 Merge branch 'total_cnt' of github.com:gnuboard/gnuboard5 into total_cnt 2021-12-22 10:59:30 +09:00
kagla 73a0f6ea80 Merge branch 'xss-pocas' 2021-12-22 10:57:49 +09:00
kagla 66d440f75e Merge branch 'xss-pocas' of github.com:gnuboard/gnuboard5 into xss-pocas 2021-12-22 10:57:19 +09:00
kagla 20c94e5b0a [보안패치] $kind 변수를 이용한 XSS 취약점 수정 (Pocas님,211214) 2021-12-22 10:56:51 +09:00
kagla f8480a41c8 중복된 </i> 태그 한개 삭제 (김철용님,211222) 2021-12-22 10:52:33 +09:00
kagla 26f6b802b7 SMS5 솔루션 설치시 불필요한 변수 삭제 (작은별님,211222) 2021-12-22 10:37:15 +09:00
loves2tu 8faa9ba9a2 구글 판매자센터 피드
- echo xml 생성 관련 코드 적용 중
2021-12-21 07:58:42 +00:00
projectSylas 72e041db10 dlab : kgcert를 inicert로 수정, 문구 kg -> ini로 수정 2021-12-21 07:41:14 +00:00
projectSylas bc8162f7fe Merge remote-tracking branch 'origin/master' into inicert 2021-12-21 04:59:20 +00:00
loves2tu f7aac7c467 구글 판매자센터 피드
- 상품 관련 query 작업중
2021-12-21 04:40:23 +00:00
projectSylas dfa677aadb 쇼핑몰 검색시 PC의 '전체분류'가 0으로 표시되는 오류 수정 (콜라시러님,211215)
전체분류가 앞에 나오도록 수정
2021-12-16 16:01:22 +09:00
kagla 2e81619ea8 $kind 변수를 이용한 XSS 취약점 수정 (Pocas님,211214) 2021-12-14 16:10:41 +09:00
kagla 796b6d9ab1 버전 5.4.19 수정 2021-12-09 10:48:40 +09:00
kagla d28c165fdf url에 타도메인을 지정할 수 있는 오류 수정 (Pocas님,211208) 2021-12-09 10:45:48 +09:00
kagla 80a71fef56 설치시 data/file/ 디렉토리에 기본게시판 디렉토리(free, gallery, notice, qa)가 만들어지지 않는 오류 수정 (작은별님,211206) 2021-12-08 12:28:56 +09:00
kagla 2144538f7e Merge branch 'visit_delete' 2021-12-08 11:03:57 +09:00
kagla d87802eb94 (KVE-2021-1846) url 값에 Line feed인 "%0A" 값을 삽입하여 전송하는 경우 check_url_host 함수 우회 취약점 수정 (Pocas님) 2021-12-08 10:38:18 +09:00
kagla 8c8bb94d68 접속자로그가 없을때 년도가 0부터 시작하는 것을 현재년도가 나오도록 수정 (다온테마님,211115) 2021-11-24 15:26:47 +09:00
projectSylas 7a054e1dbb .gitignore 에 pma 추가 2021-11-11 04:09:01 +00:00
kagla edb0b849d9 버전 5.4.18 수정 2021-10-25 11:15:26 +09:00
projectSylas 6ee9b1fbf2 PHP8에서 상단 파일 경로, 하단 파일 경로가 없을때 나오는 오류 수정 (루미집사님,211025) 2021-10-25 11:11:51 +09:00
kagla 413044ab06 이후 버전의 PHP에서는 class 에 속한 method(함수) 이름을 class 이름과 동일하게 만들 수 없습니다. 2021-10-25 11:11:51 +09:00
kagla 6148da1add $BANK_CODE 에 토스뱅크(92) 추가 2021-10-25 11:11:51 +09:00
kagla 9020d246b7 비밀 댓글 수정시 비밀글 해제가 되지 않는 오류를 수정 (한별아빠님,211022) 2021-10-25 11:11:50 +09:00
kagla de73f54959 신용카드 결제창에서 네이버페이를 지원하므로 상품상세페이지, 장바구니에서 더이상 네이버페이 직접결제를 지원하지 않음 2021-10-19 11:44:19 +09:00
kagla 9ada18ae56 버전 5.4.17 수정 2021-10-18 12:15:07 +09:00
kagla ddaf4f9794 Merge branch 'KVE-2021-0755' 2021-10-18 12:13:35 +09:00
kagla 920d5fc34c Merge branch 'KVE-2021-0849' 2021-10-18 12:13:00 +09:00
kagla 3a3434104c (KVE-2021-0755) 메뉴의 링크 기능을 이용한 XSS 취약점 수정 2021-10-15 16:40:04 +09:00
kagla 6dc462d784 (KVE-2021-0849) 확장자 .phar 파일 업로드 취약점 수정 2021-10-15 16:04:17 +09:00
kagla 24ba84d6f0 KG이니시스 가상계좌 사용시 안내문구 중 거래조회를 거래내역으로 수정 2021-10-14 14:49:20 +09:00
kagla 650ea16523 shop_is_taxsave 함수에 $od_pay_type 변수의 vbank, transfer 가 바뀌어 있는 것을 수정 (moons님,211014) 2021-10-14 14:47:32 +09:00
projectSylas 7be96449b8 버전 5.5.0.2-beta 수정 2021-10-12 04:39:05 +00:00
민섭 3d7145c947 Merge pull request #124 from whitedot/inicert
관리자 : 회원 상세보기에서 본인인증 내역 확인 정리
2021-10-07 16:50:20 +09:00
whitedot eb812f32fb 관리자 : 회원 상세보기에서 본인인증 내역 확인 정리 2021-10-07 16:46:01 +09:00
형진 f3ef7efa91 Merge pull request #123 from projectSylas/inicert
회원관리 : 본인인증 내역 추가, 코드정리, 이슈해결
2021-10-07 15:46:00 +09:00
형진 95e6296af1 Merge branch 'gnuboard:inicert' into inicert 2021-10-07 15:33:54 +09:00
projectSylas 707fceb694 소셜, 회원가입, 비밀번호찾기 : 카카오 버튼 추가, 스크립트 정리 2021-10-07 06:31:46 +00:00
projectSylas 950e3ff6c6 재인증 : 조건 위치 변경, 이동페이지 지정 2021-10-07 06:08:38 +00:00
projectSylas 5eb294eaff 게시판, 쇼핑몰 : 본인인증 알림 관련 조건, 변수 수정 2021-10-07 06:08:06 +00:00
projectSylas fc01d803f3 본인인증 내역 : 본인 인증시 회원별 히스토리 기록 테이블 추가, 기능 추가 2021-10-07 05:44:00 +00:00
projectSylas cbd9fc4a86 통합인증 : 코드정리 2021-10-06 08:10:45 +00:00
projectSylas 1be4ef9397 버전 5.5.0.1-beta 수정 2021-10-05 06:29:47 +00:00
형진 05cb595439 Merge pull request #120 from projectSylas/inicert
회원가입 : 스킨별 인증 안내 출력 수정사항 반영
2021-10-05 14:58:11 +09:00
projectSylas c7f19057e5 회원가입 : 스킨별 인증 안내 출력 수정사항 반영 2021-10-05 05:56:15 +00:00
형진 00cf4e5b48 Merge pull request #118 from seeoya/inicert
통합인증 : 본인확인 사용 시에만 아이디/비밀번호 찾기에 이용할 수 있도록 수정
2021-10-05 14:17:18 +09:00
seeoya 31201ba451 통합인증 : 본인확인 사용 시에만 아이디/비밀번호 찾기에 이용할 수 있도록 수정 2021-10-05 14:14:57 +09:00
projectSylas 6fe49ff106 상수 G5_SEO_TITEL_WORD_CUT 을 G5_SEO_TITLE_WORD_CUT 로 수정 (sinbi님,211005) 2021-10-05 02:17:34 +00:00
형진 a92ff130d5 통합인증 : 인증 안내 출력 조건 추가
통합인증 : 인증 안내 출력 조건 추가
2021-10-01 16:55:07 +09:00
projectSylas e5d24941ec 통합인증 : 인증 안내 출력 조건 추가 2021-10-01 07:54:11 +00:00
형진 f016870a7c Merge pull request #116 from seeoya/inicert
통합인증 관련 안내 추가
2021-10-01 16:32:58 +09:00
seeoya 247bfab4c0 통합인증 : 모바일 - 회원가입/소셜 회원가입 안내 줄바꿈 추가 2021-10-01 16:24:50 +09:00
seeoya 06ad2e7df1 Merge branch 'inicert' of https://github.com/seeoya/gnuboard5 into inicert 2021-10-01 16:20:43 +09:00
seeoya 82e27485fe 통합인증 : 회원가입/소셜 회원가입 본인인증 관련 안내 추가 2021-10-01 16:20:15 +09:00
seeoya 0b19dcecd1 통합인증 : 기존 회원 본인인증 페이지 섹션 스타일 변경 2021-10-01 16:01:37 +09:00
형진 b51e361e2a Merge pull request #115 from projectSylas/inicert
통합인증 : 특정사용자 구분코드 해제
2021-10-01 15:40:48 +09:00
형진 3f9bc7367f Merge branch 'gnuboard:inicert' into inicert 2021-10-01 15:39:39 +09:00
projectSylas 7457a2e4ac 통합인증 : 특정사용자 구분코드 해제 2021-10-01 06:38:55 +00:00
형진 44603fd145 Merge pull request #114 from projectSylas/inicert
본인확인 : submit form name 변경
2021-10-01 15:28:55 +09:00
projectSylas 5b3a895547 본인확인 : submit form name 변경 2021-10-01 06:24:28 +00:00
형진 72382caafe Merge pull request #113 from seeoya/inicert
통합인증 관련 알림 문구 변경
2021-10-01 15:23:59 +09:00
seeoya 80716c838a 통합인증 : 비밀번호 재설정 페이지 알림 문구 변경 2021-10-01 15:22:35 +09:00
seeoya a82c43c31d 통합인증 : 기존 회원 본인인증 페이지 알림 문구 변경 2021-10-01 15:22:19 +09:00
kagla 5b4bb06d74 버전 5.5.0-beta 수정 2021-10-01 03:31:27 +00:00
kagla 1e515ab177 Merge branch 'inicert' of github.com:gnuboard/gnuboard5 into inicert 2021-10-01 03:11:09 +00:00
형진 cacaf29ff6 Merge pull request #112 from projectSylas/inicert
통합인증 branch name inicert로 변경 master 최신 내용 merge
2021-10-01 11:42:40 +09:00
kagla 105ac603bb Merge branch 'inicert' of github.com:gnuboard/gnuboard5 into inicert 2021-10-01 02:39:59 +00:00
projectSylas 8815c4527c Merge remote-tracking branch 'origin/master' into inicert 2021-10-01 02:37:43 +00:00
형진 70173fbccb Merge pull request #111 from projectSylas/inicis-cert-sa
회원가입 : 본인인증을 사용하는지 체크하는 조건 추가
2021-09-30 16:17:40 +09:00
projectSylas 81a0537f66 회원가입 : 본인인증을 사용하는지 체크하는 조건 추가 2021-09-30 07:16:43 +00:00
형진 dc2dc8bce2 Merge pull request #110 from seeoya/inicis-cert-sa
통합인증 검수
2021-09-30 16:15:00 +09:00
seeoya b654fbd186 통합인증 : 로그인 상태로 비밀번호 찾기 페이지 접근 시 홈으로 이동하도록 추가 2021-09-30 16:07:55 +09:00
seeoya 1eabc482f2 통합인증 : 기존 회원 본인인증 안내 문구 변경 2021-09-30 16:07:48 +09:00
형진 3681c64132 Merge pull request #109 from projectSylas/inicis-cert-sa
통합인증 검수
2021-09-30 16:06:15 +09:00
projectSylas 8f3acd13e1 회원가입, 정보수정 : 본인인증이 필수일때 readonly 처리 조건 수정 및 로직 변경 2021-09-30 07:04:23 +00:00
projectSylas d2310221cc 소셜로그인 : 이메일 readonly 처리조건 추가, 코드 정리 2021-09-30 05:30:41 +00:00
projectSylas 0ddb2a97be 재인증 : 폼네임변경, 파일명 변경 2021-09-30 05:29:31 +00:00
projectSylas 779623b4e3 재인증 : 직접접근 불가 코드 추가 2021-09-30 05:27:28 +00:00
projectSylas 1f0a2dfc2f Merge branch 'inicis-cert-sa' of https://github.com/gnuboard/gnuboard5 into inicis-cert-sa 2021-09-29 07:47:58 +00:00
형진 ab0824e5d5 Merge pull request #108 from seeoya/inicis-cert-sa
통합인증 : 기존 회원 본인인증 페이지 id/class명 변경, 주석 제거
2021-09-29 16:34:28 +09:00
seeoya 3841cbd2ec 통합인증 : 기존 회원 본인인증 페이지 id/class명 변경, 주석 제거 2021-09-29 16:32:16 +09:00
projectSylas 0d226ef6fb 재인증 : 스킨파일명 수정 2021-09-29 03:26:39 +00:00
projectSylas 80639b4fff Merge branch 'inicis-cert-sa' of https://github.com/projectSylas/gnuboard5 into inicis-cert-sa 2021-09-29 03:18:22 +00:00
projectSylas 6ab674b475 TODO 제거, 미사용 파일제거 2021-09-29 03:17:51 +00:00
형진 68153d4afa Merge pull request #107 from projectSylas/inicis-cert-sa
소셜 회원가입 : 누락된 조건 추가
2021-09-29 12:11:51 +09:00
형진 f038dc98bf Merge branch 'gnuboard:inicis-cert-sa' into inicis-cert-sa 2021-09-29 12:10:27 +09:00
projectSylas d689d10ada 소셜회원가입 : 누락된 조건 추가 2021-09-29 03:08:33 +00:00
형진 ab9f980aea Merge pull request #106 from projectSylas/inicis-cert-sa
회원가입 : 휴대폰 번호 필수입력, 읽기전용 조건 수정
2021-09-29 12:03:41 +09:00
projectSylas 736aa92769 통합인증 : 코드 정리 2021-09-29 03:02:00 +00:00
projectSylas 40694f2b75 회원가입 : 휴대폰번호 readonly required 조건수정 2021-09-29 03:00:26 +00:00
형진 1eee9e46a4 Merge pull request #105 from projectSylas/inicis-cert-sa
php8 버전 관련 호환코드 추가
2021-09-28 17:35:57 +09:00
projectSylas cce78676c0 관리자 : 이니시스 mid 값 공백제거 추가 2021-09-28 08:29:15 +00:00
projectSylas f600cc65da 회원 가입 : 휴대폰번호 읽기전용 처리 조건 추가 2021-09-28 08:23:07 +00:00
projectSylas c69090fc4d 회원 가입 : php8 호환 코드 수정 2021-09-28 07:57:10 +00:00
projectSylas e3aa70a886 본인인증 : die 제거 2021-09-28 07:46:17 +00:00
projectSylas 21269e632b 본인인증 : 전체 모듈 php8 호환 코드 추가, 스위치문 개선 2021-09-28 07:45:25 +00:00
projectSylas 166c5e92bd 통합인증 : php8버전 관련 에러 수정, 재인증시 성명도 갱신되게 쿼리 추가 2021-09-28 06:56:02 +00:00
projectSylas 497ac75031 통합인증 : php8버전 관련 에러 수정 2021-09-28 06:12:21 +00:00
projectSylas 8eadd8b33f 통합인증 : 재인증페이지 조건 누락된것 추가 2021-09-28 06:11:41 +00:00
형진 1b2729c2ff Merge pull request #104 from seeoya/inicis-cert-sa
통합인증 : 관리자 부가서비스 높이 지정
2021-09-27 11:48:20 +09:00
seeoya 4938bd75f4 통합인증 : 관리자 부가서비스 높이 지정 2021-09-27 11:46:23 +09:00
형진 4e52b8c047 Merge pull request #103 from seeoya/inicis-cert-sa
통합인증 모바일 스타일 추가
2021-09-27 10:02:12 +09:00
seeoya facdeb2f00 통합인증 : 버튼 중복 id 제거 2021-09-24 15:37:52 +09:00
seeoya c6265aee2a 통합인증 : 모바일 공통 스타일 재지정 2021-09-24 15:23:29 +09:00
형진 781c99b35d Merge pull request #102 from projectSylas/inicis-cert-sa
기존회원 인증 갱신 관련 수정
2021-09-24 12:08:27 +09:00
projectSylas 8f7f468910 통합인증 : 인증 갱신 관련 조건 추가 bbs/영카트 2021-09-24 02:56:12 +00:00
projectSylas 49283792d2 통합인증 : 인증 갱신 관련 추가 작업 2021-09-24 02:55:23 +00:00
projectSylas 15821991f2 본인인증 : 결과페이지 재인증페이지 서브밋 스크립트 추가 2021-09-24 02:47:42 +00:00
kagla c74c04bf16 버전 5.4.16 수정 2021-09-23 05:29:22 +00:00
kagla 816b658252 Merge branch 'master' of github.com:gnuboard/gnuboard5 2021-09-23 12:24:35 +09:00
kagla 3d668f1a1d Merge branch 'qa' 2021-09-23 03:10:52 +00:00
kagla fa780a5aa3 Merge branch 'cheditor' 2021-09-23 03:09:22 +00:00
kagla f029210122 Merge branch 'php8' 2021-09-23 03:07:29 +00:00
kagla 54080f516a Merge branch 'naverpay' 2021-09-23 03:04:17 +00:00
kagla a42041a645 Merge branch 'qa' 2021-09-23 11:52:41 +09:00
kagla 0b74f2ec32 Merge branch 'sns' 2021-09-23 11:43:38 +09:00
kagla b2041758f4 PHP8에서 나오는 Undefined array key "HTTP_USER_AGENT" 오류 수정 2021-09-16 06:07:41 +00:00
kagla 469e1ff890 PHP8에서 나오는 PHP Warning: Undefined array key "HTTP_USER_AGENT" 오류 수정 2021-09-16 06:05:59 +00:00
kagla abe801a7ac PHP8에서 나오는 PHP Warning: Undefined array key "HTTP_USER_AGENT" 오류 수정 2021-09-16 06:05:07 +00:00
kagla f283e6c3d9 이미지 확장자에 .webp 추가 2021-09-16 04:56:06 +00:00
kagla 50612db75a 경로가 잘못 반환되어 thumb-이미지 파일이 삭제되지 않던 오류 수정 2021-09-16 04:55:11 +00:00
kagla 63217a6a67 ['HTTP_HOST'] 가 선언되지 않아 PHP8 에서 발생하던 오류 수정 2021-09-16 04:54:33 +00:00
kagla 688440eb18 JavaScript 불가일 때 Undefined variable $js 오류 나오지 않도록 수정 (조안님,210916) 2021-09-16 02:09:09 +00:00
형진 6724b2d59f Merge pull request #99 from seeoya/inicis-cert-sa
소셜 회원가입 스타일 변경
2021-09-15 17:44:16 +09:00
seeoya 8a355b2b98 회원 : 소셜회원가입 - 이름/휴대폰번호 폼체크 제거 2021-09-15 17:37:39 +09:00
seeoya 2e10febd85 Merge branch 'inicis-cert-sa' of https://github.com/seeoya/gnuboard5 into inicis-cert-sa 2021-09-15 17:34:02 +09:00
seeoya 88b781e631 회원 : 소셜회원가입 페이지 스타일 변경, 모바일 스타일 적용 2021-09-15 17:26:09 +09:00
seeoya 7a8eca575c 모바일 : 회원가입 폼 버튼 너비 스타일 변경, 주소 검색 버튼 위치 변경 2021-09-15 17:22:16 +09:00
형진 df62e80d0a Merge pull request #98 from seeoya/inicis-cert-sa
기존 회원 본인인증 페이지 추가
2021-09-15 14:54:17 +09:00
seeoya 6f30fed6fa Merge branch 'inicis-cert-sa' of https://github.com/seeoya/gnuboard5 into inicis-cert-sa
Conflicts:
	adm/config_form.php
2021-09-15 12:21:46 +09:00
seeoya 20bb92025f 미사용 스타일 코드 제거 2021-09-15 12:19:54 +09:00
seeoya d2efd07536 회원 : 모바일 회원가입 - 소셜 로그인 버튼 스타일 오류 수정 2021-09-15 12:12:21 +09:00
seeoya 1c7b4d5501 관리자 : 아이디/비밀번호 찾기에 본인확인을 사용할 때 확인 안내창 추가 2021-09-15 12:09:33 +09:00
seeoya 6dc37c2162 회원 : 기존 회원 본인인증 페이지 추가 2021-09-15 12:06:31 +09:00
kagla a3e8c97ef5 이미지 파일 업로드 기능을 이용한 웹변조 방지 코드 적용 (나창호님,레이딘님,210915) 2021-09-15 02:30:19 +00:00
형진 7a9e66542b Merge pull request #97 from projectSylas/inicis-cert-sa
이니시스 통합인증 모듈 추가
2021-09-15 11:22:18 +09:00
projectSylas a034428b25 통합인증 : 이니시스 통합인증 관련 수정 2021-09-15 02:17:28 +00:00
projectSylas 0f527be72e 소셜로그인 : 소셜로그인 가입 시 본인인증 로직 추가 2021-09-15 02:15:15 +00:00
projectSylas 28dbc78cdc 통합인증 : 통합인증 관련 공통 자바스크립트 추가 2021-09-15 02:12:47 +00:00
projectSylas 20842daa0d 회원정보찾기 : 비밀번호 재설정 페이지 테마 기본스킨에도 추가 2021-09-15 02:11:58 +00:00
projectSylas 24467e69ae 회원정보찾기 : 비밀번호 재설정 페이지 추가 2021-09-15 02:11:11 +00:00
projectSylas 3c7439fc0a 회원정보찾기 : KGB 휴대폰/아이핀 인증 관련 수정 2021-09-15 02:10:09 +00:00
projectSylas 1d32545552 회원정보찾기 : 토스 휴대폰 인증 관련 수정 2021-09-15 02:09:41 +00:00
projectSylas d48ff6cffe 회원정보찾기 : 이니시스통합인증 관련 수정 2021-09-15 02:09:17 +00:00
projectSylas 430e6d29e7 회원정보찾기 : kcp 휴대폰 인증 관련 수정 2021-09-15 02:08:50 +00:00
kagla 7dea8e6866 PHP8 에서 발생하는 오류 수정 2021-09-15 01:14:45 +00:00
projectSylas 353a1ad784 통합인증 : 이니시스 모듈 추가 2021-09-13 06:08:11 +00:00
projectSylas 5fc6fcd4ac 통합인증 : 관리자 비밀번호 찾기 관련 수정 2021-09-13 06:07:26 +00:00
projectSylas 84a9f8eb3d 통합인증 : 세션관련 오류 해결 2021-09-13 06:07:04 +00:00
projectSylas 41057b9f2e 관리자 : 통합인증 관련 인풋 네임변경 2021-09-10 05:28:42 +00:00
projectSylas d9617a8c1e Merge remote-tracking branch 'origin/inicis-cert-sa' into inicis-cert-sa 2021-09-10 05:27:53 +00:00
projectSylas 2818da8bc6 통합인증 : 백엔드 선행 작업 2021-09-10 05:26:32 +00:00
형진 d2eb7a9c6a Merge pull request #96 from seeoya/inicis-cert-sa
소셜 회원가입 페이지 수정
2021-09-10 14:24:22 +09:00
seeoya a18b7b7d30 Merge branch 'inicis-cert-sa' of https://github.com/seeoya/gnuboard5 into inicis-cert-sa 2021-09-10 14:15:35 +09:00
seeoya eeff1e7181 통합인증 관리자 설정 - MID 입력 수정 2021-09-10 14:15:18 +09:00
seeoya f2f8c01293 #92 소셜 회원가입 페이지 수정 2021-09-10 14:14:15 +09:00
projectSylas 96d37a8ef6 Merge branch 'inicis-cert-sa' of https://github.com/projectSylas/gnuboard5 into inicis-cert-sa 2021-09-10 01:14:04 +00:00
kagla ebf00b6834 배너의 링크를 입력하지 않으면 PHP8에서 Warning: Uninitialized string offset 0 in ... 와 같은 오류가 나는것을 수정 (다온테마님,210908) 2021-09-09 03:24:40 +00:00
kagla 6090b0de18 Merge pull request #94 from whitedot/master
게시판 : 갤러리 스킨에서 selector 선언 오류 수정
2021-09-08 15:33:26 +09:00
whitedot 0b11cee221 게시판: 갤러리 스킨에서 selector 선언 오류 수정 (작은별님,11437) 2021-09-08 15:28:24 +09:00
whitedot ce7de94486 스타일시트: 사용하지 않는 코드 삭제 2021-09-08 15:25:49 +09:00
kagla fc0f67d4c2 $i 값이 증가하지 않아 같은 id 값이 생성되는 오류 수정 2021-09-08 13:58:58 +09:00
형진 d713fbd1e3 Merge pull request #93 from seeoya/inicis-cert-sa
통합인증 프론트 2차 작업, #91 개인정보처리방침 문구 변경
2021-09-07 17:59:24 +09:00
kagla f75202786e <div></div> 쌍이 맞지 않는 버그 수정. </div> 한개 제거 (웹학교님,210906) 2021-09-07 16:03:01 +09:00
kagla 5c73de46a9 Merge branch 'master' of github.com:gnuboard/gnuboard5 2021-09-07 15:53:24 +09:00
kagla e14e392488 Scripts may close only the windows that were opened by them. 자신이 연 창만 닫을 수 있는 오류 수정. (ifelse님,210907) 2021-09-07 15:52:59 +09:00
seeoya 53e5d179d4 회원: #91 회원가입 페이지 개인정보처리방침 > 개인정보 수집 및 이용으로 문구 변경 2021-09-07 14:46:13 +09:00
seeoya d97f0d87c3 통합인증 : 프론트 2차 작업 2021-09-07 14:19:25 +09:00
EC2 Default User 9d0ead3140 방문자분석 스크립트를 출력하는 코드가 두번 작성되어 있어 하나를 삭제함 (웹학교님,210902) 2021-09-03 02:11:46 +00:00
kagla 02fac2bfa5 Merge pull request #90 from seeoya/inicis-cert-sa
통합인증 프론트 선행작업
2021-09-01 09:32:13 +09:00
seeoya f133acda17 통합인증 : 프론트 선행 작업 2021-09-01 09:27:12 +09:00
seeoya 543ed66fc4 관리자 : 본인확인 항목 미선택 알림창 오타 수정 2021-08-30 17:31:16 +09:00
민섭 2e3ef9cf43 Merge pull request #89 from whitedot/inicis-cert-sa
통합인증 : 기초 작업
- 정보찾기를 ID/PW 찾기 혹은 아이디/비밀번호 찾기로 용어 변경하고 현재창에 뜨도록
- 본인인증을 이용한 아이디/비밀번호 재설정 페이지(only url) 추가
2021-08-30 11:15:15 +09:00
whitedot e333412be6 통합인증 : 기초 작업
- 정보찾기를 ID/PW 찾기 혹은 아이디/비밀번호 찾기로 용어 변경하고 현재창에 뜨도록
    - 본인인증을 이용한 아이디/비밀번호 재설정 페이지(only url) 추가
2021-08-30 11:13:28 +09:00
whitedot 007389b299 회원 : 본인확인 중복체크 결과에서, 기가입된 회원아이디를 알려주지 않도록 변경 2021-08-27 18:29:18 +09:00
kagla c4544671a2 모바일 결제시 카드사명이 제대로 들어가지 않던 오류 수정 (chewry님,210817) 2021-08-24 13:55:22 +09:00
kagla 38308f887b 트위터 소셜 댓글 사용시 Could not connect to Twitter. Refresh the page or try again later. 이전에 나오는 Warning: Undefined array key 오류 수정 2021-08-23 07:24:24 +00:00
kagla bdd52dae6f 버전 5.4.15.1 수정 2021-08-19 11:29:47 +09:00
kagla ae515803f6 version.php 분리로 인해 ['path']가 선언되지 않아 설치가 되지 않던 오류 수정 2021-08-19 11:27:41 +09:00
kagla 5d31a5505d 버전 5.4.15 수정 2021-08-18 17:06:04 +09:00
kagla 99087027a2 config.php 에서 버전 관리 부분을 따로 떼어냄 2021-08-18 16:59:28 +09:00
kagla 6b5ca5c5e6 회원삭제시 빈값으로 수정되지 않던 필드 mb_addr3, mb_point, mb_profile 추가 (작은별님,210814) 2021-08-18 15:37:59 +09:00
kagla 0731b57c80 1:1문의에 제목, 내용, 글쓴이, 회원아이디 선택후 검색이 가능하도록 수정 (북마크스님,210812) 2021-08-13 02:02:21 +00:00
kagla 8d7bdb331d Merge branch 'qa' of github.com:gnuboard/gnuboard5 into qa 2021-08-13 00:26:54 +00:00
kagla 1accc143ec Merge pull request #85 from whitedot/qa
UI : 1:1문의 검색에서 검색 대상 지정 마크업 및 스타일링
2021-08-12 16:55:13 +09:00
whitedot 8e87434e99 UI : 1:1문의 검색에서 검색 대상 지정 마크업 및 스타일링 2021-08-12 16:52:29 +09:00
kagla b3e53e3c78 PHP8, Fatal error: Uncaught TypeError: count(): Argument #1 ($var) must be of type Countable|array, null given 및 Warning 오류 해결 (Jay-flow님,210806) 2021-08-12 04:50:03 +00:00
kagla 8e20e39e3f PHP8, 1:1문의 설정에서 DHTML 사용안함으로 사용시 Warning: Undefined variable $html_checked 나오는 오류 수정 (다온테마님,210811) 2021-08-12 01:27:33 +00:00
kagla c7de15f7f5 버전 5.4.14 수정 2021-08-10 11:28:17 +09:00
kagla 4595fefe7d 주석 오타 수정 (작은앙심님,210808) 2021-08-09 07:20:13 +00:00
kagla e3bfefab55 PHP8에서 Warning: Undefined variable $extensions 오류 나오지 않도록 수정 (다온테마님,210806) 2021-08-09 07:15:28 +00:00
kagla c024c7552b 게시글 입력시에도 $wr_1 ~ $wr_10 변수 사용시 오류 나오지 않도록 가변변수 생성 (다온테마님,210806) 2021-08-09 07:13:44 +00:00
kagla 8ed56ec293 네이버 소셜회원가입시 월/일 처리가 반대로 되는 현상 수정 (arrtres님,210727) 2021-07-28 11:19:45 +09:00
kagla ed3143b6fd 버전 5.4.13.1 수정중 2021-07-27 05:28:16 +00:00
kagla 1491ae6e17 잘못된 webp 검사 함수명 file_exists를 function_exists로 수정 2021-07-27 05:27:06 +00:00
EC2 Default User b29ced4553 버전 5.4.13 수정 2021-07-27 00:46:51 +00:00
EC2 Default User 77064a40c6 쇼핑몰을 사용하지 않을 경우 나오는 오류 수정 (열공중님,210723) 2021-07-26 03:17:22 +00:00
kagla 52ed0f3d64 움직이는 webp 이미지는 업로드 불가합니다. 문구를 삭제함 2021-07-24 06:18:56 +00:00
kagla d0e101b3e8 webp를 지원하는 서버에서만 이미지 업로드 확장자에 webp를 추가함 2021-07-24 06:18:20 +00:00
Cloud User 3f97138715 webp를 지원하지 않는 서버에서 경고 문구를 출력함 2021-07-24 06:16:22 +00:00
Cloud User d76b371a58 Merge branch '5.4.13' of github.com:gnuboard/gnuboard5 into 5.4.13 2021-07-21 04:54:28 +00:00
kagla 42bf3d6044 잘못된 주석 문구 수정 (해피정님,210720) 2021-07-20 14:49:01 +09:00
kagla 1d89af99b0 버전 5.4.12 수정 2021-07-20 01:23:06 +00:00
EC2 Default User 81635f7737 PHP 5 하위버전에서 상수 배열이 지원되지 않아 나오던 오류 수정 (한별아빠님,210719) 2021-07-20 01:20:35 +00:00
EC2 Default User e1e20f2dc2 skin 디렉토리가 없거나 경로가 잘못 된 경우 나오는 나오는 오류 수정 PHP Warning: array_merge(): Argument #2 is not an array (엑스엠엘님,210716) 2021-07-20 01:07:56 +00:00
kagla 0260fb9e33 버전 5.4.11 수정 2021-07-19 11:53:41 +09:00
kagla d9e6342c09 ckeditor4 는 별도의 브랜치에서 관리하기 위해 삭제함 2021-07-19 11:17:38 +09:00
kagla 8abf0dfcae Merge branch 'dhtml-editor' of github.com:gnuboard/gnuboard5 into dhtml-editor 2021-07-19 11:13:45 +09:00
kagla c2ce0f1d95 Merge branch 'reaonly' 2021-07-19 10:01:18 +09:00
kagla 4183ae5a42 Merge branch 'inicis-cancel' 2021-07-19 10:00:04 +09:00
kagla 8468a87f26 잘못 선언된 변수 $reaonly 를 삭제하고, $required_value 변수의 위치를 옮김 (작은별님,210718) 2021-07-19 09:58:31 +09:00
kagla fdbbe2d307 php5.x 버전에서만 stripslashes 가 되지 않는 오류가 있어 php 7.0 미만 버전에서 get_magic_quotes_gpc 가 실행되도록 예전 코드를 되돌림 2021-07-19 09:42:53 +09:00
kagla 9bc012f7f8 모바일결제에서 결제금액 불일치시 결제를 취소해야하는 이니시스 코드 누락되어 추가함. (위토즈님,210714) 2021-07-14 12:34:48 +09:00
whitedot c9fb4ff9d1 UI : 옵션 없는 상품에서 수량 변경할 때 UI 일관되게 표시되도록 수정 2021-07-07 16:46:06 +09:00
whitedot 6b52f0570d UI : 최신글 스킨 스타일시트에서 중복되는 속성값 제거 2021-07-07 16:34:10 +09:00
kagla 76bbc41043 Merge pull request #79 from projectSylas/ckeditor4
editor 별 익스플로러 alert 안내문 추가
2021-07-06 15:41:32 +09:00
kagla bda235bf01 Merge branch 'dhtml-editor' into ckeditor4 2021-07-06 15:41:07 +09:00
projectSylas 57e41498bc 에디터 별 익스플로러 안내문 추가 2021-07-06 06:26:40 +00:00
kagla a58bc5d2fb 버전 5.4.10 수정 2021-07-01 11:55:00 +09:00
kagla ff9f5ee936 문자열 안에 포함된 변수에 {중괄호} 적용 (해피정님,210625) 2021-07-01 11:52:11 +09:00
kagla 69e37cbec9 그누보드, 영카트 통합으로 인하여 게시판그룹을 커뮤니티(community)로 생성 (NaviGator님,210624) 2021-07-01 11:43:07 +09:00
kagla f631b3dca7 KISA 취약점 권고사항 Stored XSS (210624) 2021-07-01 10:59:16 +09:00
kagla e3a7dfd319 관련상품을 삭제한 뒤에 경고가 노출되어 등록, 수정 없이 관련상품만 삭제될 수 있는 오류 수정 (squared2님,210617) 2021-07-01 10:42:11 +09:00
kagla 94cd7b2979 음수 입력 하지 못하도록 수정 2021-07-01 10:41:53 +09:00
projectSylas 6b293876da cheditor 익스플로러 안내문구 추가 2021-06-29 07:52:11 +00:00
kagla cf3570586a ss_qa_write_token 세션값이 넘어가지 않아 답변등록 되지 않던 오류를 해결하기 위해 추가함 2021-06-28 14:12:43 +09:00
kagla d8df299366 class EditorImage 추가 2021-06-26 08:20:09 +09:00
kagla b3b92d4e1c cheditor4 first commit 2021-06-25 11:26:13 +00:00
EC2 Default User f27e4c3c0c 설치시 환경설정 > 이미지 업로드 확장자에 webp 추가 2021-06-25 05:43:06 +00:00
kagla bd33a31a10 움직이는 webp 이미지 업로드 가능하도록 수정중 2021-06-25 14:03:45 +09:00
kagla 8ac1d25242 이미지 확장자 상수 선언 2021-06-25 14:03:38 +09:00
kagla cfc6804ee5 버전 5.4.9 수정 2021-06-24 06:46:52 +00:00
kagla 395725a2b5 Merge branch 'master' of https://github.com/gnuboard/gnuboard5 2021-06-24 06:43:09 +00:00
kagla e928df8a8c 현재 false 값만 반환하는 get_magic_quotes_gpc() 관련 코드 제거, PHP7.4.0에서 DEPRECATED 되었습니다. (엑스엠엘님,210624) 2021-06-24 06:42:38 +00:00
EC2 Default User 911503e055 $subject 가 첫번째 조건에 만족하면 $cont 를 초기화 하지 못하는 보안 취약점 수정 (munsiwoo님,210623) 2021-06-24 05:39:11 +00:00
EC2 Default User cc2524e3a4 갤러리 이미지수 설정을 select type 에서 input type 으로 수정 (사노라가노라님,210223) 2021-06-24 04:58:52 +00:00
Ubuntu c82add0eca webp 지원하도록 수정중 2021-06-24 04:31:02 +00:00
EC2 Default User d4a63cd105 PHP 8.x 에서 data/dbconfig.php 의 define('G5_USE_SHOP', false); 와 같이 영카트 사용 안함 설정시 나오는 오류 수정 (몰라무서워님외,210623) 2021-06-23 02:50:45 +00:00
kagla 58f5e9b5cd cheditor5 에 webp 이미지 업로드 할 수 있도록 수정. 움직이는 gif, webp 의 이미지가 정지되어 업로드 되고 있음. 원래 그런것 같음. 2021-06-23 09:18:48 +09:00
kagla 74798b93c1 webp 확장자를 추가하여 용량 큰 webp 파일이 업로드 되는 것을 확인함 2021-06-22 16:43:21 +09:00
kagla 178886c87a webp 이미지를 업로드 할 수 있도록 수정 중 2021-06-22 16:07:02 +09:00
EC2 Default User 01c5771c16 PHP 8.x 버전에서 G5_USE_SHOP 이 false 인 경우 테마를 사용하는 경우에 상수 부분에서 발생하는 오류 수정 (dinist님,210618) 2021-06-21 02:38:57 +00:00
kagla 0e9a234dfb 그누보드 버전 5.4.8 수정 2021-06-18 13:57:31 +09:00
kagla 3fa43d55af G5_USE_SHOP 이 false 인 경우 자바스크립트 g5_shop_url 변수 선언하지 않음 2021-06-18 13:51:00 +09:00
kagla 7daa07b53f G5_USE_SHOP 이 false 인 경우 상단의 쇼핑몰 아이콘 제거 2021-06-18 13:50:14 +09:00
kagla 7a40546c4a G5_GNUBOARD_VER 을 extend/version.extend.php 로 옮긴것을 config.php 로 되돌림 2021-06-18 13:33:39 +09:00
kagla fefccdb353 그누보드 버전 5.4.7 수정 2021-06-18 09:57:46 +09:00
kagla 7a166ea47b config.php 에 있던 그누보드와 영카트 버전 상수를 이곳으로 옮김 2021-06-18 09:56:42 +09:00
kagla 907bdfc66e 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전이 통합됨에 따라 관리자 하단에 그누보드 버전만 표시 2021-06-18 09:49:38 +09:00
kagla d8e161eaea 그누보드와 영카트 버전 상수를 extend/version.extend.php 로 옮김 2021-06-18 09:48:06 +09:00
kagla 8ea99dda00 class 중간에 잘못 입력된 "(쌍따옴표) 한개 제거 (해피정님,210610) 2021-06-17 17:15:05 +09:00
kagla 3da6e9ff60 $sum['cnt'] 가 null 일때 재고 반영이 제대로 안되는 오류 수정 (그누위즈님,210614) 2021-06-17 16:17:45 +09:00
kagla b986729466 dbconfig.php 에서 define('G5_USE_SHOP', false); 설정시 '쇼핑몰' 문구 나오지 않도록 수정 2021-06-17 15:30:21 +09:00
kit rio 74ecb1aa55 PHP 4지원 함수 삭제 2021-03-26 02:23:23 +09:00
kit rio fdc8faf6d0 Merge remote-tracking branch 'upstream/main' 2021-03-26 02:12:49 +09:00
thisgun c223847301 Merge branch 'master' of github.com:gnuboard/g5 2021-03-22 15:06:41 +09:00
thisgun 2ede89f338 Merge branch 'master' of github.com:gnuboard/g5 2021-03-16 15:02:05 +09:00
thisgun 12132598b4 Merge branch 'master' of github.com:gnuboard/g5 2021-02-05 17:17:51 +09:00
thisgun 1c3cf4771a Merge branch 'master' of github.com:gnuboard/g5 2021-02-05 14:08:27 +09:00
thisgun 8523bb5747 Merge branch 'master' of github.com:gnuboard/g5 2021-01-26 10:51:12 +09:00
thisgun cde27ea510 Merge branch 'master' of github.com:gnuboard/g5 2021-01-26 10:13:06 +09:00
thisgun 9a61ea2d59 Merge branch 'master' of github.com:gnuboard/g5 2021-01-19 14:20:06 +09:00
thisgun dd2834167a Merge branch 'master' of github.com:gnuboard/g5 2021-01-14 10:23:28 +09:00
thisgun aa86ac0c30 Merge branch 'master' of github.com:gnuboard/g5 2021-01-13 15:35:54 +09:00
thisgun ddd7090801 Merge branch 'master' of github.com:gnuboard/g5 2021-01-11 14:52:19 +09:00
thisgun aceb0a2751 Merge branch 'master' of github.com:gnuboard/g5 2021-01-09 23:28:56 +09:00
thisgun 5c13b8c200 Merge branch 'master' of github.com:gnuboard/g5 2021-01-09 17:23:26 +09:00
thisgun ab7ba78fd2 Merge branch 'master' of github.com:gnuboard/g5 2021-01-08 15:54:28 +09:00
thisgun 18bc64ab0a Merge branch 'master' of github.com:gnuboard/g5 2021-01-06 14:24:51 +09:00
thisgun 24268f70b8 Merge branch 'master' of github.com:gnuboard/g5 2021-01-06 10:43:21 +09:00
thisgun 3eb07bdfa0 Merge branch 'master' of github.com:gnuboard/g5 2021-01-05 20:34:02 +09:00
lupin_latte e6764f4a7c Merge branch 'master' of github.com:gnuboard/g5 2021-01-05 16:04:40 +09:00
thisgun 5d37a15fb6 Merge branch 'master' of github.com:gnuboard/g5 2021-01-04 20:16:57 +09:00
thisgun 681499f8dd Merge branch 'master' of github.com:gnuboard/g5 2021-01-04 20:01:06 +09:00
thisgun 51355dffc5 Merge branch 'master' of github.com:gnuboard/g5 2021-01-04 20:00:42 +09:00
thisgun 389267bb65 버전 5.4.4 수정 2021-01-04 20:00:42 +09:00
thisgun 239b5d7a2c 매우중요 필수패치!!! 다음 우편번호 서비스 가이드에 따른 타URL 파라미터 붙이는 코드 삭제 2021-01-04 20:00:23 +09:00
thisgun de9ba8db5b Merge branch 'master' of github.com:gnuboard/g5 2020-11-24 14:30:06 +09:00
jw2(kit rio) ccd463170f 불필요한 PHP버전 확인 삭제
그누보드가 작동하는 최소 PHP 버전인 5.2.17 이하를  확인하는것을 삭제합니다.
2020-10-31 01:44:35 +09:00
thisgun e9439c87d1 Merge branch 'master' of github.com:gnuboard/g5 2020-10-28 15:18:28 +09:00
thisgun 1971be3186 Merge branch 'master' of github.com:gnuboard/g5 2020-10-07 10:52:40 +09:00
thisgun 5353f75284 Merge branch 'master' of github.com:gnuboard/g5 2020-08-13 11:11:16 +09:00
thisgun 84dd9f0766 Merge branch 'master' of github.com:gnuboard/g5 2020-06-11 12:24:58 +09:00
thisgun a16926a4de Merge branch 'master' of github.com:gnuboard/g5 2020-06-05 11:21:29 +09:00
thisgun c875121931 Merge branch 'master' of github.com:gnuboard/g5 2020-05-08 16:02:40 +09:00
thisgun 6cc2bfdd50 Merge branch 'master' of github.com:gnuboard/g5 2020-04-13 16:18:49 +09:00
thisgun ff4ac1d626 Merge branch 'master' of github.com:gnuboard/g5 2020-03-13 11:27:57 +09:00
thisgun fff7e074ff Merge branch 'master' of github.com:gnuboard/g5 2020-03-03 18:48:19 +09:00
thisgun 8dd2fe58e6 Merge branch 'master' of github.com:gnuboard/g5 2020-03-03 12:01:16 +09:00
thisgun 1600f63dee Merge branch 'master' of github.com:gnuboard/g5 2020-02-18 15:24:01 +09:00
thisgun da29b6d0bb Merge branch 'master' of github.com:gnuboard/g5 2020-02-07 18:19:36 +09:00
thisgun cc5eb6e520 Merge branch 'master' of github.com:gnuboard/g5 2020-02-04 11:24:30 +09:00
thisgun 726863de44 Merge branch 'master' of github.com:gnuboard/g5 2020-01-31 16:03:22 +09:00
thisgun f2a1af5f46 Merge branch 'master' of github.com:gnuboard/g5 2020-01-07 16:34:04 +09:00
thisgun 4b0969d244 Merge branch 'master' of github.com:gnuboard/g5 2019-12-27 16:05:56 +09:00
thisgun b5152b62e8 Merge branch 'master' of github.com:gnuboard/g5 2019-12-23 10:12:10 +09:00
thisgun 7ccf17b479 Merge branch 'master' of github.com:gnuboard/g5 2019-12-09 14:59:18 +09:00
thisgun 312fc5daf3 Merge branch 'master' of github.com:gnuboard/g5 2019-12-02 17:01:34 +09:00
thisgun e3ed8a1af3 Merge branch 'master' of github.com:gnuboard/g5 2019-12-02 11:11:03 +09:00
thisgun f230dc3522 Merge branch 'master' of github.com:gnuboard/g5 2019-10-31 12:18:19 +09:00
thisgun 58878593dc Merge branch 'master' of github.com:gnuboard/g5 2019-09-16 16:04:23 +09:00
thisgun 863f6011ac Merge branch 'master' of github.com:gnuboard/g5 2019-08-12 10:37:25 +09:00
thisgun cee88a0f6f Merge branch 'master' of github.com:gnuboard/g5 2019-07-15 18:40:40 +09:00
thisgun 27b1a5d8f8 Merge branch 'master' of github.com:gnuboard/g5 2019-06-18 17:57:28 +09:00
thisgun 7d494115b3 Merge branch 'master' of github.com:gnuboard/g5 2019-06-14 09:44:03 +09:00
thisgun 0954beced9 Merge branch 'master' of github.com:gnuboard/g5 2019-05-30 11:01:48 +09:00
thisgun 2534921446 Merge branch 'master' of github.com:gnuboard/g5 2019-05-29 14:41:19 +09:00
thisgun 831219e2c2 Merge branch 'master' of github.com:gnuboard/g5 2019-03-19 11:45:30 +09:00
thisgun ae729f1525 Merge branch 'master' of github.com:gnuboard/g5 2019-03-04 13:59:42 +09:00
thisgun 4d4064c40d Merge branch 'master' of github.com:gnuboard/g5 2019-02-14 10:32:18 +09:00
thisgun e8abeb47e8 Merge branch 'master' of github.com:gnuboard/g5 2019-01-28 11:18:46 +09:00
thisgun 5fdd38e1ce Merge branch 'master' of github.com:gnuboard/g5 2019-01-07 14:48:37 +09:00
thisgun 82cdd90edc Merge branch 'master' of github.com:gnuboard/g5 2018-12-28 11:11:07 +09:00
thisgun 54b1356ab1 Merge branch 'master' of github.com:gnuboard/g5 2018-12-18 12:29:17 +09:00
thisgun 7ae3d6b00d Merge branch 'master' of github.com:gnuboard/g5 2018-12-17 18:49:03 +09:00
thisgun da963964a9 Merge branch 'master' of github.com:gnuboard/g5 2018-12-11 17:22:45 +09:00
thisgun 7e7d73d394 Merge branch 'master' of github.com:gnuboard/g5 2018-11-26 15:24:07 +09:00
thisgun 2549172969 Merge branch 'master' of github.com:gnuboard/g5 2018-11-21 15:59:33 +09:00
thisgun 3fb9c2c15f Merge branch 'master' of github.com:gnuboard/g5 2018-10-30 16:03:27 +09:00
thisgun 0329cc9f9c Merge branch 'master' of github.com:gnuboard/g5 2018-10-26 11:55:51 +09:00
thisgun a77a6ffafa Merge branch 'master' of github.com:gnuboard/g5 2018-10-18 18:45:11 +09:00
thisgun 15b2e73e73 Merge branch 'master' of github.com:gnuboard/g5 2018-10-17 19:41:16 +09:00
thisgun 0e00f05014 Merge branch 'master' of github.com:gnuboard/g5 2018-10-17 18:42:24 +09:00
thisgun b2858b65ee Merge branch 'master' of github.com:gnuboard/g5 2018-10-08 12:00:38 +09:00
thisgun a82f61ae2a Merge branch 'master' of github.com:gnuboard/g5 2018-09-17 10:34:00 +09:00
thisgun 5be739934b Merge branch 'master' of github.com:gnuboard/g5 2018-08-24 09:35:49 +09:00
thisgun 02d816154b Merge branch 'master' of github.com:gnuboard/g5 2018-07-03 16:02:20 +09:00
thisgun 0bae2cf182 Merge branch 'master' of github.com:gnuboard/g5 2018-06-05 11:42:10 +09:00
thisgun a196c91ed5 Merge branch 'master' of github.com:gnuboard/g5 2018-06-05 09:39:56 +09:00
thisgun c24f37421b Merge branch 'master' of github.com:gnuboard/g5 2018-05-23 14:09:13 +09:00
thisgun 74a8e668e5 Merge branch 'master' of github.com:gnuboard/g5 2018-04-23 10:45:56 +09:00
thisgun f6a8b1bacf Merge branch 'master' of github.com:gnuboard/g5 2018-04-20 16:01:37 +09:00
thisgun 8958f138f4 Merge branch 'master' of github.com:gnuboard/g5 2018-04-20 14:27:21 +09:00
thisgun af8494e18f Merge branch 'master' of github.com:gnuboard/g5 2018-04-04 12:13:10 +09:00
thisgun b0fd1e7486 Merge branch 'master' of github.com:gnuboard/g5 2018-03-30 19:15:40 +09:00
thisgun bf8efdf2ab Merge branch 'master' of github.com:gnuboard/g5 2018-03-26 09:52:13 +09:00
thisgun 632ca4c79a Merge branch 'master' of github.com:gnuboard/g5 2018-03-20 15:58:37 +09:00
thisgun ea9825be61 Merge branch 'master' of github.com:gnuboard/g5 2018-03-19 14:31:06 +09:00
thisgun fbe2021a38 Merge branch 'master' of github.com:gnuboard/g5 2017-12-27 18:16:32 +09:00
thisgun 5ba5836ecb Merge branch 'master' of github.com:gnuboard/g5 2017-12-27 09:59:37 +09:00
thisgun a90a38f096 Merge branch 'master' of github.com:gnuboard/g5 2017-12-20 12:05:17 +09:00
thisgun bc68c4bc70 Merge branch 'master' of github.com:gnuboard/g5 2017-12-07 11:18:09 +09:00
thisgun 7d8e2e4fdd Merge branch 'master' of github.com:gnuboard/g5 2017-11-07 10:11:55 +09:00
thisgun f9dd7644cc Merge branch 'master' of github.com:gnuboard/g5 2017-10-11 09:06:51 +09:00
thisgun 28d079e83f 5.2.9.3 버전 수정 2017-09-11 11:00:14 +09:00
thisgun 54401165e8 5.2.9.2 버전 정보 수정 2017-08-16 10:52:49 +09:00
thisgun b99efb8fc8 1:1 문의 및 내용관리 상단 하단 경로 수정 2017-08-16 10:43:24 +09:00
thisgun ad102421cb Stored XSS 취약점 수정 (17-557) 2017-08-16 10:43:21 +09:00
thisgun 9be00683d9 433 포트번호 처리 수정 2017-08-16 10:43:18 +09:00
thisgun e76f36a1be 최고관리자 정보수정 문제 ( 17-00465 취약점 관련 ) 2017-08-16 10:43:15 +09:00
thisgun 70b62a6c6a 패스워드 찾기 https url 처리 2017-08-16 10:43:12 +09:00
thisgun 61b3fe4ebd 쪽지 보낼때 차감 포인트도 표시하기 2017-08-16 10:43:08 +09:00
thisgun 30a93dbef7 아이코드 충전하기 버튼 링크 태그 수정 2017-08-16 10:43:05 +09:00
thisgun b6956bd6fd 모바일 댓글 https 미처리 수정 2017-08-16 10:43:03 +09:00
thisgun 7a4b7e23c5 include path 체크함수 수정 2017-08-16 10:42:47 +09:00
thisgun b34a7610f5 인스톨시 필터링 단어 수정 2017-08-16 10:42:40 +09:00
thisgun 0d19b01229 5.2.9 버전 변경 2017-07-03 19:58:40 +09:00
thisgun 2b2d558c87 게시판 본문의 url 자동 링크 소스 수정 2017-07-03 19:41:44 +09:00
thisgun 94f25f73fa 그누보드 글 수정 XSS 취약점 수정 ( 17-454 ) 2017-07-03 19:41:38 +09:00
thisgun 5bd16c0e77 kcaptcha https 적용이 안되는 오류 수정 2017-07-03 19:41:33 +09:00
thisgun 7bb40dd882 코멘트 폼 및 게시판 패스워드 action url에 https 처리 2017-07-03 19:41:26 +09:00
thisgun bb99c050b6 게시판 글쓰기시 버튼도 토큰 적용되도록 수정 2017-07-03 19:41:20 +09:00
thisgun 31cdf10011 스마트에디터 2.9.0 버전으로 수정 2017-07-03 19:41:13 +09:00
thisgun 02c29c137c cheditor js 업로드 수정 2017-07-03 19:41:09 +09:00
thisgun e9afe3fdae 1:1 문의 페이징 오류 수정 2017-07-03 19:41:05 +09:00
thisgun ce9517885b 그누보드 AND 검색을 이용한 취약점 수정 (17-455) 2017-07-03 19:40:57 +09:00
thisgun 6a41d655de 게시판에서 특수문자 일부 입력시 캐쉬 파일 생성 오류 수정 2017-07-03 19:40:50 +09:00
thisgun c2a4a39ea0 에디터 이미지 업로드 부분 정규식 수정 2017-06-14 11:22:05 +09:00
thisgun b8759e4acd 5.2.8 버젼변경 2017-06-14 10:35:04 +09:00
thisgun e6a3df6f08 그누보드 파일 삭제 취약점 17-282 수정 2017-06-14 10:32:43 +09:00
thisgun 617dfbf0e2 그누보드 원격 취약점 17-259 수정 2017-06-14 10:32:35 +09:00
thisgun e4c9bf5ba4 g5_path 함수 수정 2017-06-14 10:32:29 +09:00
thisgun 910091b6c6 모바일 크롬 브라우저에서 캡챠 조회수 버그 수정 2017-06-14 10:32:23 +09:00
thisgun 92b8ce3a89 게시판 검색시 필드 소문자로 변경 2017-06-14 10:32:13 +09:00
thisgun 8a276fc073 install 파일에 utf-8 헤더 추가 2017-06-14 10:32:08 +09:00
thisgun baa2e890ba 기타 오류 수정 2017-06-14 10:32:04 +09:00
thisgun a9f4aee93f 메뉴 추가 대상에서 게시판일 경우 게시판 그룹 표시하기 #73 2017-06-14 10:31:59 +09:00
thisgun 144926774d 이메일 복화화 문자열이 깨지는 현상 수정 2017-06-14 10:31:53 +09:00
thisgun 435da08a02 5.2.7 버전변경 2017-03-20 17:45:21 +09:00
thisgun 945c060b67 썸네일 파일 수정 2017-03-20 17:45:17 +09:00
thisgun 83fd4bf68a cheditor 소스 수정 2017-03-20 17:45:09 +09:00
thisgun f11c4531e9 원격코드 실행 취약점(17-00160) 수정 2017-03-20 17:45:05 +09:00
thisgun f36c24e5d0 오타 수정 (왕대인님 제보) 2017-03-20 17:45:00 +09:00
thisgun 23a91b346d LFI to RCE 취약점 수정 2017-03-20 17:44:56 +09:00
thisgun 8eb465d26f 5.2.6 버전변경 2017-01-18 19:59:42 +09:00
thisgun 6ff06d4609 글쓰기시 page 중복 소스 삭제 2017-01-18 19:58:35 +09:00
thisgun c817b1edb7 PHPMailer 5.2.22 버전 적용 2017-01-18 19:58:31 +09:00
thisgun f7c6a52f6d cheditor5 추가 2017-01-18 19:58:20 +09:00
thisgun 3e343bdf66 5.2.5 버전변경 2017-01-09 14:33:20 +09:00
thisgun e131563c8f XSS 취약점(16-1008) 수정 2017-01-09 14:30:47 +09:00
thisgun 0094cc9afe 스마트에디터 업로드 방식 수정 2017-01-09 14:30:39 +09:00
thisgun 5fde923aa0 PHPMailer 5.2.19 버전 적용 2017-01-09 14:30:33 +09:00
chicpro 1e3a4f2657 KCP 본인확인 모바일 관련 수정 2016-12-21 09:56:32 +09:00
chicpro 0693fde962 5.2.4 버전변경 2016-11-22 11:34:16 +09:00
chicpro 7fb5f92200 <?php 수정 2016-11-22 10:47:31 +09:00
chicpro 50c8207fed 컬럼 정렬 함수에 sca 변수 추가 (sir ko님 제안) 2016-10-20 09:30:42 +09:00
chicpro 6dbfa73461 5.2.3 버전변경 2016-10-19 10:26:05 +09:00
chicpro 76ecc6efe8 XSS 취약점(16-781) 수정 2016-10-17 16:57:04 +09:00
chicpro f4b0737178 개인정보처리방침 명칭 변경 2016-10-17 14:48:00 +09:00
chicpro e99c7a81db 게시글 CSRF 취약점(16-749 16-750) 수정 2016-10-17 14:47:45 +09:00
chicpro ce0a6dc3af js css 버전 상수 추가 2016-10-17 14:47:30 +09:00
chicpro f3e428ea1e 모바이 FAQ 하단 내용 출력 오류 수정 2016-09-21 11:41:04 +09:00
chicpro 9b422b38c5 5.2.2 버전변경 2016-09-20 09:59:04 +09:00
chicpro f6056b2d37 오픈 리다이렉트 취약점(16-603) 수정 2016-09-06 14:47:35 +09:00
chicpro a560fc353c htmlpurifier 4.8 업데이트 2016-08-29 13:48:02 +09:00
chicpro e2c67e854f 5.2.1 버전변경 2016-08-22 09:56:47 +09:00
thisgun 3e7617e825 스마트에디터 2.8.2.3 보안패치 #63 2016-08-17 14:37:23 +09:00
chicpro 4515f11169 토큰 초기화 코드 추가 2016-08-10 10:02:04 +09:00
chicpro ec32f64bc4 댓글 수정 CSRF 취약점 수정 2016-08-10 10:01:49 +09:00
chicpro 15bd8b9632 파일경로 필터링 코드 추가 2016-08-10 10:01:35 +09:00
chicpro ef013e0827 wr_id_list 필터링 코드 추가 2016-08-10 09:56:03 +09:00
chicpro b3773217e9 5.2.0 버전변경 2016-07-25 10:44:58 +09:00
chicpro 70f6d92e87 XSS 취약점 수정 16-480 2016-07-21 10:25:46 +09:00
chicpro 042695af55 5.1.19 버전변경 2016-07-05 11:01:48 +09:00
chicpro 85f9523b30 댓글 삭제 토큰 코드 수정 2016-06-28 13:33:28 +09:00
chicpro 8c1d6266af 게시글 댓글 삭제 때 토큰 체크 추가 2016-06-24 17:22:29 +09:00
chicpro 30009dba6f 커맨드 인젝션 취약점(16-418 419) 수정 2016-06-24 17:22:14 +09:00
chicpro 24e7e8823e 가입축하 메일의 메일인증코드 수정 2016-05-24 17:46:02 +09:00
chicpro 42fb4b71a6 5.1.18 버전변경 2016-05-17 10:05:35 +09:00
chicpro f0134b610b 누락된 필드 추가 2016-05-17 10:05:06 +09:00
chicpro c2cf34392a 1:1문의 등록 오류 수정 2016-05-17 10:04:53 +09:00
chicpro 20dc859436 5.1.17 버전변경 2016-05-16 15:21:55 +09:00
chicpro f5ec4d60c0 기본환경설정 NHN KCP 사명변경 2016-05-13 12:03:02 +09:00
chicpro de00b4e9d3 1:1문의 파일업로드 분류 체크 추가 2016-05-04 13:36:31 +09:00
chicpro 8c67945c64 파일 업로드 개수 코드 수정 2016-05-04 13:36:20 +09:00
chicpro e5889df761 게시글 카테고리 체크 수정 2016-05-03 17:33:53 +09:00
chicpro 624e3d74a6 파일 업로드 개수 체크 추가 2016-05-03 17:33:37 +09:00
chicpro 30815f71e0 폼메일에서의 이메일주소 노출 수정 2016-05-03 14:16:38 +09:00
chicpro 949a73b468 1:1문의 이메일 체크 수정 2016-05-03 14:16:23 +09:00
chicpro 24d57cdd4b 스크랩 게시글 체크 추가 2016-05-03 14:16:09 +09:00
chicpro 191f3d2f97 1:1문의 삭제 오류 수정 2016-05-03 14:15:55 +09:00
chicpro 4973714e2f 이메일인증 프로세스 개선 2016-05-03 14:15:40 +09:00
chicpro 70bfeefb3b 댓글 등록 오류 수정 2016-04-28 09:49:14 +09:00
chicpro e8b83f3a33 비밀글 등록 버그 수정 2016-04-27 10:44:37 +09:00
chicpro c6bdc172ee 5.1.16 버전변경 2016-04-20 11:08:39 +09:00
sora90224 c3cf74f0c5 관리자 부가서비스 kcp 로고 변경 2016-04-20 11:07:58 +09:00
chicpro 52db203ecd 필터링 특수문자 추가 2016-04-20 11:07:23 +09:00
chicpro 6e05353f31 sst 변수 필터링 특수문자 추가 2016-04-20 11:07:12 +09:00
chicpro 7f6a9a090a 5.1.15 버전변경 2016-03-21 09:50:06 +09:00
sora90224 1825830c3d 모바일 쪽지함 이름겹침수정 2016-03-09 15:03:14 +09:00
chicpro 3047e09f88 5.1.14 버전변경 2016-03-07 10:41:33 +09:00
chicpro 990af076af 커맨드 인젝션 취약점(16-164, 16-165) 수정 2016-02-29 15:14:15 +09:00
chicpro b1f0342921 5.1.13 버전변경 2016-02-22 09:48:17 +09:00
chicpro 63f9e4c8df SIR 도메인 변경 2016-02-19 11:22:17 +09:00
chicpro 6b43e67c40 비밀 댓글 노출 취약점(16-067) 수정 2016-02-11 11:01:04 +09:00
chicpro 9a870506ab Reflected XSS 취약점(16-036) 수정 2016-02-11 11:00:30 +09:00
chicpro 008ae978dd XSS 취약점(16-060) 수정 2016-02-11 10:58:45 +09:00
chicpro 20b1d8c7e5 XSS 취약점(16-059) 수정 2016-02-11 10:58:31 +09:00
thisgun 1e011ba56d 스마트 에디터 2.8.2 에 추가된 파일 적용 2016-02-04 17:31:09 +09:00
thisgun a73e48c3e2 스마트에디터 2.8.2 적용 및 에디터 업로드 보안 수정 2016-02-04 17:30:53 +09:00
chicpro e9fd9f03fd g5_admin_url 코드 수정 2016-02-03 10:42:50 +09:00
chicpro 4913da0a1d g5_admin_url 변수 설정 코드 변경 2016-02-01 11:56:15 +09:00
chicpro 18ef4b0767 메일인증 기능 수정 2016-02-01 11:55:57 +09:00
chicpro d0e368fe2a sca 필터링 코드 수정 2016-01-21 16:00:54 +09:00
chicpro 5185f0c12a 5.1.12 버전변경 2016-01-20 10:03:25 +09:00
chicpro f5f4925d4e sca 필터링 코드 추가 2016-01-12 11:08:58 +09:00
chicpro bd3fd20630 게시글 등록 메일 이미지 출력 오류 수정 2016-01-07 10:55:25 +09:00
chicpro 6797c85480 5.1.11 버전변경 2016-01-05 09:44:47 +09:00
chicpro 2c9ff2bb52 모바일 그룹 정렬 필드 수정 2015-12-23 16:43:20 +09:00
chicpro cc2b5c246d PHPMailer 5.2.14 버전 적용 2015-12-22 15:27:18 +09:00
chicpro c337bfdf88 5.1.10 버전변경 2015-12-21 11:00:46 +09:00
chicpro cb5603008a 분류 사용할 때 분류선택 여부 체크 추가 2015-12-14 11:08:39 +09:00
chicpro 9d147b5e6c 태그 오류 수정 2015-12-10 16:33:15 +09:00
chicpro aabc82ee6c 5.1.9 버전변경 2015-12-07 11:24:10 +09:00
chicpro 40aff270cd 캡챠 폰트 변경 2015-12-07 11:22:39 +09:00
thisgun 851a21a3c1 엑셀 라이브러리 php7 버젼에서 난 오류 수정 2015-11-30 17:33:38 +09:00
chicpro d5b7dd165d new.php XSS 취약점 수정 2015-11-27 14:25:01 +09:00
chicpro beb7a86f2a 토큰 오류 알림 후 이동 url 지정 2015-11-27 14:24:48 +09:00
chicpro a6327afac4 5.1.8 버전변경 2015-11-25 09:55:20 +09:00
chicpro 30305d78dc 1:1문의 SMS 발신번호 사전등록제 관련 코드 수정 2015-11-25 09:48:17 +09:00
chicpro bb1fd4d3ab 관리자 CSRF 취약점 수정 2015-11-24 16:12:22 +09:00
chicpro a75e00f9e0 모바일 게시판 제목 적용되도록 수정 2015-11-19 15:50:27 +09:00
chicpro ad67fca323 파일면 변경으로인한 중복 파일 삭제 2015-11-17 16:39:16 +09:00
chicpro 614dce643c 캡챠 오류 수정 및 파일명 변경 2015-11-17 16:37:30 +09:00
chicpro c0cd45cc18 캡챠이미지 경로 오류수정 2015-11-17 09:07:12 +09:00
chicpro f3e7dbbb43 5.1.7 버전 변경 2015-11-16 16:45:37 +09:00
chicpro 5247359e39 오타 수정 2015-11-16 16:39:09 +09:00
chicpro 4ed4938cf1 캡챠 및 회원가입 값체크 개선 2015-11-16 16:36:04 +09:00
chicpro 158d9040d2 접속자 Browscap 적용 기능 개선 2015-11-13 11:23:14 +09:00
sora90224 aebfc70b10 불필요한 소스 삭제 2015-11-12 09:38:41 +09:00
chicpro 69ca119b10 업로드 파일명 코드 변경 2015-11-11 11:41:46 +09:00
chicpro be15f890c9 5.1.6 버전변경 2015-11-09 09:31:58 +09:00
chicpro bc71241846 php7 대응 코드 수정 2015-11-04 17:11:52 +09:00
chicpro 4bcce2696c sql_set_charset 함수 코드 수정 2015-11-04 10:20:42 +09:00
chicpro 7083bb0899 관리자 접속자 기능 개선 2015-11-03 15:35:31 +09:00
chicpro c7b1d0ee96 5.1.5 버전 변경 2015-11-02 09:54:40 +09:00
chicpro ba52e4ab6f 회원가입 개인정보취급방침 안내 수정 2015-10-29 09:59:29 +09:00
chicpro e47156ede6 게시판 복사 중 따옴표로 인한 오류 수정 2015-10-28 14:17:07 +09:00
chicpro 36ef8e6447 5.1.4 버전변경 2015-10-26 10:08:02 +09:00
chicpro eb154efa24 누락된 닫음태그 추가 2015-10-20 12:02:20 +09:00
chicpro 9bf15fdf32 htmlpurifier 4.7 버전 적용 2015-10-20 11:28:40 +09:00
chicpro 353a0d9409 XSS취약점관련 object 태그 허용설정 변경 2015-10-20 11:28:26 +09:00
chicpro 0535b6d26a post 값 필터링 코드 위치 변경 2015-10-20 11:26:30 +09:00
chicpro 1fe4684537 MySQLi 지원 추가 및 SMS5 수정 2015-10-16 10:12:06 +09:00
chicpro 0803de998b 반응형 대비 캡챠 코드 수정 2015-10-06 09:49:15 +09:00
chicpro 273983c87c 따옴표 관련 오류 수정 2015-10-02 17:57:46 +09:00
chicpro 94cc7639a9 XSS 취약점 수정 및 LMS 모듈 추가 2015-10-01 13:46:46 +09:00
chicpro 84009dc16c 관리자 글현황 추가 및 기타 오류 수정 2015-08-28 11:42:25 +09:00
chicpro 82c12f6d98 투표 결과 테마스킨 적용 오류 수정 2015-08-04 09:05:41 +09:00
chicpro 6beff3a333 그누보드 5.1.0 테마 지원버전 2015-08-03 15:44:15 +09:00
chicpro d49200c99e XSS 취약점 및 기타 오류 수정 2015-07-27 14:08:23 +09:00
sungkyuchun faed6ac09a empty_mb_name checks mb_id, not mb_name
empty_mb_name is a function checking name from user input form. But it
was not checked by empty_mb_name function. So I fix it.
2015-07-21 09:48:45 +09:00
chicpro 9256a5618b 버전변경 2015-07-20 11:52:21 +09:00
chicpro a52858fc6d XSS 취약점, 새 우편번호, 기타 오류 수정 2015-07-20 11:40:09 +09:00
iz4blue 2ccc407397 이미지 width 계산 이후 빠진 attributes 추가 2015-07-14 14:10:00 +09:00
chicpro d5bd57cdfa 그누보드 5.0.40 수정내역 적용 및 XSS 취약점 수정 2015-07-13 13:43:46 +09:00
chicpro 3bbbe96319 XSS 및 Blind SQL Injection 취약점 수정 2015-07-07 13:50:38 +09:00
chicpro 78169b372c Merge branch 'merge-patch' 2015-07-03 17:08:55 +09:00
chicpro a79a926221 Merge https://github.com/iz4blue/gnuboard5 into merge-patch 2015-07-03 17:08:21 +09:00
chicpro f72ea8774e Merge branch 'master' into merge-patch 2015-07-03 17:05:45 +09:00
iz4admin 3c9b72d17a PHP short_open_tag=0 에러 방지 2015-07-03 16:53:04 +09:00
chicpro 8821583e8f 그누보드 5.0.38 수정내역 적용 및 CSRF 취약점 수정 2015-06-29 10:36:44 +09:00
chicpro 6e90622328 그누보드 5.0.37 수정내역 적용 및 XSS 취약점 수정 2015-06-23 11:12:23 +09:00
chicpro d5aca5ab93 그누보드 5.0.36 수정 내역 및 XSS 취약점 수정 2015-06-11 09:54:48 +09:00
chicpro 7110ccc12f 그누보드 5.0.35 수정내역 적용 2015-06-01 09:38:12 +09:00
chicpro 330e656544 그누보드5.0.34 수정내역 적용 2015-05-19 13:59:00 +09:00
chicpro 18fc8ec6d1 오타 및 회원가입폼 스타일 수정 2015-05-14 09:14:37 +09:00
chicpro 01a31bb18f Magic Hash 관련 비밀번호 체크 코드 수정 2015-05-13 17:10:08 +09:00
chicpro 2705b9312c 그누보드5.0.33 수정내역 적용 2015-05-13 11:57:04 +09:00
chicpro 9fd14cfc17 그누보드 5.0.32 수정내역 적용 2015-04-09 09:16:36 +09:00
chicpro a6a2183c7d 그누보드 5.0.31 수정내역 적용 2015-03-10 13:47:21 +09:00
Mabin 4b9369599c RSS 헤더 오류 수정 (phpxml -> xml) 2015-03-04 16:05:18 +09:00
chicpro b477c2e720 XSS 취약점 패치 및 5.0.30버전 수정내역 적용 2015-02-09 09:57:32 +09:00
chicpro 7ef2029a31 그누보드 5.0.29 수정내역 적용 2015-02-02 13:35:15 +09:00
chicpro 1cd8d590b2 mb_tel 필드를 이용한 xss 취약점 수정 2015-01-14 09:13:22 +09:00
chicpro 82a55c96a5 관리자 부가서비스 페이지 추가 2015-01-12 15:00:04 +09:00
chicpro 489c859d3e 그누보드 5.0.26 수정내역 적용 2015-01-05 10:18:00 +09:00
chicpro d5db75a4c9 입력금지 메일 도메인 체크 코드 수정 2014-12-18 10:11:16 +09:00
chicpro db2ef39126 사용하지 않는 파일 삭제 2014-12-17 10:15:35 +09:00
chicpro 87adbf0f8d 그누보드 5.0.25 보안패치 및 수정내역 적용 2014-12-17 10:14:29 +09:00
chicpro 244b8ae819 보안패치 및 그누보드 5.0.24 수정내역 적용 2014-12-08 11:23:01 +09:00
chicpro 7ea9d2e1d2 그누보드 5.0.23 수정 내역 적용 2014-12-02 10:16:35 +09:00
chicpro 7dc293a147 그누보드 5.0.22 보안패치 적용 2014-11-07 09:26:16 +09:00
chicpro 097903d0ce 그누보드 5.0.21 보안패치 및 기타 오류 수정 2014-10-28 13:17:24 +09:00
chicpro 37b0fa5788 SQL Injection 및 관리자가 게시글 수정때 정보 반영되도록 수정 2014-10-24 11:02:39 +09:00
chicpro ad78efcdaa 회원 홈페이지를 이용한 SQL Injection 오류 수정 2014-10-23 09:25:33 +09:00
chicpro 352deb6133 보안패치 및 그누보드 5.0.20 수정사항 적용 2014-10-22 13:16:44 +09:00
chicpro 1355c7ef57 그누보드 5.0.19 수정사항 적용 2014-10-13 15:13:08 +09:00
chicpro 3fa9aec9f2 그누보드 5.0.18 수정사항 적용 2014-09-29 15:56:30 +09:00
chicpro 4c083b6471 기능개선 및 라이센스 기타오류 수정 2014-09-16 10:33:19 +09:00
chicpro 916cd86330 다음주소 API 기본코드로 변경 및 불필요한 파일 삭제 2014-08-22 15:21:23 +09:00
chicpro 5a37e8243d 다음주소API 관련 스크립트 코드 및 기타 코드 수정 2014-08-20 16:55:18 +09:00
chicpro e891791f86 불필요한 파일 삭제 2014-08-19 14:55:42 +09:00
chicpro 59468d1312 다음 주소 API 적용 및 기타 수정 2014-08-19 14:52:47 +09:00
chicpro 43fae4ed50 불필요한 파일 삭제 2014-08-19 14:47:55 +09:00
chicpro fdc93c1c2d 5.0.13 버전 패치 적용 2014-08-11 15:01:27 +09:00
chicpro 79d7a690f4 XSS 및 SQL Injection 보안 취약점 수정 2014-07-31 17:01:06 +09:00
chicpro 0742c5f81b 댓글 wr_name 이용한 XSS 보안 취약점 수정 2014-07-30 18:05:52 +09:00
chicpro d5e6a07dda xss 대응 코드 추가 2014-07-29 16:33:19 +09:00
chicpro e84a1c8c98 그누보드 5.0.9 패치 적용 2014-07-28 11:41:12 +09:00
chicpro 2579323ddf sql injection 보안패치 및 스마트에디터2 추가 2014-07-18 17:10:25 +09:00
chicpro 2658dde159 카카오톡 링크기능 추가 및 기타 버그 수정 2014-07-15 16:59:54 +09:00
chicpro d9b8d31225 gitignore 충돌수정 2014-07-09 10:02:56 +09:00
chicpro 4d8500be02 네이버 신디케이션 적용 및 기타 오류 수정 2014-07-09 10:01:21 +09:00
chicpro 288da7f9e1 전역배열변수 보안 오류 수정 2014-07-01 11:08:19 +09:00
chicpro 41aac91146 보고된 버그 수정 2014-06-27 10:12:06 +09:00
chicpro a949c32b4c 기능개선 및 오류 수정 2014-06-20 13:37:58 +09:00
chicpro dc06aed164 FAQ 검색기능 수정 및 이전 프로그램 오류 수정 2014-06-16 10:24:15 +09:00
chicpro 6518b22854 1:1문의 XSS 취약점 수정 2014-06-11 15:30:55 +09:00
chicpro c8a69b054e sns 사용 때 게시글 보기 로딩 속도 개선 2014-06-10 16:10:17 +09:00
chicpro cd50ef5d48 Subtree Merging 설정 2014-06-09 14:57:31 +09:00
chicpro 7983affa68 그누보드5 정식버전 2014-06-09 14:48:44 +09:00
chicpro 0243dabe20 first commit 2014-06-09 14:00:04 +09:00
391 changed files with 12362 additions and 12743 deletions

No files matched your search

+2 -1
View File
@@ -9,7 +9,7 @@ test.php
log log
g5_tree g5_tree
cheditor5.*/ cheditor5.*/
ckeditor*/ !ckeditor*/
log/ log/
g5_tree/ g5_tree/
.vscode/ .vscode/
@@ -17,3 +17,4 @@ naver*.html
initests01/ initests01/
SIRsoft000/ SIRsoft000/
config.php config.php
pma/
View File
Whitespace-only changes.
+3 -3
View File
@@ -1,9 +1,9 @@
<?php <?php
define('G5_IS_ADMIN', true); define('G5_IS_ADMIN', true);
include_once ('../common.php'); require_once '../common.php';
include_once(G5_ADMIN_PATH.'/admin.lib.php'); require_once G5_ADMIN_PATH . '/admin.lib.php';
if( isset($token) ){ if (isset($token)) {
$token = @htmlspecialchars(strip_tags($token), ENT_QUOTES); $token = @htmlspecialchars(strip_tags($token), ENT_QUOTES);
} }
+47 -45
View File
@@ -1,5 +1,7 @@
<?php <?php
if (!defined('_GNUBOARD_')) exit; if (!defined('_GNUBOARD_')) {
exit;
}
$is_use_apache = (stripos($_SERVER['SERVER_SOFTWARE'], 'apache') !== false); $is_use_apache = (stripos($_SERVER['SERVER_SOFTWARE'], 'apache') !== false);
@@ -11,29 +13,29 @@ $is_write_file = false;
$is_apache_need_rules = false; $is_apache_need_rules = false;
$is_apache_rewrite = false; $is_apache_rewrite = false;
if( !($is_use_apache || $is_use_nginx || $is_use_iis) ){ // 셋다 아니면 다 출력시킨다. if (!($is_use_apache || $is_use_nginx || $is_use_iis)) { // 셋다 아니면 다 출력시킨다.
$is_use_apache = true; $is_use_apache = true;
$is_use_nginx = true; $is_use_nginx = true;
} }
if ( $is_use_nginx ){ if ($is_use_nginx) {
$is_write_file = false; $is_write_file = false;
} }
if ( $is_use_apache ){ if ($is_use_apache) {
$is_write_file = (is_writable(G5_PATH) || (file_exists(G5_PATH.'/.htaccess') && is_writable(G5_PATH.'/.htaccess'))) ? true : false; $is_write_file = (is_writable(G5_PATH) || (file_exists(G5_PATH . '/.htaccess') && is_writable(G5_PATH . '/.htaccess'))) ? true : false;
$is_apache_need_rules = check_need_rewrite_rules(); $is_apache_need_rules = check_need_rewrite_rules();
$is_apache_rewrite = function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules()); $is_apache_rewrite = function_exists('apache_get_modules') && in_array('mod_rewrite', apache_get_modules());
} }
$get_path_url = parse_url( G5_URL ); $get_path_url = parse_url(G5_URL);
$base_path = isset($get_path_url['path']) ? $get_path_url['path'].'/' : '/'; $base_path = isset($get_path_url['path']) ? $get_path_url['path'] . '/' : '/';
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 // add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/remodal/remodal.css">', 11); add_stylesheet('<link rel="stylesheet" href="' . G5_JS_URL . '/remodal/remodal.css">', 11);
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/remodal/remodal-default-theme.css">', 12); add_stylesheet('<link rel="stylesheet" href="' . G5_JS_URL . '/remodal/remodal-default-theme.css">', 12);
add_javascript('<script src="'.G5_JS_URL.'/remodal/remodal.js"></script>', 10); add_javascript('<script src="' . G5_JS_URL . '/remodal/remodal.js"></script>', 10);
?> ?>
<section id="anc_cf_url"> <section id="anc_cf_url">
<h2 class="h2_frm">짧은 주소 설정</h2> <h2 class="h2_frm">짧은 주소 설정</h2>
@@ -41,48 +43,48 @@ add_javascript('<script src="'.G5_JS_URL.'/remodal/remodal.js"></script>', 10);
<div class="local_desc02 local_desc"> <div class="local_desc02 local_desc">
<p> <p>
게시판과 컨텐츠 페이지에 짧은 URL 을 사용합니다. <a href="https://sir.kr/manual/g5/286" class="btn btn_03" target="_blank" style="margin-left:10px">설정 관련 메뉴얼 보기</a> 게시판과 컨텐츠 페이지에 짧은 URL 을 사용합니다. <a href="https://sir.kr/manual/g5/286" class="btn btn_03" target="_blank" style="margin-left:10px">설정 관련 메뉴얼 보기</a>
<?php if( $is_use_apache && ! $is_use_nginx ){ ?> <?php if ($is_use_apache && !$is_use_nginx) { ?>
<?php if( ! $is_apache_rewrite ){ ?> <?php if (!$is_apache_rewrite) { ?>
<br><strong>Apache 서버인 경우 rewrite_module 이 비활성화 되어 있으면 짧은 주소를 사용할수 없습니다.</strong> <br><strong>Apache 서버인 경우 rewrite_module 이 비활성화 되어 있으면 짧은 주소를 사용할수 없습니다.</strong>
<?php } else if( ! $is_write_file && $is_apache_need_rules ) { // apache인 경우 ?> <?php } elseif (!$is_write_file && $is_apache_need_rules) { // apache인 경우 ?>
<br><strong>짧은 주소 사용시 아래 Apache 설정 코드를 참고하여 설정해 주세요.</strong> <br><strong>짧은 주소 사용시 아래 Apache 설정 코드를 참고하여 설정해 주세요.</strong>
<?php } ?> <?php } ?>
<?php } ?> <?php } ?>
</p> </p>
</div> </div>
<div class="server_config_views"> <div class="server_config_views">
<?php if ( $is_use_apache ){ ?> <?php if ($is_use_apache) { ?>
<button type="button" data-remodal-target="modal_apache" class="btn btn_03">Apache 설정 코드 보기</button> <button type="button" data-remodal-target="modal_apache" class="btn btn_03">Apache 설정 코드 보기</button>
<?php } ?> <?php } ?>
<?php if ( $is_use_nginx ) { ?> <?php if ($is_use_nginx) { ?>
<button type="button" data-remodal-target="modal_nginx" class="btn btn_03">Nginx 설정 코드 보기</button> <button type="button" data-remodal-target="modal_nginx" class="btn btn_03">Nginx 설정 코드 보기</button>
<?php } ?> <?php } ?>
</div> </div>
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<caption>짧은주소 설정</caption> <caption>짧은주소 설정</caption>
<colgroup> <colgroup>
<col class="grid_4"> <col class="grid_4">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<?php <?php
$short_url_arrs = array( $short_url_arrs = array(
'0'=>array('label'=>'사용안함', 'url'=>G5_URL.'/board.php?bo_table=free&wr_id=123'), '0' => array('label' => '사용안함', 'url' => G5_URL . '/board.php?bo_table=free&wr_id=123'),
'1'=>array('label'=>'숫자', 'url'=>G5_URL.'/free/123'), '1' => array('label' => '숫자', 'url' => G5_URL . '/free/123'),
'2'=>array('label'=>'글 이름', 'url'=>G5_URL.'/free/안녕하세요/'), '2' => array('label' => '글 이름', 'url' => G5_URL . '/free/안녕하세요/'),
); );
foreach($short_url_arrs as $k=>$v){ foreach ($short_url_arrs as $k => $v) {
$checked = ((int) $config['cf_bbs_rewrite'] === (int) $k) ? 'checked' : ''; $checked = ((int) $config['cf_bbs_rewrite'] === (int) $k) ? 'checked' : '';
?> ?>
<tr> <tr>
<td><input name="cf_bbs_rewrite" id="cf_bbs_rewrite_<?php echo $k; ?>" type="radio" value="<?php echo $k; ?>" <?php echo $checked;?> ><label for="cf_bbs_rewrite_<?php echo $k; ?>" class="rules_label"><?php echo $v['label']; ?></label></td> <td><input name="cf_bbs_rewrite" id="cf_bbs_rewrite_<?php echo $k; ?>" type="radio" value="<?php echo $k; ?>" <?php echo $checked; ?>><label for="cf_bbs_rewrite_<?php echo $k; ?>" class="rules_label"><?php echo $v['label']; ?></label></td>
<td><?php echo $v['url']; ?></td> <td><?php echo $v['url']; ?></td>
</tr> </tr>
<?php } //end foreach ?> <?php } //end foreach ?>
</tbody> </tbody>
</table> </table>
</div> </div>
@@ -95,13 +97,13 @@ add_javascript('<script src="'.G5_JS_URL.'/remodal/remodal.js"></script>', 10);
</button> </button>
<h4 class="copy_title">.htaccess 파일에 적용할 코드입니다. <h4 class="copy_title">.htaccess 파일에 적용할 코드입니다.
<?php if( ! $is_apache_rewrite ) { ?> <?php if (!$is_apache_rewrite) { ?>
<br><span class="info-warning">Apache 서버인 경우 rewrite_module 이 비활성화 되어 있으면 짧은 주소를 사용할수 없습니다.</span> <br><span class="info-warning">Apache 서버인 경우 rewrite_module 이 비활성화 되어 있으면 짧은 주소를 사용할수 없습니다.</span>
<?php } else if ( ! $is_write_file && $is_apache_need_rules ) { ?> <?php } elseif (!$is_write_file && $is_apache_need_rules) { ?>
<br><span class="info-warning">자동으로 .htaccess 파일을 수정 할수 있는 권한이 없습니다.<br>.htaccess 파일이 없다면 생성 후에, 아래 코드가 없으면 코드를 복사하여 붙여넣기 해 주세요.</span> <br><span class="info-warning">자동으로 .htaccess 파일을 수정 할수 있는 권한이 없습니다.<br>.htaccess 파일이 없다면 생성 후에, 아래 코드가 없으면 코드를 복사하여 붙여넣기 해 주세요.</span>
<?php } else if ( ! $is_apache_need_rules ){ ?> <?php } elseif (!$is_apache_need_rules) { ?>
<br><span class="info-success">정상적으로 적용된 상태입니다.</span> <br><span class="info-success">정상적으로 적용된 상태입니다.</span>
<?php } ?> <?php } ?>
</h4> </h4>
<textarea readonly="readonly" rows="10"><?php echo get_mod_rewrite_rules(true); ?></textarea> <textarea readonly="readonly" rows="10"><?php echo get_mod_rewrite_rules(true); ?></textarea>
</div> </div>
+85 -77
View File
@@ -1,25 +1,29 @@
<?php <?php
if (!defined('_GNUBOARD_')) exit; if (!defined('_GNUBOARD_')) {
exit;
}
$g5_debug['php']['begin_time'] = $begin_time = get_microtime(); $g5_debug['php']['begin_time'] = $begin_time = get_microtime();
$files = glob(G5_ADMIN_PATH.'/css/admin_extend_*'); $files = glob(G5_ADMIN_PATH . '/css/admin_extend_*');
if (is_array($files)) { if (is_array($files)) {
foreach ((array) $files as $k=>$css_file) { foreach ((array) $files as $k => $css_file) {
$fileinfo = pathinfo($css_file); $fileinfo = pathinfo($css_file);
$ext = $fileinfo['extension']; $ext = $fileinfo['extension'];
if( $ext !== 'css' ) continue; if ($ext !== 'css') {
continue;
}
$css_file = str_replace(G5_ADMIN_PATH, G5_ADMIN_URL, $css_file); $css_file = str_replace(G5_ADMIN_PATH, G5_ADMIN_URL, $css_file);
add_stylesheet('<link rel="stylesheet" href="'.$css_file.'">', $k); add_stylesheet('<link rel="stylesheet" href="' . $css_file . '">', $k);
} }
} }
include_once(G5_PATH.'/head.sub.php'); require_once G5_PATH . '/head.sub.php';
function print_menu1($key, $no='') function print_menu1($key, $no = '')
{ {
global $menu; global $menu;
@@ -28,35 +32,39 @@ function print_menu1($key, $no='')
return $str; return $str;
} }
function print_menu2($key, $no='') function print_menu2($key, $no = '')
{ {
global $menu, $auth_menu, $is_admin, $auth, $g5, $sub_menu; global $menu, $auth_menu, $is_admin, $auth, $g5, $sub_menu;
$str = "<ul>"; $str = "<ul>";
for($i=1; $i<count($menu[$key]); $i++) for ($i = 1; $i < count($menu[$key]); $i++) {
{ if (!isset($menu[$key][$i])) {
if( ! isset($menu[$key][$i]) ){
continue; continue;
} }
if ($is_admin != 'super' && (!array_key_exists($menu[$key][$i][0],$auth) || !strstr($auth[$menu[$key][$i][0]], 'r'))) if ($is_admin != 'super' && (!array_key_exists($menu[$key][$i][0], $auth) || !strstr($auth[$menu[$key][$i][0]], 'r'))) {
continue; continue;
}
$gnb_grp_div = $gnb_grp_style = ''; $gnb_grp_div = $gnb_grp_style = '';
if (isset($menu[$key][$i][4])){ if (isset($menu[$key][$i][4])) {
if (($menu[$key][$i][4] == 1 && $gnb_grp_style == false) || ($menu[$key][$i][4] != 1 && $gnb_grp_style == true)) $gnb_grp_div = 'gnb_grp_div'; if (($menu[$key][$i][4] == 1 && $gnb_grp_style == false) || ($menu[$key][$i][4] != 1 && $gnb_grp_style == true)) {
$gnb_grp_div = 'gnb_grp_div';
}
if ($menu[$key][$i][4] == 1) $gnb_grp_style = 'gnb_grp_style'; if ($menu[$key][$i][4] == 1) {
$gnb_grp_style = 'gnb_grp_style';
}
} }
$current_class = ''; $current_class = '';
if ($menu[$key][$i][0] == $sub_menu){ if ($menu[$key][$i][0] == $sub_menu) {
$current_class = ' on'; $current_class = ' on';
} }
$str .= '<li data-menu="'.$menu[$key][$i][0].'"><a href="'.$menu[$key][$i][2].'" class="gnb_2da '.$gnb_grp_style.' '.$gnb_grp_div.$current_class.'">'.$menu[$key][$i][1].'</a></li>'; $str .= '<li data-menu="' . $menu[$key][$i][0] . '"><a href="' . $menu[$key][$i][2] . '" class="gnb_2da ' . $gnb_grp_style . ' ' . $gnb_grp_div . $current_class . '">' . $menu[$key][$i][1] . '</a></li>';
$auth_menu[$menu[$key][$i][0]] = $menu[$key][$i][1]; $auth_menu[$menu[$key][$i][0]] = $menu[$key][$i][1];
} }
@@ -66,12 +74,12 @@ function print_menu2($key, $no='')
} }
$adm_menu_cookie = array( $adm_menu_cookie = array(
'container' => '', 'container' => '',
'gnb' => '', 'gnb' => '',
'btn_gnb' => '', 'btn_gnb' => '',
); );
if( ! empty($_COOKIE['g5_admin_btn_gnb']) ){ if (!empty($_COOKIE['g5_admin_btn_gnb'])) {
$adm_menu_cookie['container'] = 'container-small'; $adm_menu_cookie['container'] = 'container-small';
$adm_menu_cookie['gnb'] = 'gnb_small'; $adm_menu_cookie['gnb'] = 'gnb_small';
$adm_menu_cookie['btn_gnb'] = 'btn_gnb_open'; $adm_menu_cookie['btn_gnb'] = 'btn_gnb_open';
@@ -79,26 +87,25 @@ if( ! empty($_COOKIE['g5_admin_btn_gnb']) ){
?> ?>
<script> <script>
var tempX = 0; var tempX = 0;
var tempY = 0; var tempY = 0;
function imageview(id, w, h) function imageview(id, w, h) {
{
menu(id); menu(id);
var el_id = document.getElementById(id); var el_id = document.getElementById(id);
//submenu = eval(name+".style"); //submenu = eval(name+".style");
submenu = el_id.style; submenu = el_id.style;
submenu.left = tempX - ( w + 11 ); submenu.left = tempX - (w + 11);
submenu.top = tempY - ( h / 2 ); submenu.top = tempY - (h / 2);
selectBoxVisible(); selectBoxVisible();
if (el_id.style.display != 'none') if (el_id.style.display != 'none')
selectBoxHidden(id); selectBoxHidden(id);
} }
</script> </script>
<div id="to_content"><a href="#container">본문 바로가기</a></div> <div id="to_content"><a href="#container">본문 바로가기</a></div>
@@ -106,12 +113,14 @@ function imageview(id, w, h)
<header id="hd"> <header id="hd">
<h1><?php echo $config['cf_title'] ?></h1> <h1><?php echo $config['cf_title'] ?></h1>
<div id="hd_top"> <div id="hd_top">
<button type="button" id="btn_gnb" class="btn_gnb_close <?php echo $adm_menu_cookie['btn_gnb'];?>">메뉴</button> <button type="button" id="btn_gnb" class="btn_gnb_close <?php echo $adm_menu_cookie['btn_gnb']; ?>">메뉴</button>
<div id="logo"><a href="<?php echo correct_goto_url(G5_ADMIN_URL); ?>"><img src="<?php echo G5_ADMIN_URL ?>/img/logo.png" alt="<?php echo get_text($config['cf_title']); ?> 관리자"></a></div> <div id="logo"><a href="<?php echo correct_goto_url(G5_ADMIN_URL); ?>"><img src="<?php echo G5_ADMIN_URL ?>/img/logo.png" alt="<?php echo get_text($config['cf_title']); ?> 관리자"></a></div>
<div id="tnb"> <div id="tnb">
<ul> <ul>
<li class="tnb_li"><a href="<?php echo G5_SHOP_URL ?>/" class="tnb_shop" target="_blank" title="쇼핑몰 바로가기">쇼핑몰 바로가기</a></li> <?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
<li class="tnb_li"><a href="<?php echo G5_SHOP_URL ?>/" class="tnb_shop" target="_blank" title="쇼핑몰 바로가기">쇼핑몰 바로가기</a></li>
<?php } ?>
<li class="tnb_li"><a href="<?php echo G5_URL ?>/" class="tnb_community" target="_blank" title="커뮤니티 바로가기">커뮤니티 바로가기</a></li> <li class="tnb_li"><a href="<?php echo G5_URL ?>/" class="tnb_community" target="_blank" title="커뮤니티 바로가기">커뮤니티 바로가기</a></li>
<li class="tnb_li"><a href="<?php echo G5_ADMIN_URL ?>/service.php" class="tnb_service">부가서비스</a></li> <li class="tnb_li"><a href="<?php echo G5_ADMIN_URL ?>/service.php" class="tnb_service">부가서비스</a></li>
<li class="tnb_li"><button type="button" class="tnb_mb_btn">관리자<span class="./img/btn_gnb.png">메뉴열기</span></button> <li class="tnb_li"><button type="button" class="tnb_mb_btn">관리자<span class="./img/btn_gnb.png">메뉴열기</span></button>
@@ -128,33 +137,34 @@ function imageview(id, w, h)
<ul class="gnb_ul"> <ul class="gnb_ul">
<?php <?php
$jj = 1; $jj = 1;
foreach($amenu as $key=>$value) { foreach ($amenu as $key => $value) {
$href1 = $href2 = ''; $href1 = $href2 = '';
if (isset($menu['menu'.$key][0][2]) && $menu['menu'.$key][0][2]) { if (isset($menu['menu' . $key][0][2]) && $menu['menu' . $key][0][2]) {
$href1 = '<a href="'.$menu['menu'.$key][0][2].'" class="gnb_1da">'; $href1 = '<a href="' . $menu['menu' . $key][0][2] . '" class="gnb_1da">';
$href2 = '</a>'; $href2 = '</a>';
} else { } else {
continue; continue;
} }
$current_class = ""; $current_class = "";
if (isset($sub_menu) && (substr($sub_menu, 0, 3) == substr($menu['menu'.$key][0][0], 0, 3))) if (isset($sub_menu) && (substr($sub_menu, 0, 3) == substr($menu['menu' . $key][0][0], 0, 3))) {
$current_class = " on"; $current_class = " on";
}
$button_title = $menu['menu'.$key][0][1]; $button_title = $menu['menu' . $key][0][1];
?> ?>
<li class="gnb_li<?php echo $current_class;?>"> <li class="gnb_li<?php echo $current_class; ?>">
<button type="button" class="btn_op menu-<?php echo $key; ?> menu-order-<?php echo $jj; ?>" title="<?php echo $button_title; ?>"><?php echo $button_title;?></button> <button type="button" class="btn_op menu-<?php echo $key; ?> menu-order-<?php echo $jj; ?>" title="<?php echo $button_title; ?>"><?php echo $button_title; ?></button>
<div class="gnb_oparea_wr"> <div class="gnb_oparea_wr">
<div class="gnb_oparea"> <div class="gnb_oparea">
<h3><?php echo $menu['menu'.$key][0][1];?></h3> <h3><?php echo $menu['menu' . $key][0][1]; ?></h3>
<?php echo print_menu1('menu'.$key, 1); ?> <?php echo print_menu1('menu' . $key, 1); ?>
</div>
</div> </div>
</div> </li>
</li>
<?php <?php
$jj++; $jj++;
} //end foreach } //end foreach
?> ?>
</ul> </ul>
@@ -162,39 +172,37 @@ function imageview(id, w, h)
</header> </header>
<script> <script>
jQuery(function($){ jQuery(function($) {
var menu_cookie_key = 'g5_admin_btn_gnb'; var menu_cookie_key = 'g5_admin_btn_gnb';
$(".tnb_mb_btn").click(function(){ $(".tnb_mb_btn").click(function() {
$(".tnb_mb_area").toggle(); $(".tnb_mb_area").toggle();
}); });
$("#btn_gnb").click(function(){ $("#btn_gnb").click(function() {
var $this = $(this); var $this = $(this);
try { try {
if( ! $this.hasClass("btn_gnb_open") ){ if (!$this.hasClass("btn_gnb_open")) {
set_cookie(menu_cookie_key, 1, 60*60*24*365); set_cookie(menu_cookie_key, 1, 60 * 60 * 24 * 365);
} else { } else {
delete_cookie(menu_cookie_key); delete_cookie(menu_cookie_key);
} }
} } catch (err) {}
catch(err) {
}
$("#container").toggleClass("container-small"); $("#container").toggleClass("container-small");
$("#gnb").toggleClass("gnb_small"); $("#gnb").toggleClass("gnb_small");
$this.toggleClass("btn_gnb_open"); $this.toggleClass("btn_gnb_open");
});
$(".gnb_ul li .btn_op").click(function() {
$(this).parent().addClass("on").siblings().removeClass("on");
});
}); });
$(".gnb_ul li .btn_op" ).click(function() {
$(this).parent().addClass("on").siblings().removeClass("on");
});
});
</script> </script>
+233 -178
View File
@@ -1,5 +1,7 @@
<?php <?php
if (!defined('_GNUBOARD_')) exit; if (!defined('_GNUBOARD_')) {
exit;
}
/* /*
// 081022 : CSRF 방지를 위해 코드를 작성했으나 효과가 없어 주석처리 함 // 081022 : CSRF 방지를 위해 코드를 작성했으나 효과가 없어 주석처리 함
@@ -10,17 +12,17 @@ if (!get_session('ss_admin')) {
*/ */
// 스킨디렉토리를 SELECT 형식으로 얻음 // 스킨디렉토리를 SELECT 형식으로 얻음
function get_skin_select($skin_gubun, $id, $name, $selected='', $event='') function get_skin_select($skin_gubun, $id, $name, $selected = '', $event = '')
{ {
global $config; global $config;
$skins = array(); $skins = array();
if(defined('G5_THEME_PATH') && $config['cf_theme']) { if (defined('G5_THEME_PATH') && $config['cf_theme']) {
$dirs = get_skin_dir($skin_gubun, G5_THEME_PATH.'/'.G5_SKIN_DIR); $dirs = get_skin_dir($skin_gubun, G5_THEME_PATH . '/' . G5_SKIN_DIR);
if(!empty($dirs)) { if (!empty($dirs)) {
foreach($dirs as $dir) { foreach ($dirs as $dir) {
$skins[] = 'theme/'.$dir; $skins[] = 'theme/' . $dir;
} }
} }
} }
@@ -28,12 +30,15 @@ function get_skin_select($skin_gubun, $id, $name, $selected='', $event='')
$skins = array_merge($skins, get_skin_dir($skin_gubun)); $skins = array_merge($skins, get_skin_dir($skin_gubun));
$str = "<select id=\"$id\" name=\"$name\" $event>\n"; $str = "<select id=\"$id\" name=\"$name\" $event>\n";
for ($i=0; $i<count($skins); $i++) { for ($i = 0; $i < count($skins); $i++) {
if ($i == 0) $str .= "<option value=\"\">선택</option>"; if ($i == 0) {
if(preg_match('#^theme/(.+)$#', $skins[$i], $match)) $str .= "<option value=\"\">선택</option>";
$text = '(테마) '.$match[1]; }
else if (preg_match('#^theme/(.+)$#', $skins[$i], $match)) {
$text = '(테마) ' . $match[1];
} else {
$text = $skins[$i]; $text = $skins[$i];
}
$str .= option_selected($skins[$i], $selected, $text); $str .= option_selected($skins[$i], $selected, $text);
} }
@@ -42,30 +47,33 @@ function get_skin_select($skin_gubun, $id, $name, $selected='', $event='')
} }
// 모바일 스킨디렉토리를 SELECT 형식으로 얻음 // 모바일 스킨디렉토리를 SELECT 형식으로 얻음
function get_mobile_skin_select($skin_gubun, $id, $name, $selected='', $event='') function get_mobile_skin_select($skin_gubun, $id, $name, $selected = '', $event = '')
{ {
global $config; global $config;
$skins = array(); $skins = array();
if(defined('G5_THEME_PATH') && $config['cf_theme']) { if (defined('G5_THEME_PATH') && $config['cf_theme']) {
$dirs = get_skin_dir($skin_gubun, G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR); $dirs = get_skin_dir($skin_gubun, G5_THEME_MOBILE_PATH . '/' . G5_SKIN_DIR);
if(!empty($dirs)) { if (!empty($dirs)) {
foreach($dirs as $dir) { foreach ($dirs as $dir) {
$skins[] = 'theme/'.$dir; $skins[] = 'theme/' . $dir;
} }
} }
} }
$skins = array_merge($skins, get_skin_dir($skin_gubun, G5_MOBILE_PATH.'/'.G5_SKIN_DIR)); $skins = array_merge($skins, get_skin_dir($skin_gubun, G5_MOBILE_PATH . '/' . G5_SKIN_DIR));
$str = "<select id=\"$id\" name=\"$name\" $event>\n"; $str = "<select id=\"$id\" name=\"$name\" $event>\n";
for ($i=0; $i<count($skins); $i++) { for ($i = 0; $i < count($skins); $i++) {
if ($i == 0) $str .= "<option value=\"\">선택</option>"; if ($i == 0) {
if(preg_match('#^theme/(.+)$#', $skins[$i], $match)) $str .= "<option value=\"\">선택</option>";
$text = '(테마) '.$match[1]; }
else if (preg_match('#^theme/(.+)$#', $skins[$i], $match)) {
$text = '(테마) ' . $match[1];
} else {
$text = $skins[$i]; $text = $skins[$i];
}
$str .= option_selected($skins[$i], $selected, $text); $str .= option_selected($skins[$i], $selected, $text);
} }
@@ -75,21 +83,26 @@ function get_mobile_skin_select($skin_gubun, $id, $name, $selected='', $event=''
// 스킨경로를 얻는다 // 스킨경로를 얻는다
function get_skin_dir($skin, $skin_path=G5_SKIN_PATH) function get_skin_dir($skin, $skin_path = G5_SKIN_PATH)
{ {
global $g5; global $g5;
$result_array = array(); $result_array = array();
$dirname = $skin_path.'/'.$skin.'/'; $dirname = $skin_path . '/' . $skin . '/';
if(!is_dir($dirname)) if (!is_dir($dirname)) {
return; return array();
}
$handle = opendir($dirname); $handle = opendir($dirname);
while ($file = readdir($handle)) { while ($file = readdir($handle)) {
if($file == '.'||$file == '..') continue; if ($file == '.' || $file == '..') {
continue;
}
if (is_dir($dirname.$file)) $result_array[] = $file; if (is_dir($dirname . $file)) {
$result_array[] = $file;
}
} }
closedir($handle); closedir($handle);
sort($result_array); sort($result_array);
@@ -103,15 +116,18 @@ function get_theme_dir()
{ {
$result_array = array(); $result_array = array();
$dirname = G5_PATH.'/'.G5_THEME_DIR.'/'; $dirname = G5_PATH . '/' . G5_THEME_DIR . '/';
$handle = opendir($dirname); $handle = opendir($dirname);
while ($file = readdir($handle)) { while ($file = readdir($handle)) {
if($file == '.'||$file == '..') continue; if ($file == '.' || $file == '..') {
continue;
}
if (is_dir($dirname.$file)) { if (is_dir($dirname . $file)) {
$theme_path = $dirname.$file; $theme_path = $dirname . $file;
if(is_file($theme_path.'/index.php') && is_file($theme_path.'/head.php') && is_file($theme_path.'/tail.php')) if (is_file($theme_path . '/index.php') && is_file($theme_path . '/head.php') && is_file($theme_path . '/tail.php')) {
$result_array[] = $file; $result_array[] = $file;
}
} }
} }
closedir($handle); closedir($handle);
@@ -125,21 +141,23 @@ function get_theme_dir()
function get_theme_info($dir) function get_theme_info($dir)
{ {
$info = array(); $info = array();
$path = G5_PATH.'/'.G5_THEME_DIR.'/'.$dir; $path = G5_PATH . '/' . G5_THEME_DIR . '/' . $dir;
if(is_dir($path)) { if (is_dir($path)) {
$screenshot = $path.'/screenshot.png'; $screenshot = $path . '/screenshot.png';
if(is_file($screenshot)) { $screenshot_url = '';
if (is_file($screenshot)) {
$size = @getimagesize($screenshot); $size = @getimagesize($screenshot);
if($size[2] == 3) if ($size[2] == 3) {
$screenshot_url = str_replace(G5_PATH, G5_URL, $screenshot); $screenshot_url = str_replace(G5_PATH, G5_URL, $screenshot);
}
} }
$info['screenshot'] = $screenshot_url; $info['screenshot'] = $screenshot_url;
$text = $path.'/readme.txt'; $text = $path . '/readme.txt';
if(is_file($text)) { if (is_file($text)) {
$content = file($text, false); $content = file($text, false);
$content = array_map('trim', $content); $content = array_map('trim', $content);
@@ -162,8 +180,9 @@ function get_theme_info($dir)
$info['license_uri'] = trim($m7[1]); $info['license_uri'] = trim($m7[1]);
} }
if(!$info['theme_name']) if (!$info['theme_name']) {
$info['theme_name'] = $dir; $info['theme_name'] = $dir;
}
} }
return $info; return $info;
@@ -171,19 +190,19 @@ function get_theme_info($dir)
// 테마설정 정보 // 테마설정 정보
function get_theme_config_value($dir, $key='*') function get_theme_config_value($dir, $key = '*')
{ {
$tconfig = array(); $tconfig = array();
$theme_config_file = G5_PATH.'/'.G5_THEME_DIR.'/'.$dir.'/theme.config.php'; $theme_config_file = G5_PATH . '/' . G5_THEME_DIR . '/' . $dir . '/theme.config.php';
if(is_file($theme_config_file)) { if (is_file($theme_config_file)) {
include($theme_config_file); include $theme_config_file;
// 22.05.26 Undefined Variable $theme_config;
if($key == '*') { if ($key == '*') {
$tconfig = $theme_config; $tconfig = $theme_config;
} else { } else {
$keys = array_map('trim', explode(',', $key)); $keys = array_map('trim', explode(',', $key));
foreach($keys as $v) { foreach ($keys as $v) {
$tconfig[$v] = isset($theme_config[$v]) ? trim($theme_config[$v]) : ''; $tconfig[$v] = isset($theme_config[$v]) ? trim($theme_config[$v]) : '';
} }
} }
@@ -194,17 +213,20 @@ function get_theme_config_value($dir, $key='*')
// 회원권한을 SELECT 형식으로 얻음 // 회원권한을 SELECT 형식으로 얻음
function get_member_level_select($name, $start_id=0, $end_id=10, $selected="", $event="") function get_member_level_select($name, $start_id = 0, $end_id = 10, $selected = "", $event = "")
{ {
global $g5; global $g5;
$str = "\n<select id=\"{$name}\" name=\"{$name}\""; $str = "\n<select id=\"{$name}\" name=\"{$name}\"";
if ($event) $str .= " $event"; if ($event) {
$str .= " $event";
}
$str .= ">\n"; $str .= ">\n";
for ($i=$start_id; $i<=$end_id; $i++) { for ($i = $start_id; $i <= $end_id; $i++) {
$str .= '<option value="'.$i.'"'; $str .= '<option value="' . $i . '"';
if ($i == $selected) if ($i == $selected) {
$str .= ' selected="selected"'; $str .= ' selected="selected"';
}
$str .= ">{$i}</option>\n"; $str .= ">{$i}</option>\n";
} }
$str .= "</select>\n"; $str .= "</select>\n";
@@ -213,44 +235,48 @@ function get_member_level_select($name, $start_id=0, $end_id=10, $selected="", $
// 회원아이디를 SELECT 형식으로 얻음 // 회원아이디를 SELECT 형식으로 얻음
function get_member_id_select($name, $level, $selected="", $event="") function get_member_id_select($name, $level, $selected = "", $event = "")
{ {
global $g5; global $g5;
$sql = " select mb_id from {$g5['member_table']} where mb_level >= '{$level}' "; $sql = " select mb_id from {$g5['member_table']} where mb_level >= '{$level}' ";
$result = sql_query($sql); $result = sql_query($sql);
$str = '<select id="'.$name.'" name="'.$name.'" '.$event.'><option value="">선택안함</option>'; $str = '<select id="' . $name . '" name="' . $name . '" ' . $event . '><option value="">선택안함</option>';
for ($i=0; $row=sql_fetch_array($result); $i++) for ($i = 0; $row = sql_fetch_array($result); $i++) {
{ $str .= '<option value="' . $row['mb_id'] . '"';
$str .= '<option value="'.$row['mb_id'].'"'; if ($row['mb_id'] == $selected) {
if ($row['mb_id'] == $selected) $str .= ' selected'; $str .= ' selected';
$str .= '>'.$row['mb_id'].'</option>'; }
$str .= '>' . $row['mb_id'] . '</option>';
} }
$str .= '</select>'; $str .= '</select>';
return $str; return $str;
} }
// php8 버전 호환 권한 검사 함수 // php8 버전 호환 권한 검사 함수
function auth_check_menu($auth, $sub_menu, $attr, $return=false) { function auth_check_menu($auth, $sub_menu, $attr, $return = false)
{
$check_auth = isset($auth[$sub_menu]) ? $auth[$sub_menu] : ''; $check_auth = isset($auth[$sub_menu]) ? $auth[$sub_menu] : '';
return auth_check($check_auth, $attr, $return); return auth_check($check_auth, $attr, $return);
} }
// 권한 검사 // 권한 검사
function auth_check($auth, $attr, $return=false) function auth_check($auth, $attr, $return = false)
{ {
global $is_admin; global $is_admin;
if ($is_admin == 'super') return; if ($is_admin == 'super') {
return;
}
if (!trim($auth)) { if (!trim($auth)) {
$msg = '이 메뉴에는 접근 권한이 없습니다.\\n\\n접근 권한은 최고관리자만 부여할 수 있습니다.'; $msg = '이 메뉴에는 접근 권한이 없습니다.\\n\\n접근 권한은 최고관리자만 부여할 수 있습니다.';
if($return) if ($return) {
return $msg; return $msg;
else } else {
alert($msg); alert($msg);
}
} }
$attr = strtolower($attr); $attr = strtolower($attr);
@@ -258,44 +284,49 @@ function auth_check($auth, $attr, $return=false)
if (!strstr($auth, $attr)) { if (!strstr($auth, $attr)) {
if ($attr == 'r') { if ($attr == 'r') {
$msg = '읽을 권한이 없습니다.'; $msg = '읽을 권한이 없습니다.';
if($return) if ($return) {
return $msg; return $msg;
else } else {
alert($msg); alert($msg);
}
} else if ($attr == 'w') { } else if ($attr == 'w') {
$msg = '입력, 추가, 생성, 수정 권한이 없습니다.'; $msg = '입력, 추가, 생성, 수정 권한이 없습니다.';
if($return) if ($return) {
return $msg; return $msg;
else } else {
alert($msg); alert($msg);
}
} else if ($attr == 'd') { } else if ($attr == 'd') {
$msg = '삭제 권한이 없습니다.'; $msg = '삭제 권한이 없습니다.';
if($return) if ($return) {
return $msg; return $msg;
else } else {
alert($msg); alert($msg);
}
} else { } else {
$msg = '속성이 잘못 되었습니다.'; $msg = '속성이 잘못 되었습니다.';
if($return) if ($return) {
return $msg; return $msg;
else } else {
alert($msg); alert($msg);
}
} }
} }
} }
// 작업아이콘 출력 // 작업아이콘 출력
function icon($act, $link='', $target='_parent') function icon($act, $link = '', $target = '_parent')
{ {
global $g5; global $g5;
$img = array('입력'=>'insert', '추가'=>'insert', '생성'=>'insert', '수정'=>'modify', '삭제'=>'delete', '이동'=>'move', '그룹'=>'move', '보기'=>'view', '미리보기'=>'view', '복사'=>'copy'); $img = array('입력' => 'insert', '추가' => 'insert', '생성' => 'insert', '수정' => 'modify', '삭제' => 'delete', '이동' => 'move', '그룹' => 'move', '보기' => 'view', '미리보기' => 'view', '복사' => 'copy');
$icon = '<img src="'.G5_ADMIN_PATH.'/img/icon_'.$img[$act].'.gif" title="'.$act.'">'; $icon = '<img src="' . G5_ADMIN_PATH . '/img/icon_' . $img[$act] . '.gif" title="' . $act . '">';
if ($link) if ($link) {
$s = '<a href="'.$link.'">'.$icon.'</a>'; $s = '<a href="' . $link . '">' . $icon . '</a>';
else } else {
$s = $icon; $s = $icon;
}
return $s; return $s;
} }
@@ -307,9 +338,10 @@ function rm_rf($file)
if (file_exists($file)) { if (file_exists($file)) {
if (is_dir($file)) { if (is_dir($file)) {
$handle = opendir($file); $handle = opendir($file);
while($filename = readdir($handle)) { while ($filename = readdir($handle)) {
if ($filename != '.' && $filename != '..') if ($filename != '.' && $filename != '..') {
rm_rf($file.'/'.$filename); rm_rf($file . '/' . $filename);
}
} }
closedir($handle); closedir($handle);
@@ -323,21 +355,21 @@ function rm_rf($file)
} }
// 입력 폼 안내문 // 입력 폼 안내문
function help($help="") function help($help = "")
{ {
global $g5; global $g5;
$str = '<span class="frm_info">'.str_replace("\n", "<br>", $help).'</span>'; $str = '<span class="frm_info">' . str_replace("\n", "<br>", $help) . '</span>';
return $str; return $str;
} }
// 출력순서 // 출력순서
function order_select($fld, $sel='') function order_select($fld, $sel = '')
{ {
$s = '<select name="'.$fld.'" id="'.$fld.'">'; $s = '<select name="' . $fld . '" id="' . $fld . '">';
for ($i=1; $i<=100; $i++) { for ($i = 1; $i <= 100; $i++) {
$s .= '<option value="'.$i.'" '; $s .= '<option value="' . $i . '" ';
if ($sel) { if ($sel) {
if ($i == $sel) { if ($i == $sel) {
$s .= 'selected'; $s .= 'selected';
@@ -347,7 +379,7 @@ function order_select($fld, $sel='')
$s .= 'selected'; $s .= 'selected';
} }
} }
$s .= '>'.$i.'</option>'; $s .= '>' . $i . '</option>';
} }
$s .= '</select>'; $s .= '</select>';
@@ -364,11 +396,12 @@ function get_admin_token()
} }
// 관리자가 자동등록방지를 사용해야 할 경우 // 관리자가 자동등록방지를 사용해야 할 경우
function get_admin_captcha_by($type='get'){ function get_admin_captcha_by($type = 'get')
{
$captcha_name = 'ss_admin_use_captcha'; $captcha_name = 'ss_admin_use_captcha';
if($type === 'remove'){ if ($type === 'remove') {
set_session($captcha_name, ''); set_session($captcha_name, '');
} }
@@ -376,9 +409,10 @@ function get_admin_captcha_by($type='get'){
} }
//input value 에서 xss 공격 filter 역할을 함 ( 반드시 input value='' 타입에만 사용할것 ) //input value 에서 xss 공격 filter 역할을 함 ( 반드시 input value='' 타입에만 사용할것 )
function get_sanitize_input($s, $is_html=false){ function get_sanitize_input($s, $is_html = false)
{
if(!$is_html){ if (!$is_html) {
$s = strip_tags($s); $s = strip_tags($s);
} }
@@ -387,50 +421,51 @@ function get_sanitize_input($s, $is_html=false){
return $s; return $s;
} }
function check_log_folder($log_path, $is_delete=true){ function check_log_folder($log_path, $is_delete = true)
{
if( is_writable($log_path) ){ if (is_writable($log_path)) {
// 아파치 서버인 경우 웹에서 해당 폴더 접근 막기 // 아파치 서버인 경우 웹에서 해당 폴더 접근 막기
$htaccess_file = $log_path.'/.htaccess'; $htaccess_file = $log_path . '/.htaccess';
if ( !file_exists( $htaccess_file ) ) { if (!file_exists($htaccess_file)) {
if ( $handle = @fopen( $htaccess_file, 'w' ) ) { if ($handle = @fopen($htaccess_file, 'w')) {
fwrite( $handle, 'Order deny,allow' . "\n" ); fwrite($handle, 'Order deny,allow' . "\n");
fwrite( $handle, 'Deny from all' . "\n" ); fwrite($handle, 'Deny from all' . "\n");
fclose( $handle ); fclose($handle);
} }
} }
// 아파치 서버인 경우 해당 디렉토리 파일 목록 안보이게 하기 // 아파치 서버인 경우 해당 디렉토리 파일 목록 안보이게 하기
$index_file = $log_path . '/index.php'; $index_file = $log_path . '/index.php';
if ( !file_exists( $index_file ) ) { if (!file_exists($index_file)) {
if ( $handle = @fopen( $index_file, 'w' ) ) { if ($handle = @fopen($index_file, 'w')) {
fwrite( $handle, '' ); fwrite($handle, '');
fclose( $handle ); fclose($handle);
} }
} }
} }
if( $is_delete ) { if ($is_delete) {
try { try {
// txt 파일과 log 파일을 조회하여 30일이 지난 파일은 삭제합니다. // txt 파일과 log 파일을 조회하여 30일이 지난 파일은 삭제합니다.
$txt_files = glob($log_path.'/*.txt'); $txt_files = glob($log_path . '/*.txt');
$log_files = glob($log_path.'/*.log'); $log_files = glob($log_path . '/*.log');
$del_files = array_merge($txt_files, $log_files); $del_files = array_merge($txt_files, $log_files);
if( $del_files && is_array($del_files) ){ if ($del_files && is_array($del_files)) {
foreach ($del_files as $del_file) { foreach ($del_files as $del_file) {
$filetime = filemtime($del_file); $filetime = filemtime($del_file);
// 30일이 지난 파일을 삭제 // 30일이 지난 파일을 삭제
if($filetime && $filetime < (G5_SERVER_TIME - 2592000)) { if ($filetime && $filetime < (G5_SERVER_TIME - 2592000)) {
@unlink($del_file); @unlink($del_file);
} }
} }
} }
} catch(Exception $e) { } catch (Exception $e) {
} }
} }
} }
// POST로 넘어온 토큰과 세션에 저장된 토큰 비교 // POST로 넘어온 토큰과 세션에 저장된 토큰 비교
@@ -439,23 +474,25 @@ function check_admin_token()
$token = get_session('ss_admin_token'); $token = get_session('ss_admin_token');
set_session('ss_admin_token', ''); set_session('ss_admin_token', '');
if(!$token || !$_REQUEST['token'] || $token != $_REQUEST['token']) if (!$token || !$_REQUEST['token'] || $token != $_REQUEST['token']) {
alert('올바른 방법으로 이용해 주십시오.', G5_URL); alert('올바른 방법으로 이용해 주십시오.', G5_URL);
}
return true; return true;
} }
// 관리자 페이지 referer 체크 // 관리자 페이지 referer 체크
function admin_referer_check($return=false) function admin_referer_check($return = false)
{ {
$referer = isset($_SERVER['HTTP_REFERER']) ? trim($_SERVER['HTTP_REFERER']) : ''; $referer = isset($_SERVER['HTTP_REFERER']) ? trim($_SERVER['HTTP_REFERER']) : '';
if(!$referer) { if (!$referer) {
$msg = '정보가 올바르지 않습니다.'; $msg = '정보가 올바르지 않습니다.';
if($return) if ($return) {
return $msg; return $msg;
else } else {
alert($msg, G5_URL); alert($msg, G5_URL);
}
} }
$p = @parse_url($referer); $p = @parse_url($referer);
@@ -463,16 +500,16 @@ function admin_referer_check($return=false)
$host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']); $host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']);
$msg = ''; $msg = '';
if($host != $p['host']) { if ($host != $p['host']) {
$msg = '올바른 방법으로 이용해 주십시오.'; $msg = '올바른 방법으로 이용해 주십시오.';
} }
if( $p['path'] && ! preg_match( '/\/'.preg_quote(G5_ADMIN_DIR).'\//i', $p['path'] ) ){ if ($p['path'] && !preg_match('/\/' . preg_quote(G5_ADMIN_DIR) . '\//i', $p['path'])) {
$msg = '올바른 방법으로 이용해 주십시오'; $msg = '올바른 방법으로 이용해 주십시오';
} }
if( $msg ){ if ($msg) {
if($return) { if ($return) {
return $msg; return $msg;
} else { } else {
alert($msg, G5_URL); alert($msg, G5_URL);
@@ -480,17 +517,22 @@ function admin_referer_check($return=false)
} }
} }
function admin_check_xss_params($params){ function admin_check_xss_params($params)
{
if( ! $params ) return; if (!$params) {
return;
}
foreach( $params as $key=>$value ){ foreach ($params as $key => $value) {
if ( empty($value) ) continue; if (empty($value)) {
continue;
}
if( is_array($value) ){ if (is_array($value)) {
admin_check_xss_params($value); admin_check_xss_params($value);
} else if ( (preg_match('/<\s?[^\>]*\/?\s?>/i', $value) && (preg_match('/script.*?\/script/ius', $value) || preg_match('/[onload|onerror]=.*/ius', $value))) || preg_match('/^(?=.*token\()(?=.*xmlhttprequest\()(?=.*send\().*$/im', $value) || (preg_match('/[onload|onerror|focus]=.*/ius', $value) && preg_match('/(eval|expression|exec|prompt)(\s*)\((.*)\)/ius', $value)) ){ } else if ((preg_match('/<\s?[^\>]*\/?\s?>/i', $value) && (preg_match('/script.*?\/script/ius', $value) || preg_match('/[onload|onerror]=.*/ius', $value))) || preg_match('/^(?=.*token\()(?=.*xmlhttprequest\()(?=.*send\().*$/im', $value) || (preg_match('/[onload|onerror|focus]=.*/ius', $value) && preg_match('/(eval|expression|exec|prompt)(\s*)\((.*)\)/ius', $value))) {
alert('요청 쿼리에 잘못된 스크립트문장이 있습니다.\\nXSS 공격일수도 있습니다.', G5_URL); alert('요청 쿼리에 잘못된 스크립트문장이 있습니다.\\nXSS 공격일수도 있습니다.', G5_URL);
die(); die();
} }
@@ -499,31 +541,38 @@ function admin_check_xss_params($params){
return; return;
} }
function admin_menu_find_by($call, $search_key){ function admin_menu_find_by($call, $search_key)
{
global $menu; global $menu;
static $cache_menu = array(); static $cache_menu = array();
if( empty($cache_menu) ){ if (empty($cache_menu)) {
foreach( $menu as $k1=>$arr1 ){ foreach ($menu as $k1 => $arr1) {
if (empty($arr1) ) continue; if (empty($arr1)) {
foreach( $arr1 as $k2=>$arr2 ){ continue;
if (empty($arr2) ) continue; }
foreach ($arr1 as $k2 => $arr2) {
if (empty($arr2)) {
continue;
}
$menu_key = isset($arr2[3]) ? $arr2[3] : ''; $menu_key = isset($arr2[3]) ? $arr2[3] : '';
if (empty($menu_key) ) continue; if (empty($menu_key)) {
continue;
}
$cache_menu[$menu_key] = array( $cache_menu[$menu_key] = array(
'sub_menu'=>$arr2[0], 'sub_menu' => $arr2[0],
'title'=>$arr2[1], 'title' => $arr2[1],
'link'=>$arr2[2], 'link' => $arr2[2],
); );
} }
} }
} }
if( isset($cache_menu[$call]) && isset($cache_menu[$call][$search_key]) ){ if (isset($cache_menu[$call]) && isset($cache_menu[$call][$search_key])) {
return $cache_menu[$call][$search_key]; return $cache_menu[$call][$search_key];
} }
@@ -531,22 +580,17 @@ function admin_menu_find_by($call, $search_key){
} }
// 접근 권한 검사 // 접근 권한 검사
if (!$member['mb_id']) if (!$member['mb_id']) {
{ alert('로그인 하십시오.', G5_BBS_URL . '/login.php?url=' . urlencode(correct_goto_url(G5_ADMIN_URL)));
alert('로그인 하십시오.', G5_BBS_URL.'/login.php?url=' . urlencode(correct_goto_url(G5_ADMIN_URL))); } else if ($is_admin != 'super') {
}
else if ($is_admin != 'super')
{
$auth = array(); $auth = array();
$sql = " select au_menu, au_auth from {$g5['auth_table']} where mb_id = '{$member['mb_id']}' "; $sql = " select au_menu, au_auth from {$g5['auth_table']} where mb_id = '{$member['mb_id']}' ";
$result = sql_query($sql); $result = sql_query($sql);
for($i=0; $row=sql_fetch_array($result); $i++) for ($i = 0; $row = sql_fetch_array($result); $i++) {
{
$auth[$row['au_menu']] = $row['au_auth']; $auth[$row['au_menu']] = $row['au_auth'];
} }
if (!$i) if (!$i) {
{
alert('최고관리자 또는 관리권한이 있는 회원만 접근 가능합니다.', G5_URL); alert('최고관리자 또는 관리권한이 있는 회원만 접근 가능합니다.', G5_URL);
} }
} }
@@ -557,14 +601,14 @@ if (get_session('ss_mb_key') !== $admin_key) {
session_destroy(); session_destroy();
include_once(G5_LIB_PATH.'/mailer.lib.php'); include_once G5_LIB_PATH . '/mailer.lib.php';
// 메일 알림 // 메일 알림
mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'].' 아이피로 XSS 공격이 있었습니다.<br><br>관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.<br><br>해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.'.G5_URL, 0); mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'] . ' 아이피로 XSS 공격이 있었습니다.<br><br>관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.<br><br>해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.' . G5_URL, 0);
alert_close('정상적으로 로그인하여 접근하시기 바랍니다.'); alert_close('정상적으로 로그인하여 접근하시기 바랍니다.');
} }
if(isset($auth) && is_array($auth)) { if (isset($auth) && is_array($auth)) {
@ksort($auth); @ksort($auth);
} else { } else {
$auth = array(); $auth = array();
@@ -577,33 +621,44 @@ unset($amenu);
$tmp = dir(G5_ADMIN_PATH); $tmp = dir(G5_ADMIN_PATH);
$menu_files = array(); $menu_files = array();
while ($entry = $tmp->read()) { while ($entry = $tmp->read()) {
if (!preg_match('/^admin.menu([0-9]{3}).*\.php$/', $entry, $m)) if (!preg_match('/^admin.menu([0-9]{3}).*\.php$/', $entry, $m)) {
continue; // 파일명이 menu 으로 시작하지 않으면 무시한다. continue; // 파일명이 menu 으로 시작하지 않으면 무시한다.
}
$amenu[$m[1]] = $entry; $amenu[$m[1]] = $entry;
$menu_files[] = G5_ADMIN_PATH.'/'.$entry; $menu_files[] = G5_ADMIN_PATH . '/' . $entry;
} }
@asort($menu_files); @asort($menu_files);
foreach($menu_files as $file){ foreach ($menu_files as $file) {
include_once($file); include_once $file;
} }
@ksort($amenu); @ksort($amenu);
$amenu = run_replace('admin_amenu', $amenu); $amenu = run_replace('admin_amenu', $amenu);
if( isset($menu) && $menu ){ if (isset($menu) && $menu) {
$menu = run_replace('admin_menu', $menu); $menu = run_replace('admin_menu', $menu);
} }
$arr_query = array(); $arr_query = array();
if (isset($sst)) $arr_query[] = 'sst='.$sst; if (isset($sst)) {
if (isset($sod)) $arr_query[] = 'sod='.$sod; $arr_query[] = 'sst=' . $sst;
if (isset($sfl)) $arr_query[] = 'sfl='.$sfl; }
if (isset($stx)) $arr_query[] = 'stx='.$stx; if (isset($sod)) {
if (isset($page)) $arr_query[] = 'page='.$page; $arr_query[] = 'sod=' . $sod;
}
if (isset($sfl)) {
$arr_query[] = 'sfl=' . $sfl;
}
if (isset($stx)) {
$arr_query[] = 'stx=' . $stx;
}
if (isset($page)) {
$arr_query[] = 'page=' . $page;
}
$qstr = implode("&amp;", $arr_query); $qstr = implode("&amp;", $arr_query);
if ( isset($_REQUEST) && $_REQUEST ){ if (isset($_REQUEST) && $_REQUEST) {
if( admin_referer_check(true) ){ if (admin_referer_check(true)) {
admin_check_xss_params($_REQUEST); admin_check_xss_params($_REQUEST);
} }
} }
+18 -18
View File
@@ -1,23 +1,23 @@
<?php <?php
$menu['menu100'] = array ( $menu['menu100'] = array(
array('100000', '환경설정', G5_ADMIN_URL.'/config_form.php', 'config'), array('100000', '환경설정', G5_ADMIN_URL . '/config_form.php', 'config'),
array('100100', '기본환경설정', G5_ADMIN_URL.'/config_form.php', 'cf_basic'), array('100100', '기본환경설정', G5_ADMIN_URL . '/config_form.php', 'cf_basic'),
array('100200', '관리권한설정', G5_ADMIN_URL.'/auth_list.php', 'cf_auth'), array('100200', '관리권한설정', G5_ADMIN_URL . '/auth_list.php', 'cf_auth'),
array('100280', '테마설정', G5_ADMIN_URL.'/theme.php', 'cf_theme', 1), array('100280', '테마설정', G5_ADMIN_URL . '/theme.php', 'cf_theme', 1),
array('100290', '메뉴설정', G5_ADMIN_URL.'/menu_list.php', 'cf_menu', 1), array('100290', '메뉴설정', G5_ADMIN_URL . '/menu_list.php', 'cf_menu', 1),
array('100300', '메일 테스트', G5_ADMIN_URL.'/sendmail_test.php', 'cf_mailtest'), array('100300', '메일 테스트', G5_ADMIN_URL . '/sendmail_test.php', 'cf_mailtest'),
array('100310', '팝업레이어관리', G5_ADMIN_URL.'/newwinlist.php', 'scf_poplayer'), array('100310', '팝업레이어관리', G5_ADMIN_URL . '/newwinlist.php', 'scf_poplayer'),
array('100800', '세션파일 일괄삭제',G5_ADMIN_URL.'/session_file_delete.php', 'cf_session', 1), array('100800', '세션파일 일괄삭제', G5_ADMIN_URL . '/session_file_delete.php', 'cf_session', 1),
array('100900', '캐시파일 일괄삭제',G5_ADMIN_URL.'/cache_file_delete.php', 'cf_cache', 1), array('100900', '캐시파일 일괄삭제', G5_ADMIN_URL . '/cache_file_delete.php', 'cf_cache', 1),
array('100910', '캡챠파일 일괄삭제',G5_ADMIN_URL.'/captcha_file_delete.php', 'cf_captcha', 1), array('100910', '캡챠파일 일괄삭제', G5_ADMIN_URL . '/captcha_file_delete.php', 'cf_captcha', 1),
array('100920', '썸네일파일 일괄삭제',G5_ADMIN_URL.'/thumbnail_file_delete.php', 'cf_thumbnail', 1), array('100920', '썸네일파일 일괄삭제', G5_ADMIN_URL . '/thumbnail_file_delete.php', 'cf_thumbnail', 1),
array('100500', 'phpinfo()', G5_ADMIN_URL.'/phpinfo.php', 'cf_phpinfo') array('100500', 'phpinfo()', G5_ADMIN_URL . '/phpinfo.php', 'cf_phpinfo')
); );
if(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE) { if (version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE) {
$menu['menu100'][] = array('100510', 'Browscap 업데이트', G5_ADMIN_URL.'/browscap.php', 'cf_browscap'); $menu['menu100'][] = array('100510', 'Browscap 업데이트', G5_ADMIN_URL . '/browscap.php', 'cf_browscap');
$menu['menu100'][] = array('100520', '접속로그 변환', G5_ADMIN_URL.'/browscap_convert.php', 'cf_visit_cnvrt'); $menu['menu100'][] = array('100520', '접속로그 변환', G5_ADMIN_URL . '/browscap_convert.php', 'cf_visit_cnvrt');
} }
$menu['menu100'][] = array('100410', 'DB업그레이드', G5_ADMIN_URL.'/dbupgrade.php', 'db_upgrade'); $menu['menu100'][] = array('100410', 'DB업그레이드', G5_ADMIN_URL . '/dbupgrade.php', 'db_upgrade');
$menu['menu100'][] = array('100400', '부가서비스', G5_ADMIN_URL.'/service.php', 'cf_service'); $menu['menu100'][] = array('100400', '부가서비스', G5_ADMIN_URL . '/service.php', 'cf_service');
+9 -9
View File
@@ -1,11 +1,11 @@
<?php <?php
$menu['menu200'] = array ( $menu['menu200'] = array(
array('200000', '회원관리', G5_ADMIN_URL.'/member_list.php', 'member'), array('200000', '회원관리', G5_ADMIN_URL . '/member_list.php', 'member'),
array('200100', '회원관리', G5_ADMIN_URL.'/member_list.php', 'mb_list'), array('200100', '회원관리', G5_ADMIN_URL . '/member_list.php', 'mb_list'),
array('200300', '회원메일발송', G5_ADMIN_URL.'/mail_list.php', 'mb_mail'), array('200300', '회원메일발송', G5_ADMIN_URL . '/mail_list.php', 'mb_mail'),
array('200800', '접속자집계', G5_ADMIN_URL.'/visit_list.php', 'mb_visit', 1), array('200800', '접속자집계', G5_ADMIN_URL . '/visit_list.php', 'mb_visit', 1),
array('200810', '접속자검색', G5_ADMIN_URL.'/visit_search.php', 'mb_search', 1), array('200810', '접속자검색', G5_ADMIN_URL . '/visit_search.php', 'mb_search', 1),
array('200820', '접속자로그삭제', G5_ADMIN_URL.'/visit_delete.php', 'mb_delete', 1), array('200820', '접속자로그삭제', G5_ADMIN_URL . '/visit_delete.php', 'mb_delete', 1),
array('200200', '포인트관리', G5_ADMIN_URL.'/point_list.php', 'mb_point'), array('200200', '포인트관리', G5_ADMIN_URL . '/point_list.php', 'mb_point'),
array('200900', '투표관리', G5_ADMIN_URL.'/poll_list.php', 'mb_poll') array('200900', '투표관리', G5_ADMIN_URL . '/poll_list.php', 'mb_poll')
); );
+10 -10
View File
@@ -1,12 +1,12 @@
<?php <?php
$menu['menu300'] = array ( $menu['menu300'] = array(
array('300000', '게시판관리', ''.G5_ADMIN_URL.'/board_list.php', 'board'), array('300000', '게시판관리', '' . G5_ADMIN_URL . '/board_list.php', 'board'),
array('300100', '게시판관리', ''.G5_ADMIN_URL.'/board_list.php', 'bbs_board'), array('300100', '게시판관리', '' . G5_ADMIN_URL . '/board_list.php', 'bbs_board'),
array('300200', '게시판그룹관리', ''.G5_ADMIN_URL.'/boardgroup_list.php', 'bbs_group'), array('300200', '게시판그룹관리', '' . G5_ADMIN_URL . '/boardgroup_list.php', 'bbs_group'),
array('300300', '인기검색어관리', ''.G5_ADMIN_URL.'/popular_list.php', 'bbs_poplist', 1), array('300300', '인기검색어관리', '' . G5_ADMIN_URL . '/popular_list.php', 'bbs_poplist', 1),
array('300400', '인기검색어순위', ''.G5_ADMIN_URL.'/popular_rank.php', 'bbs_poprank', 1), array('300400', '인기검색어순위', '' . G5_ADMIN_URL . '/popular_rank.php', 'bbs_poprank', 1),
array('300500', '1:1문의설정', ''.G5_ADMIN_URL.'/qa_config.php', 'qa'), array('300500', '1:1문의설정', '' . G5_ADMIN_URL . '/qa_config.php', 'qa'),
array('300600', '내용관리', G5_ADMIN_URL.'/contentlist.php', 'scf_contents', 1), array('300600', '내용관리', G5_ADMIN_URL . '/contentlist.php', 'scf_contents', 1),
array('300700', 'FAQ관리', G5_ADMIN_URL.'/faqmasterlist.php', 'scf_faq', 1), array('300700', 'FAQ관리', G5_ADMIN_URL . '/faqmasterlist.php', 'scf_faq', 1),
array('300820', '글,댓글 현황', G5_ADMIN_URL.'/write_count.php', 'scf_write_count'), array('300820', '글,댓글 현황', G5_ADMIN_URL . '/write_count.php', 'scf_write_count'),
); );
+20 -18
View File
@@ -1,21 +1,23 @@
<?php <?php
if (!defined('G5_USE_SHOP') || !G5_USE_SHOP) return; if (!defined('G5_USE_SHOP') || !G5_USE_SHOP) {
return;
}
$menu['menu400'] = array ( $menu['menu400'] = array(
array('400000', '쇼핑몰관리', G5_ADMIN_URL.'/shop_admin/', 'shop_config'), array('400000', '쇼핑몰관리', G5_ADMIN_URL . '/shop_admin/', 'shop_config'),
array('400010', '쇼핑몰현황', G5_ADMIN_URL.'/shop_admin/', 'shop_index'), array('400010', '쇼핑몰현황', G5_ADMIN_URL . '/shop_admin/', 'shop_index'),
array('400100', '쇼핑몰설정', G5_ADMIN_URL.'/shop_admin/configform.php', 'scf_config'), array('400100', '쇼핑몰설정', G5_ADMIN_URL . '/shop_admin/configform.php', 'scf_config'),
array('400400', '주문내역', G5_ADMIN_URL.'/shop_admin/orderlist.php', 'scf_order', 1), array('400400', '주문내역', G5_ADMIN_URL . '/shop_admin/orderlist.php', 'scf_order', 1),
array('400440', '개인결제관리', G5_ADMIN_URL.'/shop_admin/personalpaylist.php', 'scf_personalpay', 1), array('400440', '개인결제관리', G5_ADMIN_URL . '/shop_admin/personalpaylist.php', 'scf_personalpay', 1),
array('400200', '분류관리', G5_ADMIN_URL.'/shop_admin/categorylist.php', 'scf_cate'), array('400200', '분류관리', G5_ADMIN_URL . '/shop_admin/categorylist.php', 'scf_cate'),
array('400300', '상품관리', G5_ADMIN_URL.'/shop_admin/itemlist.php', 'scf_item'), array('400300', '상품관리', G5_ADMIN_URL . '/shop_admin/itemlist.php', 'scf_item'),
array('400660', '상품문의', G5_ADMIN_URL.'/shop_admin/itemqalist.php', 'scf_item_qna'), array('400660', '상품문의', G5_ADMIN_URL . '/shop_admin/itemqalist.php', 'scf_item_qna'),
array('400650', '사용후기', G5_ADMIN_URL.'/shop_admin/itemuselist.php', 'scf_ps'), array('400650', '사용후기', G5_ADMIN_URL . '/shop_admin/itemuselist.php', 'scf_ps'),
array('400620', '상품재고관리', G5_ADMIN_URL.'/shop_admin/itemstocklist.php', 'scf_item_stock'), array('400620', '상품재고관리', G5_ADMIN_URL . '/shop_admin/itemstocklist.php', 'scf_item_stock'),
array('400610', '상품유형관리', G5_ADMIN_URL.'/shop_admin/itemtypelist.php', 'scf_item_type'), array('400610', '상품유형관리', G5_ADMIN_URL . '/shop_admin/itemtypelist.php', 'scf_item_type'),
array('400500', '상품옵션재고관리', G5_ADMIN_URL.'/shop_admin/optionstocklist.php', 'scf_item_option'), array('400500', '상품옵션재고관리', G5_ADMIN_URL . '/shop_admin/optionstocklist.php', 'scf_item_option'),
array('400800', '쿠폰관리', G5_ADMIN_URL.'/shop_admin/couponlist.php', 'scf_coupon'), array('400800', '쿠폰관리', G5_ADMIN_URL . '/shop_admin/couponlist.php', 'scf_coupon'),
array('400810', '쿠폰존관리', G5_ADMIN_URL.'/shop_admin/couponzonelist.php', 'scf_coupon_zone'), array('400810', '쿠폰존관리', G5_ADMIN_URL . '/shop_admin/couponzonelist.php', 'scf_coupon_zone'),
array('400750', '추가배송비관리', G5_ADMIN_URL.'/shop_admin/sendcostlist.php', 'scf_sendcost', 1), array('400750', '추가배송비관리', G5_ADMIN_URL . '/shop_admin/sendcostlist.php', 'scf_sendcost', 1),
array('400410', '미완료주문', G5_ADMIN_URL.'/shop_admin/inorderlist.php', 'scf_inorder', 1), array('400410', '미완료주문', G5_ADMIN_URL . '/shop_admin/inorderlist.php', 'scf_inorder', 1),
); );
+14 -12
View File
@@ -1,15 +1,17 @@
<?php <?php
if (!defined('G5_USE_SHOP') || !G5_USE_SHOP) return; if (!defined('G5_USE_SHOP') || !G5_USE_SHOP) {
return;
}
$menu['menu500'] = array ( $menu['menu500'] = array(
array('500000', '쇼핑몰현황/기타', G5_ADMIN_URL.'/shop_admin/itemsellrank.php', 'shop_stats'), array('500000', '쇼핑몰현황/기타', G5_ADMIN_URL . '/shop_admin/itemsellrank.php', 'shop_stats'),
array('500110', '매출현황', G5_ADMIN_URL.'/shop_admin/sale1.php', 'sst_order_stats'), array('500110', '매출현황', G5_ADMIN_URL . '/shop_admin/sale1.php', 'sst_order_stats'),
array('500100', '상품판매순위', G5_ADMIN_URL.'/shop_admin/itemsellrank.php', 'sst_rank'), array('500100', '상품판매순위', G5_ADMIN_URL . '/shop_admin/itemsellrank.php', 'sst_rank'),
array('500120', '주문내역출력', G5_ADMIN_URL.'/shop_admin/orderprint.php', 'sst_print_order', 1), array('500120', '주문내역출력', G5_ADMIN_URL . '/shop_admin/orderprint.php', 'sst_print_order', 1),
array('500400', '재입고SMS알림', G5_ADMIN_URL.'/shop_admin/itemstocksms.php', 'sst_stock_sms', 1), array('500400', '재입고SMS알림', G5_ADMIN_URL . '/shop_admin/itemstocksms.php', 'sst_stock_sms', 1),
array('500300', '이벤트관리', G5_ADMIN_URL.'/shop_admin/itemevent.php', 'scf_event'), array('500300', '이벤트관리', G5_ADMIN_URL . '/shop_admin/itemevent.php', 'scf_event'),
array('500310', '이벤트일괄처리', G5_ADMIN_URL.'/shop_admin/itemeventlist.php', 'scf_event_mng'), array('500310', '이벤트일괄처리', G5_ADMIN_URL . '/shop_admin/itemeventlist.php', 'scf_event_mng'),
array('500500', '배너관리', G5_ADMIN_URL.'/shop_admin/bannerlist.php', 'scf_banner', 1), array('500500', '배너관리', G5_ADMIN_URL . '/shop_admin/bannerlist.php', 'scf_banner', 1),
array('500140', '보관함현황', G5_ADMIN_URL.'/shop_admin/wishlist.php', 'sst_wish'), array('500140', '보관함현황', G5_ADMIN_URL . '/shop_admin/wishlist.php', 'sst_wish'),
array('500210', '가격비교사이트', G5_ADMIN_URL.'/shop_admin/price.php', 'sst_compare', 1) array('500210', '가격비교사이트', G5_ADMIN_URL . '/shop_admin/price.php', 'sst_compare', 1)
); );
+12 -12
View File
@@ -1,14 +1,14 @@
<?php <?php
$menu["menu900"] = array ( $menu["menu900"] = array(
array('900000', 'SMS 관리', ''.G5_SMS5_ADMIN_URL.'/config.php', 'sms5'), array('900000', 'SMS 관리', '' . G5_SMS5_ADMIN_URL . '/config.php', 'sms5'),
array('900100', 'SMS 기본설정', ''.G5_SMS5_ADMIN_URL.'/config.php', 'sms5_config'), array('900100', 'SMS 기본설정', '' . G5_SMS5_ADMIN_URL . '/config.php', 'sms5_config'),
array('900200', '회원정보업데이트', ''.G5_SMS5_ADMIN_URL.'/member_update.php', 'sms5_mb_update'), array('900200', '회원정보업데이트', '' . G5_SMS5_ADMIN_URL . '/member_update.php', 'sms5_mb_update'),
array('900300', '문자 보내기', ''.G5_SMS5_ADMIN_URL.'/sms_write.php', 'sms_write'), array('900300', '문자 보내기', '' . G5_SMS5_ADMIN_URL . '/sms_write.php', 'sms_write'),
array('900400', '전송내역-건별', ''.G5_SMS5_ADMIN_URL.'/history_list.php', 'sms_history' , 1), array('900400', '전송내역-건별', '' . G5_SMS5_ADMIN_URL . '/history_list.php', 'sms_history', 1),
array('900410', '전송내역-번호별', ''.G5_SMS5_ADMIN_URL.'/history_num.php', 'sms_history_num' , 1), array('900410', '전송내역-번호별', '' . G5_SMS5_ADMIN_URL . '/history_num.php', 'sms_history_num', 1),
array('900500', '이모티콘 그룹', ''.G5_SMS5_ADMIN_URL.'/form_group.php' , 'emoticon_group'), array('900500', '이모티콘 그룹', '' . G5_SMS5_ADMIN_URL . '/form_group.php', 'emoticon_group'),
array('900600', '이모티콘 관리', ''.G5_SMS5_ADMIN_URL.'/form_list.php', 'emoticon_list'), array('900600', '이모티콘 관리', '' . G5_SMS5_ADMIN_URL . '/form_list.php', 'emoticon_list'),
array('900700', '휴대폰번호 그룹', ''.G5_SMS5_ADMIN_URL.'/num_group.php' , 'hp_group', 1), array('900700', '휴대폰번호 그룹', '' . G5_SMS5_ADMIN_URL . '/num_group.php', 'hp_group', 1),
array('900800', '휴대폰번호 관리', ''.G5_SMS5_ADMIN_URL.'/num_book.php', 'hp_manage', 1), array('900800', '휴대폰번호 관리', '' . G5_SMS5_ADMIN_URL . '/num_book.php', 'hp_manage', 1),
array('900900', '휴대폰번호 파일', ''.G5_SMS5_ADMIN_URL.'/num_book_file.php' , 'hp_file', 1) array('900900', '휴대폰번호 파일', '' . G5_SMS5_ADMIN_URL . '/num_book_file.php', 'hp_file', 1)
); );
+113 -109
View File
@@ -1,31 +1,37 @@
<?php <?php
if (!defined('_GNUBOARD_')) exit; if (!defined('_GNUBOARD_')) {
exit;
}
$print_version = defined('G5_YOUNGCART_VER') ? 'YoungCart Version '.G5_YOUNGCART_VER : 'Version '.G5_GNUBOARD_VER; // 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전이 통합됨에 따라 그누보드 버전만 표시
// $print_version = defined('G5_YOUNGCART_VER') ? 'YoungCart Version '.G5_YOUNGCART_VER : 'Version '.G5_GNUBOARD_VER;
$print_version = 'Version ' . G5_GNUBOARD_VER;
?> ?>
<noscript> <noscript>
<p> <p>
귀하께서 사용하시는 브라우저는 현재 <strong>자바스크립트를 사용하지 않음</strong>으로 설정되어 있습니다.<br> 귀하께서 사용하시는 브라우저는 현재 <strong>자바스크립트를 사용하지 않음</strong>으로 설정되어 있습니다.<br>
<strong>자바스크립트를 사용하지 않음</strong>으로 설정하신 경우는 수정이나 삭제시 별도의 경고창이 나오지 않으므로 이점 주의하시기 바랍니다. <strong>자바스크립트를 사용하지 않음</strong>으로 설정하신 경우는 수정이나 삭제시 별도의 경고창이 나오지 않으므로 이점 주의하시기 바랍니다.
</p> </p>
</noscript> </noscript>
</div> </div>
<footer id="ft"> <footer id="ft">
<p> <p>
Copyright &copy; <?php echo $_SERVER['HTTP_HOST']; ?>. All rights reserved. <?php echo $print_version; ?><br> Copyright &copy; <?php echo $_SERVER['HTTP_HOST']; ?>. All rights reserved. <?php echo $print_version; ?><br>
<button type="button" class="scroll_top"><span class="top_img"></span><span class="top_txt">TOP</span></button> <button type="button" class="scroll_top"><span class="top_img"></span><span class="top_txt">TOP</span></button>
</p> </p>
</footer> </footer>
</div> </div>
</div> </div>
<script> <script>
$(".scroll_top").click(function(){ $(".scroll_top").click(function() {
$("body,html").animate({scrollTop:0},400); $("body,html").animate({
}) scrollTop: 0
}, 400);
})
</script> </script>
<!-- <p>실행시간 : <?php echo get_microtime() - $begin_time; ?> --> <!-- <p>실행시간 : <?php echo get_microtime() - $begin_time; ?> -->
@@ -33,121 +39,119 @@ $(".scroll_top").click(function(){
<script src="<?php echo G5_ADMIN_URL ?>/admin.js?ver=<?php echo G5_JS_VER; ?>"></script> <script src="<?php echo G5_ADMIN_URL ?>/admin.js?ver=<?php echo G5_JS_VER; ?>"></script>
<script src="<?php echo G5_JS_URL ?>/jquery.anchorScroll.js?ver=<?php echo G5_JS_VER; ?>"></script> <script src="<?php echo G5_JS_URL ?>/jquery.anchorScroll.js?ver=<?php echo G5_JS_VER; ?>"></script>
<script> <script>
$(function(){ $(function() {
var admin_head_height = $("#hd_top").height() + $("#container_title").height() + 5; var admin_head_height = $("#hd_top").height() + $("#container_title").height() + 5;
$("a[href^='#']").anchorScroll({ $("a[href^='#']").anchorScroll({
scrollSpeed: 0, // scroll speed scrollSpeed: 0, // scroll speed
offsetTop: admin_head_height, // offset for fixed top bars (defaults to 0) offsetTop: admin_head_height, // offset for fixed top bars (defaults to 0)
onScroll: function () { onScroll: function() {
// callback on scroll start // callback on scroll start
}, },
scrollEnd: function () { scrollEnd: function() {
// callback on scroll end // callback on scroll end
} }
}); });
var hide_menu = false; var hide_menu = false;
var mouse_event = false; var mouse_event = false;
var oldX = oldY = 0; var oldX = oldY = 0;
$(document).mousemove(function(e) { $(document).mousemove(function(e) {
if(oldX == 0) { if (oldX == 0) {
oldX = e.pageX; oldX = e.pageX;
oldY = e.pageY; oldY = e.pageY;
} }
if(oldX != e.pageX || oldY != e.pageY) { if (oldX != e.pageX || oldY != e.pageY) {
mouse_event = true; mouse_event = true;
} }
}); });
// 주메뉴 // 주메뉴
var $gnb = $(".gnb_1dli > a"); var $gnb = $(".gnb_1dli > a");
$gnb.mouseover(function() { $gnb.mouseover(function() {
if(mouse_event) { if (mouse_event) {
$(".gnb_1dli").removeClass("gnb_1dli_over gnb_1dli_over2 gnb_1dli_on");
$(this).parent().addClass("gnb_1dli_over gnb_1dli_on");
menu_rearrange($(this).parent());
hide_menu = false;
}
});
$gnb.mouseout(function() {
hide_menu = true;
});
$(".gnb_2dli").mouseover(function() {
hide_menu = false;
});
$(".gnb_2dli").mouseout(function() {
hide_menu = true;
});
$gnb.focusin(function() {
$(".gnb_1dli").removeClass("gnb_1dli_over gnb_1dli_over2 gnb_1dli_on"); $(".gnb_1dli").removeClass("gnb_1dli_over gnb_1dli_over2 gnb_1dli_on");
$(this).parent().addClass("gnb_1dli_over gnb_1dli_on"); $(this).parent().addClass("gnb_1dli_over gnb_1dli_on");
menu_rearrange($(this).parent()); menu_rearrange($(this).parent());
hide_menu = false; hide_menu = false;
} });
});
$gnb.mouseout(function() { $gnb.focusout(function() {
hide_menu = true; hide_menu = true;
}); });
$(".gnb_2dli").mouseover(function() { $(".gnb_2da").focusin(function() {
hide_menu = false; $(".gnb_1dli").removeClass("gnb_1dli_over gnb_1dli_over2 gnb_1dli_on");
}); var $gnb_li = $(this).closest(".gnb_1dli").addClass("gnb_1dli_over gnb_1dli_on");
menu_rearrange($(this).closest(".gnb_1dli"));
hide_menu = false;
});
$(".gnb_2dli").mouseout(function() { $(".gnb_2da").focusout(function() {
hide_menu = true; hide_menu = true;
}); });
$gnb.focusin(function() { $('#gnb_1dul>li').bind('mouseleave', function() {
$(".gnb_1dli").removeClass("gnb_1dli_over gnb_1dli_over2 gnb_1dli_on");
$(this).parent().addClass("gnb_1dli_over gnb_1dli_on");
menu_rearrange($(this).parent());
hide_menu = false;
});
$gnb.focusout(function() {
hide_menu = true;
});
$(".gnb_2da").focusin(function() {
$(".gnb_1dli").removeClass("gnb_1dli_over gnb_1dli_over2 gnb_1dli_on");
var $gnb_li = $(this).closest(".gnb_1dli").addClass("gnb_1dli_over gnb_1dli_on");
menu_rearrange($(this).closest(".gnb_1dli"));
hide_menu = false;
});
$(".gnb_2da").focusout(function() {
hide_menu = true;
});
$('#gnb_1dul>li').bind('mouseleave',function(){
submenu_hide();
});
$(document).bind('click focusin',function(){
if(hide_menu) {
submenu_hide(); submenu_hide();
});
$(document).bind('click focusin', function() {
if (hide_menu) {
submenu_hide();
}
});
// 폰트 리사이즈 쿠키있으면 실행
var font_resize_act = get_cookie("ck_font_resize_act");
if (font_resize_act != "") {
font_resize("container", font_resize_act);
} }
}); });
// 폰트 리사이즈 쿠키있으면 실행 function submenu_hide() {
var font_resize_act = get_cookie("ck_font_resize_act"); $(".gnb_1dli").removeClass("gnb_1dli_over gnb_1dli_over2 gnb_1dli_on");
if(font_resize_act != "") {
font_resize("container", font_resize_act);
} }
});
function submenu_hide() { function menu_rearrange(el) {
$(".gnb_1dli").removeClass("gnb_1dli_over gnb_1dli_over2 gnb_1dli_on"); var width = $("#gnb_1dul").width();
} var left = w1 = w2 = 0;
var idx = $(".gnb_1dli").index(el);
function menu_rearrange(el) for (i = 0; i <= idx; i++) {
{ w1 = $(".gnb_1dli:eq(" + i + ")").outerWidth();
var width = $("#gnb_1dul").width(); w2 = $(".gnb_2dli > a:eq(" + i + ")").outerWidth(true);
var left = w1 = w2 = 0;
var idx = $(".gnb_1dli").index(el);
for(i=0; i<=idx; i++) { if ((left + w2) > width) {
w1 = $(".gnb_1dli:eq("+i+")").outerWidth(); el.removeClass("gnb_1dli_over").addClass("gnb_1dli_over2");
w2 = $(".gnb_2dli > a:eq("+i+")").outerWidth(true); }
if((left + w2) > width) { left += w1;
el.removeClass("gnb_1dli_over").addClass("gnb_1dli_over2");
} }
left += w1;
} }
}
</script> </script>
<?php <?php
include_once(G5_PATH.'/tail.sub.php'); require_once G5_PATH . '/tail.sub.php';
+5 -5
View File
@@ -1,13 +1,13 @@
<?php <?php
include_once('./_common.php'); require_once './_common.php';
include_once(G5_LIB_PATH.'/json.lib.php');
set_session('ss_admin_token', ''); set_session('ss_admin_token', '');
$error = admin_referer_check(true); $error = admin_referer_check(true);
if($error) if ($error) {
die(json_encode(array('error'=>$error, 'url'=>G5_URL))); die(json_encode(array('error' => $error, 'url' => G5_URL)));
}
$token = get_admin_token(); $token = get_admin_token();
die(json_encode(array('error'=>'', 'token'=>$token, 'url'=>''))); die(json_encode(array('error' => '', 'token' => $token, 'url' => '')));
+2 -2
View File
@@ -1,6 +1,6 @@
<?php <?php
include_once('./_common.php'); require_once './_common.php';
if( isset($_POST['admin_use_captcha']) ){ if (isset($_POST['admin_use_captcha'])) {
set_session('ss_admin_use_captcha', true); set_session('ss_admin_use_captcha', true);
} }
+184 -181
View File
@@ -1,9 +1,10 @@
<?php <?php
$sub_menu = "100200"; $sub_menu = "100200";
include_once('./_common.php'); require_once './_common.php';
if ($is_admin != 'super') if ($is_admin != 'super') {
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
}
$sql_common = " from {$g5['auth_table']} a left join {$g5['member_table']} b on (a.mb_id=b.mb_id) "; $sql_common = " from {$g5['auth_table']} a left join {$g5['member_table']} b on (a.mb_id=b.mb_id) ";
@@ -11,7 +12,7 @@ $sql_search = " where (1) ";
if ($stx) { if ($stx) {
$sql_search .= " and ( "; $sql_search .= " and ( ";
switch ($sfl) { switch ($sfl) {
default : default:
$sql_search .= " ({$sfl} like '%{$stx}%') "; $sql_search .= " ({$sfl} like '%{$stx}%') ";
break; break;
} }
@@ -33,7 +34,9 @@ $total_count = $row['cnt'];
$rows = $config['cf_page_rows']; $rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산 $total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지) if ($page < 1) {
$page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
}
$from_record = ($page - 1) * $rows; // 시작 열을 구함 $from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select * $sql = " select *
@@ -43,10 +46,10 @@ $sql = " select *
limit {$from_record}, {$rows} "; limit {$from_record}, {$rows} ";
$result = sql_query($sql); $result = sql_query($sql);
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall btn_ov02">전체목록</a>'; $listall = '<a href="' . $_SERVER['SCRIPT_NAME'] . '" class="ov_listall btn_ov02">전체목록</a>';
$g5['title'] = "관리권한설정"; $g5['title'] = "관리권한설정";
include_once('./admin.head.php'); require_once './admin.head.php';
$colspan = 5; $colspan = 5;
?> ?>
@@ -57,213 +60,213 @@ $colspan = 5;
</div> </div>
<form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get"> <form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get">
<input type="hidden" name="sfl" value="a.mb_id" id="sfl"> <input type="hidden" name="sfl" value="a.mb_id" id="sfl">
<label for="stx" class="sound_only">회원아이디<strong class="sound_only"> 필수</strong></label> <label for="stx" class="sound_only">회원아이디<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input"> <input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input">
<input type="submit" value="검색" id="fsearch_submit" class="btn_submit"> <input type="submit" value="검색" id="fsearch_submit" class="btn_submit">
</form> </form>
<form name="fauthlist" id="fauthlist" method="post" action="./auth_list_delete.php" onsubmit="return fauthlist_submit(this);"> <form name="fauthlist" id="fauthlist" method="post" action="./auth_list_delete.php" onsubmit="return fauthlist_submit(this);">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div class="tbl_head01 tbl_wrap">
<table>
<caption><?php echo $g5['title']; ?> 목록</caption>
<thead>
<tr>
<th scope="col">
<label for="chkall" class="sound_only">현재 페이지 회원 전체</label>
<input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)">
</th>
<th scope="col"><?php echo subject_sort_link('a.mb_id') ?>회원아이디</a></th>
<th scope="col"><?php echo subject_sort_link('mb_nick') ?>닉네임</a></th>
<th scope="col">메뉴</th>
<th scope="col">권한</th>
</tr>
</thead>
<tbody>
<?php
$count = 0;
for ($i = 0; $row = sql_fetch_array($result); $i++) {
$is_continue = false;
// 회원아이디가 없는 메뉴는 삭제함
if ($row['mb_id'] == '' && $row['mb_nick'] == '') {
sql_query(" delete from {$g5['auth_table']} where au_menu = '{$row['au_menu']}' ");
$is_continue = true;
}
// 메뉴번호가 바뀌는 경우에 현재 없는 저장된 메뉴는 삭제함
if (!isset($auth_menu[$row['au_menu']])) {
sql_query(" delete from {$g5['auth_table']} where au_menu = '{$row['au_menu']}' ");
$is_continue = true;
}
if ($is_continue) {
continue;
}
$mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
$bg = 'bg' . ($i % 2);
?>
<tr class="<?php echo $bg; ?>">
<td class="td_chk">
<input type="hidden" name="au_menu[<?php echo $i ?>]" value="<?php echo $row['au_menu'] ?>">
<input type="hidden" name="mb_id[<?php echo $i ?>]" value="<?php echo $row['mb_id'] ?>">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['mb_nick'] ?>님 권한</label>
<input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
</td>
<td class="td_mbid"><a href="?sfl=a.mb_id&amp;stx=<?php echo $row['mb_id'] ?>"><?php echo $row['mb_id'] ?></a></td>
<td class="td_auth_mbnick"><?php echo $mb_nick ?></td>
<td class="td_menu">
<?php echo $row['au_menu'] ?>
<?php echo $auth_menu[$row['au_menu']] ?>
</td>
<td class="td_auth"><?php echo $row['au_auth'] ?></td>
</tr>
<?php
$count++;
}
if ($count == 0) {
echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</tbody>
</table>
</div>
<div class="btn_list01 btn_list">
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value" class="btn btn_02">
</div>
<div class="tbl_head01 tbl_wrap">
<table>
<caption><?php echo $g5['title']; ?> 목록</caption>
<thead>
<tr>
<th scope="col">
<label for="chkall" class="sound_only">현재 페이지 회원 전체</label>
<input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)">
</th>
<th scope="col"><?php echo subject_sort_link('a.mb_id') ?>회원아이디</a></th>
<th scope="col"><?php echo subject_sort_link('mb_nick') ?>닉네임</a></th>
<th scope="col">메뉴</th>
<th scope="col">권한</th>
</tr>
</thead>
<tbody>
<?php <?php
$count = 0; //if (isset($stx))
for ($i=0; $row=sql_fetch_array($result); $i++) // echo '<script>document.fsearch.sfl.value = "'.$sfl.'";</script>'."\n";
{
$is_continue = false;
// 회원아이디가 없는 메뉴는 삭제함
if($row['mb_id'] == '' && $row['mb_nick'] == '') {
sql_query(" delete from {$g5['auth_table']} where au_menu = '{$row['au_menu']}' ");
$is_continue = true;
}
// 메뉴번호가 바뀌는 경우에 현재 없는 저장된 메뉴는 삭제함 if (strstr($sfl, 'mb_id')) {
if (!isset($auth_menu[$row['au_menu']])) $mb_id = $stx;
{ } else {
sql_query(" delete from {$g5['auth_table']} where au_menu = '{$row['au_menu']}' "); $mb_id = '';
$is_continue = true;
}
if($is_continue)
continue;
$mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
$bg = 'bg'.($i%2);
?>
<tr class="<?php echo $bg; ?>">
<td class="td_chk">
<input type="hidden" name="au_menu[<?php echo $i ?>]" value="<?php echo $row['au_menu'] ?>">
<input type="hidden" name="mb_id[<?php echo $i ?>]" value="<?php echo $row['mb_id'] ?>">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['mb_nick'] ?>님 권한</label>
<input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
</td>
<td class="td_mbid"><a href="?sfl=a.mb_id&amp;stx=<?php echo $row['mb_id'] ?>"><?php echo $row['mb_id'] ?></a></td>
<td class="td_auth_mbnick"><?php echo $mb_nick ?></td>
<td class="td_menu">
<?php echo $row['au_menu'] ?>
<?php echo $auth_menu[$row['au_menu']] ?>
</td>
<td class="td_auth"><?php echo $row['au_auth'] ?></td>
</tr>
<?php
$count++;
} }
if ($count == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?> ?>
</tbody>
</table>
</div>
<div class="btn_list01 btn_list">
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value" class="btn btn_02">
</div>
<?php
//if (isset($stx))
// echo '<script>document.fsearch.sfl.value = "'.$sfl.'";</script>'."\n";
if (strstr($sfl, 'mb_id'))
$mb_id = $stx;
else
$mb_id = '';
?>
</form> </form>
<?php <?php
$pagelist = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'].'?'.$qstr.'&amp;page='); $pagelist = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'] . '?' . $qstr . '&amp;page=');
echo $pagelist; echo $pagelist;
?> ?>
<form name="fauthlist2" id="fauthlist2" action="./auth_update.php" method="post" autocomplete="off" onsubmit="return fauth_add_submit(this);"> <form name="fauthlist2" id="fauthlist2" action="./auth_update.php" method="post" autocomplete="off" onsubmit="return fauth_add_submit(this);">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<section id="add_admin"> <section id="add_admin">
<h2 class="h2_frm">관리권한 추가</h2> <h2 class="h2_frm">관리권한 추가</h2>
<div class="local_desc01 local_desc"> <div class="local_desc01 local_desc">
<p> <p>
다음 양식에서 회원에게 관리권한을 부여하실 수 있습니다.<br> 다음 양식에서 회원에게 관리권한을 부여하실 수 있습니다.<br>
권한 <strong>r</strong>은 읽기권한, <strong>w</strong>는 쓰기권한, <strong>d</strong>는 삭제권한입니다. 권한 <strong>r</strong>은 읽기권한, <strong>w</strong>는 쓰기권한, <strong>d</strong>는 삭제권한입니다.
</p> </p>
</div> </div>
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<colgroup> <colgroup>
<col class="grid_4"> <col class="grid_4">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="mb_id">회원아이디<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="mb_id">회원아이디<strong class="sound_only">필수</strong></label></th>
<td> <td>
<strong id="msg_mb_id" class="msg_sound_only"></strong> <strong id="msg_mb_id" class="msg_sound_only"></strong>
<input type="text" name="mb_id" value="<?php echo $mb_id ?>" id="mb_id" required class="required frm_input"> <input type="text" name="mb_id" value="<?php echo $mb_id ?>" id="mb_id" required class="required frm_input">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="au_menu">접근가능메뉴<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="au_menu">접근가능메뉴<strong class="sound_only">필수</strong></label></th>
<td> <td>
<select id="au_menu" name="au_menu" required class="required"> <select id="au_menu" name="au_menu" required class="required">
<option value=''>선택하세요</option> <option value=''>선택하세요</option>
<?php <?php
foreach($auth_menu as $key=>$value) foreach ($auth_menu as $key => $value) {
{ if (!(substr($key, -3) == '000' || $key == '-' || !$key)) {
if (!(substr($key, -3) == '000' || $key == '-' || !$key)) echo '<option value="' . $key . '">' . $key . ' ' . $value . '</option>';
echo '<option value="'.$key.'">'.$key.' '.$value.'</option>'; }
} }
?> ?>
</select> </select>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row">권한지정</th> <th scope="row">권한지정</th>
<td> <td>
<input type="checkbox" name="r" value="r" id="r" checked> <input type="checkbox" name="r" value="r" id="r" checked>
<label for="r">r (읽기)</label> <label for="r">r (읽기)</label>
<input type="checkbox" name="w" value="w" id="w"> <input type="checkbox" name="w" value="w" id="w">
<label for="w">w (쓰기)</label> <label for="w">w (쓰기)</label>
<input type="checkbox" name="d" value="d" id="d"> <input type="checkbox" name="d" value="d" id="d">
<label for="d">d (삭제)</label> <label for="d">d (삭제)</label>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row">자동등록방지</th> <th scope="row">자동등록방지</th>
<td> <td>
<?php <?php
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php'); require_once G5_CAPTCHA_PATH . '/captcha.lib.php';
$captcha_html = captcha_html(); $captcha_html = captcha_html();
$captcha_js = chk_captcha_js(); $captcha_js = chk_captcha_js();
echo $captcha_html; echo $captcha_html;
?> ?>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="btn_confirm01 btn_confirm"> <div class="btn_confirm01 btn_confirm">
<input type="submit" value="추가" class="btn_submit btn"> <input type="submit" value="추가" class="btn_submit btn">
</div> </div>
</section> </section>
</form> </form>
<script> <script>
function fauth_add_submit(f){ function fauth_add_submit(f) {
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?> <?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
return true; return true;
}
function fauthlist_submit(f)
{
if (!is_checked("chk[]")) {
alert(document.pressed+" 하실 항목을 하나 이상 선택하세요.");
return false;
} }
if(document.pressed == "선택삭제") { function fauthlist_submit(f) {
if(!confirm("선택한 자료를 정말 삭제하시겠습니까?")) { if (!is_checked("chk[]")) {
alert(document.pressed + " 하실 항목을 하나 이상 선택하세요.");
return false; return false;
} }
}
return true; if (document.pressed == "선택삭제") {
} if (!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false;
}
}
return true;
}
</script> </script>
<?php <?php
include_once ('./admin.tail.php'); require_once './admin.tail.php';
+10 -9
View File
@@ -1,36 +1,37 @@
<?php <?php
$sub_menu = "100200"; $sub_menu = "100200";
include_once('./_common.php'); require_once './_common.php';
check_demo(); check_demo();
if ($is_admin != 'super') if ($is_admin != 'super') {
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
}
check_admin_token(); check_admin_token();
$count = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0; $count = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0;
$post_act_button = isset($_POST['act_button']) ? clean_xss_tags($_POST['act_button'], 1, 1) : ''; $post_act_button = isset($_POST['act_button']) ? clean_xss_tags($_POST['act_button'], 1, 1) : '';
if (!$count) if (!$count) {
alert($_POST['act_button']." 하실 항목을 하나 이상 체크하세요."); alert($_POST['act_button'] . " 하실 항목을 하나 이상 체크하세요.");
}
if ( (isset($_POST['mb_id']) && ! is_array($_POST['mb_id'])) || (isset($_POST['au_menu']) && ! is_array($_POST['au_menu'])) ){ if ((isset($_POST['mb_id']) && !is_array($_POST['mb_id'])) || (isset($_POST['au_menu']) && !is_array($_POST['au_menu']))) {
alert("잘못된 요청입니다."); alert("잘못된 요청입니다.");
} }
for ($i=0; $i<$count; $i++) for ($i = 0; $i < $count; $i++) {
{
// 실제 번호를 넘김 // 실제 번호를 넘김
$k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0; $k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0;
$mb_id = isset($_POST['mb_id'][$k]) ? preg_replace('/[^a-zA-Z0-9_]/', '', $_POST['mb_id'][$k]) : ''; $mb_id = isset($_POST['mb_id'][$k]) ? preg_replace('/[^a-zA-Z0-9_]/', '', $_POST['mb_id'][$k]) : '';
$au_menu = isset($_POST['au_menu'][$k]) ? preg_replace('/[^a-zA-Z0-9_]/', '', $_POST['au_menu'][$k]) : ''; $au_menu = isset($_POST['au_menu'][$k]) ? preg_replace('/[^a-zA-Z0-9_]/', '', $_POST['au_menu'][$k]) : '';
$sql = " delete from {$g5['auth_table']} where mb_id = '".$mb_id."' and au_menu = '".$au_menu."' "; $sql = " delete from {$g5['auth_table']} where mb_id = '" . $mb_id . "' and au_menu = '" . $au_menu . "' ";
sql_query($sql); sql_query($sql);
run_event('adm_auth_delete_member', $mb_id, $au_menu); run_event('adm_auth_delete_member', $mb_id, $au_menu);
} }
goto_url('./auth_list.php?'.$qstr); goto_url('./auth_list.php?' . $qstr);
+12 -10
View File
@@ -1,23 +1,25 @@
<?php <?php
$sub_menu = "100200"; $sub_menu = "100200";
include_once('./_common.php'); require_once './_common.php';
include_once(G5_LIB_PATH.'/mailer.lib.php'); require_once G5_LIB_PATH . '/mailer.lib.php';
$au_menu = isset($_POST['au_menu']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['au_menu']) : ''; $au_menu = isset($_POST['au_menu']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['au_menu']) : '';
$post_r = isset($_POST['r']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['r']) : ''; $post_r = isset($_POST['r']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['r']) : '';
$post_w = isset($_POST['w']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['w']) : ''; $post_w = isset($_POST['w']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['w']) : '';
$post_d = isset($_POST['d']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['d']) : ''; $post_d = isset($_POST['d']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['d']) : '';
if ($is_admin != 'super') if ($is_admin != 'super') {
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
}
$mb = get_member($mb_id); $mb = get_member($mb_id);
if (!$mb['mb_id']) if (!$mb['mb_id']) {
alert('존재하는 회원아이디가 아닙니다.'); alert('존재하는 회원아이디가 아닙니다.');
}
check_admin_token(); check_admin_token();
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php'); require_once G5_CAPTCHA_PATH . '/captcha.lib.php';
if (!chk_captcha()) { if (!chk_captcha()) {
alert('자동등록방지 숫자가 틀렸습니다.'); alert('자동등록방지 숫자가 틀렸습니다.');
@@ -27,7 +29,7 @@ $sql = " insert into {$g5['auth_table']}
set mb_id = '$mb_id', set mb_id = '$mb_id',
au_menu = '$au_menu', au_menu = '$au_menu',
au_auth = '{$post_r},{$post_w},{$post_d}' "; au_auth = '{$post_r},{$post_w},{$post_d}' ";
$result = sql_query($sql, FALSE); $result = sql_query($sql, false);
if (!$result) { if (!$result) {
$sql = " update {$g5['auth_table']} $sql = " update {$g5['auth_table']}
set au_auth = '{$post_r},{$post_w},{$post_d}' set au_auth = '{$post_r},{$post_w},{$post_d}'
@@ -39,15 +41,15 @@ if (!$result) {
//sql_query(" OPTIMIZE TABLE `$g5['auth_table']` "); //sql_query(" OPTIMIZE TABLE `$g5['auth_table']` ");
// 세션을 체크하여 하루에 한번만 메일알림이 가게 합니다. // 세션을 체크하여 하루에 한번만 메일알림이 가게 합니다.
if( str_replace('-', '', G5_TIME_YMD) !== get_session('adm_auth_update') ){ if (str_replace('-', '', G5_TIME_YMD) !== get_session('adm_auth_update')) {
$site_url = preg_replace('/^www\./', '', strtolower($_SERVER['SERVER_NAME'])); $site_url = preg_replace('/^www\./', '', strtolower($_SERVER['SERVER_NAME']));
$to_email = 'gnuboard@'.$site_url; $to_email = 'gnuboard@' . $site_url;
mailer($config['cf_admin_email_name'], $to_email, $config['cf_admin_email'], '['.$config['cf_title'].'] 관리권한설정 알림', '<p><b>['.$config['cf_title'].'] 관리권한설정 변경 안내</b></p><p style="padding-top:1em">회원 아이디 '.$mb['mb_id'].' 에 관리권한이 추가 되었습니다.</p><p style="padding-top:1em">'.G5_TIME_YMDHIS.'</p><p style="padding-top:1em"><a href="'.G5_URL.'" target="_blank">'.$config['cf_title'].'</a></p>', 1); mailer($config['cf_admin_email_name'], $to_email, $config['cf_admin_email'], '[' . $config['cf_title'] . '] 관리권한설정 알림', '<p><b>[' . $config['cf_title'] . '] 관리권한설정 변경 안내</b></p><p style="padding-top:1em">회원 아이디 ' . $mb['mb_id'] . ' 에 관리권한이 추가 되었습니다.</p><p style="padding-top:1em">' . G5_TIME_YMDHIS . '</p><p style="padding-top:1em"><a href="' . G5_URL . '" target="_blank">' . $config['cf_title'] . '</a></p>', 1);
set_session('adm_auth_update', str_replace('-', '', G5_TIME_YMD)); set_session('adm_auth_update', str_replace('-', '', G5_TIME_YMD));
} }
run_event('adm_auth_update', $mb); run_event('adm_auth_update', $mb);
goto_url('./auth_list.php?'.$qstr); goto_url('./auth_list.php?' . $qstr);
+62 -57
View File
@@ -1,11 +1,16 @@
<?php <?php
$sub_menu = "300100"; $sub_menu = "300100";
include_once("./_common.php"); require_once "./_common.php";
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
$g5['title'] = '게시판 복사'; $g5['title'] = '게시판 복사';
include_once(G5_PATH.'/head.sub.php'); require_once G5_PATH . '/head.sub.php';
$bo_table = $_REQUEST['bo_table'];
if (empty($bo_table)) {
alert_close("정상적인 방법으로 이용해주세요.");
}
?> ?>
<script src="<?php echo G5_ADMIN_URL ?>/admin.js?ver=<?php echo G5_JS_VER; ?>"></script> <script src="<?php echo G5_ADMIN_URL ?>/admin.js?ver=<?php echo G5_JS_VER; ?>"></script>
@@ -14,72 +19,72 @@ include_once(G5_PATH.'/head.sub.php');
<h1><?php echo $g5['title']; ?></h1> <h1><?php echo $g5['title']; ?></h1>
<form name="fboardcopy" id="fboardcopy" action="./board_copy_update.php" onsubmit="return fboardcopy_check(this);" method="post"> <form name="fboardcopy" id="fboardcopy" action="./board_copy_update.php" onsubmit="return fboardcopy_check(this);" method="post">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>" id="bo_table"> <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>" id="bo_table">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div class=" new_win_con"> <div class=" new_win_con">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?></caption> <caption><?php echo $g5['title']; ?></caption>
<tbody> <tbody>
<tr> <tr>
<th scope="col">원본 테이블명</th> <th scope="col">원본 테이블명</th>
<td><?php echo $bo_table ?></td> <td><?php echo $bo_table ?></td>
</tr> </tr>
<tr> <tr>
<th scope="col"><label for="target_table">복사 테이블명<strong class="sound_only">필수</strong></label></th> <th scope="col"><label for="target_table">복사 테이블명<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="target_table" id="target_table" required class="required alnum_ frm_input" maxlength="20">영문자, 숫자, _ 만 가능 (공백없이)</td> <td><input type="text" name="target_table" id="target_table" required class="required alnum_ frm_input" maxlength="20">영문자, 숫자, _ 만 가능 (공백없이)</td>
</tr> </tr>
<tr> <tr>
<th scope="col"><label for="target_subject">게시판 제목<strong class="sound_only">필수</strong></label></th> <th scope="col"><label for="target_subject">게시판 제목<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="target_subject" value="[복사본] <?php echo get_sanitize_input($board['bo_subject']); ?>" id="target_subject" required class="required frm_input" maxlength="120"></td> <td><input type="text" name="target_subject" value="[복사본] <?php echo get_sanitize_input($board['bo_subject']); ?>" id="target_subject" required class="required frm_input" maxlength="120"></td>
</tr> </tr>
<tr> <tr>
<th scope="col">복사 유형</th> <th scope="col">복사 유형</th>
<td> <td>
<input type="radio" name="copy_case" value="schema_only" id="copy_case" checked> <input type="radio" name="copy_case" value="schema_only" id="copy_case" checked>
<label for="copy_case">구조만</label> <label for="copy_case">구조만</label>
<input type="radio" name="copy_case" value="schema_data_both" id="copy_case2"> <input type="radio" name="copy_case" value="schema_data_both" id="copy_case2">
<label for="copy_case2">구조와 데이터</label> <label for="copy_case2">구조와 데이터</label>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div>
</div>
<div class="win_btn ">
<input type="submit" class="btn_submit btn" value="복사">
<input type="button" class="btn_close btn" value="창닫기" onclick="window.close();">
</div> </div>
</div>
<div class="win_btn ">
<input type="submit" class="btn_submit btn" value="복사">
<input type="button" class="btn_close btn" value="창닫기" onclick="window.close();">
</div>
</form> </form>
</div> </div>
<script> <script>
function fboardcopy_check(f) function fboardcopy_check(f) {
{ <?php
<?php
if(!$w){
$js_array = get_bo_table_banned_word();
echo "var banned_array = ". json_encode($js_array) . ";\n";
}
?>
// 게시판명이 금지된 단어로 되어 있으면 if (!$w) {
if( (typeof banned_array != 'undefined') && jQuery.inArray(f.target_table.value, banned_array) !== -1 ){ $js_array = get_bo_table_banned_word();
alert("입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요."); echo "var banned_array = " . json_encode($js_array) . ";\n";
return false; }
} ?>
if (f.bo_table.value == f.target_table.value) { // 게시판명이 금지된 단어로 되어 있으면
alert("원본 테이블명과 복사할 테이블명이 달라야 합니다."); if ((typeof banned_array != 'undefined') && jQuery.inArray(f.target_table.value, banned_array) !== -1) {
return false; alert("입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.");
} return false;
}
return true; if (f.bo_table.value == f.target_table.value) {
} alert("원본 테이블명과 복사할 테이블명이 달라야 합니다.");
return false;
}
return true;
}
</script> </script>
<?php <?php
include_once(G5_PATH.'/tail.sub.php'); require_once G5_PATH . '/tail.sub.php';
+65 -56
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = '300100'; $sub_menu = '300100';
include_once('./_common.php'); require_once './_common.php';
check_demo(); check_demo();
@@ -8,31 +8,37 @@ auth_check_menu($auth, $sub_menu, 'w');
check_admin_token(); check_admin_token();
$bo_table = isset($_POST['bo_table']) ? $_POST['bo_table'] : null;
$target_table = isset($_POST['target_table']) ? trim($_POST['target_table']) : ''; $target_table = isset($_POST['target_table']) ? trim($_POST['target_table']) : '';
$target_subject = isset($_POST['target_subject']) ? trim($_POST['target_subject']) : ''; $target_subject = isset($_POST['target_subject']) ? trim($_POST['target_subject']) : '';
$target_subject = strip_tags(clean_xss_attributes($target_subject)); $target_subject = strip_tags(clean_xss_attributes($target_subject));
$file_copy = array();
if (empty($bo_table)) {
alert("원본 테이블 정보가 없습니다.");
}
if (!preg_match('/[A-Za-z0-9_]{1,20}/', $target_table)) { if (!preg_match('/[A-Za-z0-9_]{1,20}/', $target_table)) {
alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)');
} }
// 게시판명이 금지된 단어로 되어 있으면 // 게시판명이 금지된 단어로 되어 있으면
if ( $w == '' && in_array($target_table, get_bo_table_banned_word()) ){ if ($w == '' && in_array($target_table, get_bo_table_banned_word())) {
alert('입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.'); alert('입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.');
} }
$row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where bo_table = '$target_table' "); $row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where bo_table = '$target_table' ");
if ($row['cnt']) if ($row['cnt']) {
alert($target_table.'은(는) 이미 존재하는 게시판 테이블명 입니다.\\n복사할 테이블명으로 사용할 수 없습니다.'); alert($target_table . '은(는) 이미 존재하는 게시판 테이블명 입니다.\\n복사할 테이블명으로 사용할 수 없습니다.');
}
// 게시판 테이블 생성 // 게시판 테이블 생성
$sql = get_table_define($g5['write_prefix'] . $bo_table); $sql = get_table_define($g5['write_prefix'] . $bo_table);
$sql = str_replace($g5['write_prefix'] . $bo_table, $g5['write_prefix'] . $target_table, $sql); $sql = str_replace($g5['write_prefix'] . $bo_table, $g5['write_prefix'] . $target_table, $sql);
sql_query($sql, false); sql_query($sql, false);
$file_copy = array();
// 구조만 복사시에는 공지사항 번호는 복사하지 않는다. // 구조만 복사시에는 공지사항 번호는 복사하지 않는다.
if ($copy_case == 'schema_only') { if ($copy_case == 'schema_only') {
$board['bo_notice'] = ''; $board['bo_notice'] = '';
@@ -87,11 +93,11 @@ $sql = " insert into {$g5['board_table']}
bo_mobile_skin = '{$board['bo_mobile_skin']}', bo_mobile_skin = '{$board['bo_mobile_skin']}',
bo_include_head = '{$board['bo_include_head']}', bo_include_head = '{$board['bo_include_head']}',
bo_include_tail = '{$board['bo_include_tail']}', bo_include_tail = '{$board['bo_include_tail']}',
bo_content_head = '".addslashes($board['bo_content_head'])."', bo_content_head = '" . addslashes($board['bo_content_head']) . "',
bo_content_tail = '".addslashes($board['bo_content_tail'])."', bo_content_tail = '" . addslashes($board['bo_content_tail']) . "',
bo_mobile_content_head = '".addslashes($board['bo_mobile_content_head'])."', bo_mobile_content_head = '" . addslashes($board['bo_mobile_content_head']) . "',
bo_mobile_content_tail = '".addslashes($board['bo_mobile_content_tail'])."', bo_mobile_content_tail = '" . addslashes($board['bo_mobile_content_tail']) . "',
bo_insert_content = '".addslashes($board['bo_insert_content'])."', bo_insert_content = '" . addslashes($board['bo_insert_content']) . "',
bo_gallery_cols = '{$board['bo_gallery_cols']}', bo_gallery_cols = '{$board['bo_gallery_cols']}',
bo_gallery_width = '{$board['bo_gallery_width']}', bo_gallery_width = '{$board['bo_gallery_width']}',
bo_gallery_height = '{$board['bo_gallery_height']}', bo_gallery_height = '{$board['bo_gallery_height']}',
@@ -108,34 +114,34 @@ $sql = " insert into {$g5['board_table']}
bo_use_sns = '{$board['bo_use_sns']}', bo_use_sns = '{$board['bo_use_sns']}',
bo_use_captcha = '{$board['bo_use_captcha']}', bo_use_captcha = '{$board['bo_use_captcha']}',
bo_sort_field = '{$board['bo_sort_field']}', bo_sort_field = '{$board['bo_sort_field']}',
bo_1_subj = '".addslashes($board['bo_1_subj'])."', bo_1_subj = '" . addslashes($board['bo_1_subj']) . "',
bo_2_subj = '".addslashes($board['bo_2_subj'])."', bo_2_subj = '" . addslashes($board['bo_2_subj']) . "',
bo_3_subj = '".addslashes($board['bo_3_subj'])."', bo_3_subj = '" . addslashes($board['bo_3_subj']) . "',
bo_4_subj = '".addslashes($board['bo_4_subj'])."', bo_4_subj = '" . addslashes($board['bo_4_subj']) . "',
bo_5_subj = '".addslashes($board['bo_5_subj'])."', bo_5_subj = '" . addslashes($board['bo_5_subj']) . "',
bo_6_subj = '".addslashes($board['bo_6_subj'])."', bo_6_subj = '" . addslashes($board['bo_6_subj']) . "',
bo_7_subj = '".addslashes($board['bo_7_subj'])."', bo_7_subj = '" . addslashes($board['bo_7_subj']) . "',
bo_8_subj = '".addslashes($board['bo_8_subj'])."', bo_8_subj = '" . addslashes($board['bo_8_subj']) . "',
bo_9_subj = '".addslashes($board['bo_9_subj'])."', bo_9_subj = '" . addslashes($board['bo_9_subj']) . "',
bo_10_subj = '".addslashes($board['bo_10_subj'])."', bo_10_subj = '" . addslashes($board['bo_10_subj']) . "',
bo_1 = '".addslashes($board['bo_1'])."', bo_1 = '" . addslashes($board['bo_1']) . "',
bo_2 = '".addslashes($board['bo_2'])."', bo_2 = '" . addslashes($board['bo_2']) . "',
bo_3 = '".addslashes($board['bo_3'])."', bo_3 = '" . addslashes($board['bo_3']) . "',
bo_4 = '".addslashes($board['bo_4'])."', bo_4 = '" . addslashes($board['bo_4']) . "',
bo_5 = '".addslashes($board['bo_5'])."', bo_5 = '" . addslashes($board['bo_5']) . "',
bo_6 = '".addslashes($board['bo_6'])."', bo_6 = '" . addslashes($board['bo_6']) . "',
bo_7 = '".addslashes($board['bo_7'])."', bo_7 = '" . addslashes($board['bo_7']) . "',
bo_8 = '".addslashes($board['bo_8'])."', bo_8 = '" . addslashes($board['bo_8']) . "',
bo_9 = '".addslashes($board['bo_9'])."', bo_9 = '" . addslashes($board['bo_9']) . "',
bo_10 = '".addslashes($board['bo_10'])."' "; bo_10 = '" . addslashes($board['bo_10']) . "' ";
sql_query($sql, false); sql_query($sql, false);
// 게시판 폴더 생성 // 게시판 폴더 생성
@mkdir(G5_DATA_PATH.'/file/'.$target_table, G5_DIR_PERMISSION); @mkdir(G5_DATA_PATH . '/file/' . $target_table, G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH.'/file/'.$target_table, G5_DIR_PERMISSION); @chmod(G5_DATA_PATH . '/file/' . $target_table, G5_DIR_PERMISSION);
// 디렉토리에 있는 파일의 목록을 보이지 않게 한다. // 디렉토리에 있는 파일의 목록을 보이지 않게 한다.
$board_path = G5_DATA_PATH.'/file/'.$target_table; $board_path = G5_DATA_PATH . '/file/' . $target_table;
$file = $board_path . '/index.php'; $file = $board_path . '/index.php';
$f = @fopen($file, 'w'); $f = @fopen($file, 'w');
@fwrite($f, ''); @fwrite($f, '');
@@ -144,26 +150,29 @@ $f = @fopen($file, 'w');
$copy_file = 0; $copy_file = 0;
if ($copy_case == 'schema_data_both') { if ($copy_case == 'schema_data_both') {
$d = dir(G5_DATA_PATH.'/file/'.$bo_table); $d = dir(G5_DATA_PATH . '/file/' . $bo_table);
while ($entry = $d->read()) { while ($entry = $d->read()) {
if ($entry == '.' || $entry == '..') continue; if ($entry == '.' || $entry == '..') {
continue;
}
// 김선용 201007 : // 김선용 201007 :
if(is_dir(G5_DATA_PATH.'/file/'.$bo_table.'/'.$entry)){ if (is_dir(G5_DATA_PATH . '/file/' . $bo_table . '/' . $entry)) {
$dd = dir(G5_DATA_PATH.'/file/'.$bo_table.'/'.$entry); $dd = dir(G5_DATA_PATH . '/file/' . $bo_table . '/' . $entry);
@mkdir(G5_DATA_PATH.'/file/'.$target_table.'/'.$entry, G5_DIR_PERMISSION); @mkdir(G5_DATA_PATH . '/file/' . $target_table . '/' . $entry, G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH.'/file/'.$target_table.'/'.$entry, G5_DIR_PERMISSION); @chmod(G5_DATA_PATH . '/file/' . $target_table . '/' . $entry, G5_DIR_PERMISSION);
while ($entry2 = $dd->read()) { while ($entry2 = $dd->read()) {
if ($entry2 == '.' || $entry2 == '..') continue; if ($entry2 == '.' || $entry2 == '..') {
@copy(G5_DATA_PATH.'/file/'.$bo_table.'/'.$entry.'/'.$entry2, G5_DATA_PATH.'/file/'.$target_table.'/'.$entry.'/'.$entry2); continue;
@chmod(G5_DATA_PATH.'/file/'.$target_table.'/'.$entry.'/'.$entry2, G5_DIR_PERMISSION); }
@copy(G5_DATA_PATH . '/file/' . $bo_table . '/' . $entry . '/' . $entry2, G5_DATA_PATH . '/file/' . $target_table . '/' . $entry . '/' . $entry2);
@chmod(G5_DATA_PATH . '/file/' . $target_table . '/' . $entry . '/' . $entry2, G5_DIR_PERMISSION);
$copy_file++; $copy_file++;
} }
$dd->close(); $dd->close();
} } else {
else { @copy(G5_DATA_PATH . '/file/' . $bo_table . '/' . $entry, G5_DATA_PATH . '/file/' . $target_table . '/' . $entry);
@copy(G5_DATA_PATH.'/file/'.$bo_table.'/'.$entry, G5_DATA_PATH.'/file/'.$target_table.'/'.$entry); @chmod(G5_DATA_PATH . '/file/' . $target_table . '/' . $entry, G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH.'/file/'.$target_table.'/'.$entry, G5_DIR_PERMISSION);
$copy_file++; $copy_file++;
} }
} }
@@ -185,26 +194,26 @@ if ($copy_case == 'schema_data_both') {
// 위의 코드는 같은 테이블명을 사용하였다는 오류가 발생함. (희한하네 ㅡㅡ;) // 위의 코드는 같은 테이블명을 사용하였다는 오류가 발생함. (희한하네 ㅡㅡ;)
$sql = " select * from {$g5['board_file_table']} where bo_table = '$bo_table' "; $sql = " select * from {$g5['board_file_table']} where bo_table = '$bo_table' ";
$result = sql_query($sql, false); $result = sql_query($sql, false);
for ($i=0; $row=sql_fetch_array($result); $i++) for ($i = 0; $row = sql_fetch_array($result); $i++) {
$file_copy[$i] = $row; $file_copy[$i] = $row;
}
} }
if (count($file_copy)) { if (count($file_copy)) {
for ($i=0; $i<count($file_copy); $i++) { for ($i = 0; $i < count($file_copy); $i++) {
$file_copy[$i] = run_replace('admin_copy_update_file', $file_copy[$i], $file_copy[$i]['bf_file'], $bo_table, $target_table); $file_copy[$i] = run_replace('admin_copy_update_file', $file_copy[$i], $file_copy[$i]['bf_file'], $bo_table, $target_table);
$sql = " insert into {$g5['board_file_table']} $sql = " insert into {$g5['board_file_table']}
set bo_table = '$target_table', set bo_table = '$target_table',
wr_id = '{$file_copy[$i]['wr_id']}', wr_id = '{$file_copy[$i]['wr_id']}',
bf_no = '{$file_copy[$i]['bf_no']}', bf_no = '{$file_copy[$i]['bf_no']}',
bf_source = '".addslashes($file_copy[$i]['bf_source'])."', bf_source = '" . addslashes($file_copy[$i]['bf_source']) . "',
bf_file = '{$file_copy[$i]['bf_file']}', bf_file = '{$file_copy[$i]['bf_file']}',
bf_download = '{$file_copy[$i]['bf_download']}', bf_download = '{$file_copy[$i]['bf_download']}',
bf_content = '".addslashes($file_copy[$i]['bf_content'])."', bf_content = '" . addslashes($file_copy[$i]['bf_content']) . "',
bf_fileurl = '".addslashes($file_copy[$i]['bf_fileurl'])."', bf_fileurl = '" . addslashes($file_copy[$i]['bf_fileurl']) . "',
bf_thumburl = '".addslashes($file_copy[$i]['bf_thumburl'])."', bf_thumburl = '" . addslashes($file_copy[$i]['bf_thumburl']) . "',
bf_storage = '".addslashes($file_copy[$i]['bf_storage'])."', bf_storage = '" . addslashes($file_copy[$i]['bf_storage']) . "',
bf_filesize = '{$file_copy[$i]['bf_filesize']}', bf_filesize = '{$file_copy[$i]['bf_filesize']}',
bf_width = '{$file_copy[$i]['bf_width']}', bf_width = '{$file_copy[$i]['bf_width']}',
bf_height = '{$file_copy[$i]['bf_height']}', bf_height = '{$file_copy[$i]['bf_height']}',
@@ -220,4 +229,4 @@ delete_cache_latest($target_table);
echo "<script>opener.document.location.reload();</script>"; echo "<script>opener.document.location.reload();</script>";
alert("복사에 성공 했습니다.", './board_copy.php?bo_table='.$bo_table.'&amp;'.$qstr); alert("복사에 성공 했습니다.", './board_copy.php?bo_table=' . $bo_table . '&amp;' . $qstr);
+12 -5
View File
@@ -1,11 +1,18 @@
<?php <?php
// board_delete.php , boardgroup_delete.php 에서 include 하는 파일 // board_delete.php , boardgroup_delete.php 에서 include 하는 파일
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
if (!defined('_BOARD_DELETE_')) exit; // 개별 페이지 접근 불가 if (!defined('_GNUBOARD_')) {
exit;
}
if (!defined('_BOARD_DELETE_')) {
exit;
}
// $tmp_bo_table 에는 $bo_table 값을 넘겨주어야 함 // $tmp_bo_table 에는 $bo_table 값을 넘겨주어야 함
if (!$tmp_bo_table) { return; } if (!$tmp_bo_table) {
return;
}
// 게시판 1개는 삭제 불가 (게시판 복사를 위해서) // 게시판 1개는 삭제 불가 (게시판 복사를 위해서)
//$row = sql_fetch(" select count(*) as cnt from $g5['board_table'] "); //$row = sql_fetch(" select count(*) as cnt from $g5['board_table'] ");
@@ -24,7 +31,7 @@ sql_query(" delete from {$g5['scrap_table']} where bo_table = '{$tmp_bo_table}'
sql_query(" delete from {$g5['board_file_table']} where bo_table = '{$tmp_bo_table}' "); sql_query(" delete from {$g5['board_file_table']} where bo_table = '{$tmp_bo_table}' ");
// 게시판 테이블 DROP // 게시판 테이블 DROP
sql_query(" drop table {$g5['write_prefix']}{$tmp_bo_table} ", FALSE); sql_query(" drop table {$g5['write_prefix']}{$tmp_bo_table} ", false);
// 좋아요 테이블에서 기록 삭제 // 좋아요 테이블에서 기록 삭제
sql_query(" delete from {$g5['board_good_table']} where bo_table = '{$tmp_bo_table}' "); sql_query(" delete from {$g5['board_good_table']} where bo_table = '{$tmp_bo_table}' ");
@@ -32,4 +39,4 @@ sql_query(" delete from {$g5['board_good_table']} where bo_table = '{$tmp_bo_tab
delete_cache_latest($tmp_bo_table); delete_cache_latest($tmp_bo_table);
// 게시판 폴더 전체 삭제 // 게시판 폴더 전체 삭제
rm_rf(G5_DATA_PATH.'/file/'.$tmp_bo_table); rm_rf(G5_DATA_PATH . '/file/' . $tmp_bo_table);
+40 -37
View File
@@ -1,18 +1,17 @@
<?php <?php
$sub_menu = "300100"; $sub_menu = "300100";
include_once('./_common.php'); require_once './_common.php';
include_once(G5_EDITOR_LIB); require_once G5_EDITOR_LIB;
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
$sql = " select count(*) as cnt from {$g5['group_table']} "; $sql = " select count(*) as cnt from {$g5['group_table']} ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
if (!$row['cnt']) if (!$row['cnt']) {
alert('게시판그룹이 한개 이상 생성되어야 합니다.', './boardgroup_form.php'); alert('게시판그룹이 한개 이상 생성되어야 합니다.', './boardgroup_form.php');
}
$html_title = '게시판'; $html_title = '게시판';
$reaonly = '';
$required_valid = '';
if (!isset($board['bo_device'])) { if (!isset($board['bo_device'])) {
// 게시판 사용 필드 추가 // 게시판 사용 필드 추가
@@ -52,15 +51,17 @@ if (!isset($board['bo_use_sns'])) {
$result = sql_query(" select bo_table from `{$g5['board_table']}` "); $result = sql_query(" select bo_table from `{$g5['board_table']}` ");
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i=0; $row=sql_fetch_array($result); $i++) {
sql_query(" ALTER TABLE `{$g5['write_prefix']}{$row['bo_table']}` sql_query(
" ALTER TABLE `{$g5['write_prefix']}{$row['bo_table']}`
ADD `wr_facebook_user` VARCHAR(255) NOT NULL DEFAULT '' AFTER `wr_ip`, ADD `wr_facebook_user` VARCHAR(255) NOT NULL DEFAULT '' AFTER `wr_ip`,
ADD `wr_twitter_user` VARCHAR(255) NOT NULL DEFAULT '' AFTER `wr_facebook_user` ", false); ADD `wr_twitter_user` VARCHAR(255) NOT NULL DEFAULT '' AFTER `wr_facebook_user` ", false
);
} }
} }
$sql = " SHOW COLUMNS FROM `{$g5['board_table']}` LIKE 'bo_use_cert' "; $sql = " SHOW COLUMNS FROM `{$g5['board_table']}` LIKE 'bo_use_cert' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
if(strpos($row['Type'], 'hp-') === false) { if (strpos($row['Type'], 'hp-') === false) {
sql_query(" ALTER TABLE `{$g5['board_table']}` CHANGE `bo_use_cert` `bo_use_cert` ENUM('','cert','adult','hp-cert','hp-adult') NOT NULL DEFAULT '' ", false); sql_query(" ALTER TABLE `{$g5['board_table']}` CHANGE `bo_use_cert` `bo_use_cert` ENUM('','cert','adult','hp-cert','hp-adult') NOT NULL DEFAULT '' ", false);
} }
@@ -69,8 +70,10 @@ if (!isset($board['bo_use_list_file'])) {
$result = sql_query(" select bo_table from `{$g5['board_table']}` "); $result = sql_query(" select bo_table from `{$g5['board_table']}` ");
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i=0; $row=sql_fetch_array($result); $i++) {
sql_query(" ALTER TABLE `{$g5['write_prefix']}{$row['bo_table']}` sql_query(
ADD `wr_file` TINYINT NOT NULL DEFAULT '0' AFTER `wr_datetime` ", false); " ALTER TABLE `{$g5['write_prefix']}{$row['bo_table']}`
ADD `wr_file` TINYINT NOT NULL DEFAULT '0' AFTER `wr_datetime` ", false
);
} }
} }
@@ -130,7 +133,7 @@ $board_default = array(
'bo_sort_field'=>'', 'bo_sort_field'=>'',
); );
for($i=0;$i<=10;$i++){ for ($i = 0; $i <= 10; $i++) {
$board_default['bo_'.$i.'_subj'] = ''; $board_default['bo_'.$i.'_subj'] = '';
$board_default['bo_'.$i] = ''; $board_default['bo_'.$i] = '';
} }
@@ -142,8 +145,8 @@ run_event('adm_board_form_before', $board, $w);
$required = ""; $required = "";
$readonly = ""; $readonly = "";
$sound_only = ""; $sound_only = "";
$required_valid = "";
if ($w == '') { if ($w == '') {
$html_title .= ' 생성'; $html_title .= ' 생성';
$required = 'required'; $required = 'required';
@@ -180,21 +183,20 @@ if ($w == '') {
$board['bo_use_secret'] = 0; $board['bo_use_secret'] = 0;
$board['bo_include_head'] = '_head.php'; $board['bo_include_head'] = '_head.php';
$board['bo_include_tail'] = '_tail.php'; $board['bo_include_tail'] = '_tail.php';
} elseif ($w == 'u') {
} else if ($w == 'u') {
$html_title .= ' 수정'; $html_title .= ' 수정';
if (!$board['bo_table']) if (!$board['bo_table']) {
alert('존재하지 않은 게시판 입니다.'); alert('존재하지 않은 게시판 입니다.');
}
if ($is_admin == 'group') { if ($is_admin == 'group') {
if ($member['mb_id'] != $group['gr_admin']) if ($member['mb_id'] != $group['gr_admin']) {
alert('그룹이 틀립니다.'); alert('그룹이 틀립니다.');
}
} }
$readonly = 'readonly'; $readonly = 'readonly';
} }
if ($is_admin != 'super') { if ($is_admin != 'super') {
@@ -203,7 +205,7 @@ if ($is_admin != 'super') {
} }
$g5['title'] = $html_title; $g5['title'] = $html_title;
include_once ('./admin.head.php'); require_once './admin.head.php';
$pg_anchor = '<ul class="anchor"> $pg_anchor = '<ul class="anchor">
<li><a href="#anc_bo_basic">기본 설정</a></li> <li><a href="#anc_bo_basic">기본 설정</a></li>
@@ -254,7 +256,9 @@ $pg_anchor = '<ul class="anchor">
<th scope="row"><label for="gr_id">그룹<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="gr_id">그룹<strong class="sound_only">필수</strong></label></th>
<td colspan="2"> <td colspan="2">
<?php echo get_group_select('gr_id', $board['gr_id'], 'required'); ?> <?php echo get_group_select('gr_id', $board['gr_id'], 'required'); ?>
<?php if ($w=='u') { ?><a href="javascript:document.location.href='./board_list.php?sfl=a.gr_id&stx='+document.fboardform.gr_id.value;" class="btn_frmline">동일그룹 게시판목록</a><?php } ?> <?php if ($w=='u') { ?>
<a href="javascript:document.location.href='./board_list.php?sfl=a.gr_id&stx='+document.fboardform.gr_id.value;" class="btn_frmline">동일그룹 게시판목록</a>
<?php } ?>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -549,7 +553,9 @@ $pg_anchor = '<ul class="anchor">
<?php <?php
$arr = get_skin_dir('', G5_EDITOR_PATH); $arr = get_skin_dir('', G5_EDITOR_PATH);
for ($i=0; $i<count($arr); $i++) { for ($i=0; $i<count($arr); $i++) {
if ($i == 0) echo "<option value=\"\">기본환경설정의 에디터 사용</option>"; if ($i == 0) {
echo "<option value=\"\">기본환경설정의 에디터 사용</option>";
}
echo "<option value=\"".$arr[$i]."\"".get_selected($board['bo_select_editor'], $arr[$i]).">".$arr[$i]."</option>\n"; echo "<option value=\"".$arr[$i]."\"".get_selected($board['bo_select_editor'], $arr[$i]).">".$arr[$i]."</option>\n";
} }
?> ?>
@@ -702,12 +708,10 @@ $pg_anchor = '<ul class="anchor">
<?php echo help("본인확인 여부에 따라 게시물을 조회 할 수 있도록 합니다."); ?> <?php echo help("본인확인 여부에 따라 게시물을 조회 할 수 있도록 합니다."); ?>
<select id="bo_use_cert" name="bo_use_cert"> <select id="bo_use_cert" name="bo_use_cert">
<?php <?php
echo option_selected("", $board['bo_use_cert'], "사용안함"); echo option_selected("", $board['bo_use_cert'], "사용안함");
if ($config['cf_cert_use']) { if ($config['cf_cert_use']) {
echo option_selected("cert", $board['bo_use_cert'], "본인확인된 회원전체"); echo option_selected("cert", $board['bo_use_cert'], "본인확인된 회원전체");
echo option_selected("adult", $board['bo_use_cert'], "본인확인된 성인회원만"); echo option_selected("adult", $board['bo_use_cert'], "본인확인된 성인회원만");
echo option_selected("hp-cert", $board['bo_use_cert'], "휴대폰 본인확인된 회원전체");
echo option_selected("hp-adult", $board['bo_use_cert'], "휴대폰 본인확인된 성인회원만");
} }
?> ?>
</select> </select>
@@ -906,7 +910,7 @@ $pg_anchor = '<ul class="anchor">
<label for="chk_all_mobile_skin">전체적용</label> <label for="chk_all_mobile_skin">전체적용</label>
</td> </td>
</tr> </tr>
<?php if ($is_admin === 'super'){ // 슈퍼관리자인 경우에만 수정 가능 ?> <?php if ($is_admin === 'super') { // 슈퍼관리자인 경우에만 수정 가능 ?>
<tr> <tr>
<th scope="row"><label for="bo_include_head">상단 파일 경로</label></th> <th scope="row"><label for="bo_include_head">상단 파일 경로</label></th>
<td> <td>
@@ -937,7 +941,7 @@ $pg_anchor = '<ul class="anchor">
<?php <?php
echo help("파일 경로를 입력 또는 수정시 캡챠를 반드시 입력해야 합니다."); echo help("파일 경로를 입력 또는 수정시 캡챠를 반드시 입력해야 합니다.");
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php'); include_once G5_CAPTCHA_PATH.'/captcha.lib.php';
$captcha_html = captcha_html(); $captcha_html = captcha_html();
$captcha_js = chk_captcha_js(); $captcha_js = chk_captcha_js();
echo $captcha_html; echo $captcha_html;
@@ -1062,7 +1066,7 @@ $pg_anchor = '<ul class="anchor">
<th scope="row"><label for="bo_gallery_cols">갤러리 이미지 수<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="bo_gallery_cols">갤러리 이미지 수<strong class="sound_only">필수</strong></label></th>
<td> <td>
<?php echo help('갤러리 형식의 게시판 목록에서 이미지를 한줄에 몇장씩 보여 줄 것인지를 설정하는 값') ?> <?php echo help('갤러리 형식의 게시판 목록에서 이미지를 한줄에 몇장씩 보여 줄 것인지를 설정하는 값') ?>
<?php echo get_member_level_select('bo_gallery_cols', 1, 10, $board['bo_gallery_cols']); ?> <input type="text" name="bo_gallery_cols" value="<?php echo $board['bo_gallery_cols'] ?>" id="bo_gallery_cols" required class="required numeric frm_input" size="4">
</td> </td>
<td class="td_grpset"> <td class="td_grpset">
<input type="checkbox" name="chk_grp_gallery_cols" value="1" id="chk_grp_gallery_cols"> <input type="checkbox" name="chk_grp_gallery_cols" value="1" id="chk_grp_gallery_cols">
@@ -1195,17 +1199,16 @@ $pg_anchor = '<ul class="anchor">
<td> <td>
<?php echo help('리스트에서 기본으로 정렬에 사용할 필드를 선택합니다. "기본"으로 사용하지 않으시는 경우 속도가 느려질 수 있습니다.') ?> <?php echo help('리스트에서 기본으로 정렬에 사용할 필드를 선택합니다. "기본"으로 사용하지 않으시는 경우 속도가 느려질 수 있습니다.') ?>
<select id="bo_sort_field" name="bo_sort_field"> <select id="bo_sort_field" name="bo_sort_field">
<?php foreach( get_board_sort_fields($board) as $v ){ <?php foreach (get_board_sort_fields($board) as $v) {
$option_value = $order_by_str = $v[0]; $option_value = $order_by_str = $v[0];
if( $v[0] === 'wr_num, wr_reply' ){ if ($v[0] === 'wr_num, wr_reply') {
$selected = (! $board['bo_sort_field']) ? 'selected="selected"' : ''; $selected = (! $board['bo_sort_field']) ? 'selected="selected"' : '';
$option_value = ''; $option_value = '';
} else { } else {
$selected = ($board['bo_sort_field'] === $v[0]) ? 'selected="selected"' : ''; $selected = ($board['bo_sort_field'] === $v[0]) ? 'selected="selected"' : '';
} }
if( $order_by_str !== 'wr_num, wr_reply' ){ if ($order_by_str !== 'wr_num, wr_reply') {
$tmp = explode(',', $v[0]); $tmp = explode(',', $v[0]);
$order_by_str = $tmp[0]; $order_by_str = $tmp[0];
} }
@@ -1338,7 +1341,7 @@ $pg_anchor = '<ul class="anchor">
<div class="btn_fixed_top"> <div class="btn_fixed_top">
<?php if( $bo_table && $w ){ ?> <?php if ($bo_table && $w) { ?>
<a href="./board_copy.php?bo_table=<?php echo $board['bo_table']; ?>" id="board_copy" target="win_board_copy" class=" btn_02 btn">게시판복사</a> <a href="./board_copy.php?bo_table=<?php echo $board['bo_table']; ?>" id="board_copy" target="win_board_copy" class=" btn_02 btn">게시판복사</a>
<a href="<?php echo get_pretty_url($board['bo_table']); ?>" class=" btn_02 btn">게시판 바로가기</a> <a href="<?php echo get_pretty_url($board['bo_table']); ?>" class=" btn_02 btn">게시판 바로가기</a>
<a href="./board_thumbnail_delete.php?bo_table=<?php echo $board['bo_table'].'&amp;'.$qstr;?>" onclick="return delete_confirm2('게시판 썸네일 파일을 삭제하시겠습니까?');" class="btn_02 btn">게시판 썸네일 삭제</a> <a href="./board_thumbnail_delete.php?bo_table=<?php echo $board['bo_table'].'&amp;'.$qstr;?>" onclick="return delete_confirm2('게시판 썸네일 파일을 삭제하시겠습니까?');" class="btn_02 btn">게시판 썸네일 삭제</a>
@@ -1454,9 +1457,9 @@ jQuery(function($){
function fboardform_submit(f) function fboardform_submit(f)
{ {
<?php <?php
if(!$w){ if (!$w) {
$js_array = get_bo_table_banned_word(); $js_array = get_bo_table_banned_word();
echo "var banned_array = ". json_encode($js_array) . ";\n"; echo "var banned_array = ". json_encode($js_array) . ";\n";
} }
?> ?>
@@ -1492,4 +1495,4 @@ function fboardform_submit(f)
</script> </script>
<?php <?php
include_once ('./admin.tail.php'); require_once './admin.tail.php';
+60 -54
View File
@@ -2,25 +2,34 @@
$sub_menu = "300100"; $sub_menu = "300100";
include_once('./_common.php'); include_once('./_common.php');
if ($w == 'u') if ($w == 'u') {
check_demo(); check_demo();
}
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
check_admin_token(); check_admin_token();
$gr_id = isset($_POST['gr_id']) ? preg_replace('/[^a-z0-9_]/i', '', $_POST['gr_id']) : ''; $gr_id = isset($_POST['gr_id']) ? preg_replace('/[^a-z0-9_]/i', '', (string)$_POST['gr_id']) : '';
$bo_admin = isset($_POST['bo_admin']) ? preg_replace('/[^a-z0-9_\, \|\#]/i', '', $_POST['bo_admin']) : ''; $bo_admin = isset($_POST['bo_admin']) ? preg_replace('/[^a-z0-9_\, \|\#]/i', '', $_POST['bo_admin']) : '';
$bo_subject = isset($_POST['bo_subject']) ? strip_tags(clean_xss_attributes($_POST['bo_subject'])) : ''; $bo_subject = isset($_POST['bo_subject']) ? strip_tags(clean_xss_attributes($_POST['bo_subject'])) : '';
$bo_mobile_subject = isset($_POST['bo_mobile_subject']) ? strip_tags(clean_xss_attributes($_POST['bo_mobile_subject'])) : ''; $bo_mobile_subject = isset($_POST['bo_mobile_subject']) ? strip_tags(clean_xss_attributes($_POST['bo_mobile_subject'])) : '';
if (!$gr_id) { alert('그룹 ID는 반드시 선택하세요.'); } if (!$gr_id) {
if (!$bo_table) { alert('게시판 TABLE명은 반드시 입력하세요.'); } alert('그룹 ID는 반드시 선택하세요.');
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) { alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); } }
if (!$bo_subject) { alert('게시판 제목을 입력하세요.'); } if (!$bo_table) {
alert('게시판 TABLE명은 반드시 입력하세요.');
}
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) {
alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)');
}
if (!$bo_subject) {
alert('게시판 제목을 입력하세요.');
}
// 게시판명이 금지된 단어로 되어 있으면 // 게시판명이 금지된 단어로 되어 있으면
if ( $w == '' && in_array($bo_table, get_bo_table_banned_word()) ){ if ($w == '' && in_array($bo_table, get_bo_table_banned_word())) {
alert('입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.'); alert('입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.');
} }
@@ -28,8 +37,8 @@ $bo_include_head = isset($_POST['bo_include_head']) ? preg_replace(array("#[\\\]
$bo_include_tail = isset($_POST['bo_include_tail']) ? preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($_POST['bo_include_tail'], 0, 255)) : ''; $bo_include_tail = isset($_POST['bo_include_tail']) ? preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($_POST['bo_include_tail'], 0, 255)) : '';
// 관리자가 자동등록방지를 사용해야 할 경우 // 관리자가 자동등록방지를 사용해야 할 경우
if ($board && ($board['bo_include_head'] !== $bo_include_head || $board['bo_include_tail'] !== $bo_include_tail) && function_exists('get_admin_captcha_by') && get_admin_captcha_by()){ if ($board && (isset($board['bo_include_head']) && $board['bo_include_head'] !== $bo_include_head || $board['bo_include_tail'] !== $bo_include_tail) && function_exists('get_admin_captcha_by') && get_admin_captcha_by()) {
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php'); include_once(G5_CAPTCHA_PATH . '/captcha.lib.php');
if (!chk_captcha()) { if (!chk_captcha()) {
alert('자동등록방지 숫자가 틀렸습니다.'); alert('자동등록방지 숫자가 틀렸습니다.');
@@ -39,7 +48,7 @@ if ($board && ($board['bo_include_head'] !== $bo_include_head || $board['bo_incl
if ($file = $bo_include_head) { if ($file = $bo_include_head) {
$file_ext = pathinfo($file, PATHINFO_EXTENSION); $file_ext = pathinfo($file, PATHINFO_EXTENSION);
if( ! $file_ext || ! in_array($file_ext, array('php', 'htm', 'html')) || ! preg_match('/^.*\.(php|htm|html)$/i', $file) ) { if (!$file_ext || !in_array($file_ext, array('php', 'htm', 'html')) || !preg_match('/^.*\.(php|htm|html)$/i', $file)) {
alert('상단 파일 경로의 확장자는 php, htm, html 만 허용합니다.'); alert('상단 파일 경로의 확장자는 php, htm, html 만 허용합니다.');
} }
} }
@@ -47,25 +56,25 @@ if ($file = $bo_include_head) {
if ($file = $bo_include_tail) { if ($file = $bo_include_tail) {
$file_ext = pathinfo($file, PATHINFO_EXTENSION); $file_ext = pathinfo($file, PATHINFO_EXTENSION);
if( ! $file_ext || ! in_array($file_ext, array('php', 'htm', 'html')) || ! preg_match('/^.*\.(php|htm|html)$/i', $file) ) { if (!$file_ext || !in_array($file_ext, array('php', 'htm', 'html')) || !preg_match('/^.*\.(php|htm|html)$/i', $file)) {
alert('하단 파일 경로의 확장자는 php, htm, html 만 허용합니다.'); alert('하단 파일 경로의 확장자는 php, htm, html 만 허용합니다.');
} }
} }
if(!is_include_path_check($bo_include_head, 1)) { if (!is_include_path_check($bo_include_head, 1)) {
alert('상단 파일 경로에 포함시킬수 없는 문자열이 있습니다.'); alert('상단 파일 경로에 포함시킬수 없는 문자열이 있습니다.');
} }
if(!is_include_path_check($bo_include_tail, 1)) { if (!is_include_path_check($bo_include_tail, 1)) {
alert('하단 파일 경로에 포함시킬수 없는 문자열이 있습니다.'); alert('하단 파일 경로에 포함시킬수 없는 문자열이 있습니다.');
} }
if( function_exists('filter_input_include_path') ){ if (function_exists('filter_input_include_path')) {
$bo_include_head = filter_input_include_path($bo_include_head); $bo_include_head = filter_input_include_path($bo_include_head);
$bo_include_tail = filter_input_include_path($bo_include_tail); $bo_include_tail = filter_input_include_path($bo_include_tail);
} }
$board_path = G5_DATA_PATH.'/file/'.$bo_table; $board_path = G5_DATA_PATH . '/file/' . $bo_table;
// 게시판 디렉토리 생성 // 게시판 디렉토리 생성
@mkdir($board_path, G5_DIR_PERMISSION); @mkdir($board_path, G5_DIR_PERMISSION);
@@ -73,7 +82,7 @@ $board_path = G5_DATA_PATH.'/file/'.$bo_table;
// 디렉토리에 있는 파일의 목록을 보이지 않게 한다. // 디렉토리에 있는 파일의 목록을 보이지 않게 한다.
$file = $board_path . '/index.php'; $file = $board_path . '/index.php';
if( $f = @fopen($file, 'w') ){ if ($f = @fopen($file, 'w')) {
@fwrite($f, ''); @fwrite($f, '');
@fclose($f); @fclose($f);
@chmod($file, G5_FILE_PERMISSION); @chmod($file, G5_FILE_PERMISSION);
@@ -84,7 +93,7 @@ $src_char = array('&', '=');
$dst_char = array('&', '〓'); $dst_char = array('&', '〓');
$bo_category_list = isset($_POST['bo_category_list']) ? str_replace($src_char, $dst_char, $_POST['bo_category_list']) : ''; $bo_category_list = isset($_POST['bo_category_list']) ? str_replace($src_char, $dst_char, $_POST['bo_category_list']) : '';
//https://github.com/gnuboard/gnuboard5/commit/f5f4925d4eb28ba1af728e1065fc2bdd9ce1da58 에 따른 조치 //https://github.com/gnuboard/gnuboard5/commit/f5f4925d4eb28ba1af728e1065fc2bdd9ce1da58 에 따른 조치
$str_bo_category_list = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", "", $bo_category_list); $str_bo_category_list = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", "", (string)$bo_category_list);
$bo_use_category = isset($_POST['bo_use_category']) ? (int) $_POST['bo_use_category'] : 0; $bo_use_category = isset($_POST['bo_use_category']) ? (int) $_POST['bo_use_category'] : 0;
$bo_use_sideview = isset($_POST['bo_use_sideview']) ? (int) $_POST['bo_use_sideview'] : 0; $bo_use_sideview = isset($_POST['bo_use_sideview']) ? (int) $_POST['bo_use_sideview'] : 0;
@@ -154,9 +163,9 @@ $bo_sort_field = isset($_POST['bo_sort_field']) ? clean_xss_tags($_POST['bo_sort
$etcs = array(); $etcs = array();
for($i=1;$i<=10;$i++){ for ($i = 1; $i <= 10; $i++) {
$etcs['bo_'.$i.'_subj'] = ${'bo_'.$i.'_subj'} = isset($_POST['bo_'.$i.'_subj']) ? $_POST['bo_'.$i.'_subj'] : ''; $etcs['bo_' . $i . '_subj'] = ${'bo_' . $i . '_subj'} = isset($_POST['bo_' . $i . '_subj']) ? $_POST['bo_' . $i . '_subj'] : '';
$etcs['bo_'.$i] = ${'bo_'.$i} = isset($_POST['bo_'.$i]) ? $_POST['bo_'.$i] : ''; $etcs['bo_' . $i] = ${'bo_' . $i} = isset($_POST['bo_' . $i]) ? $_POST['bo_' . $i] : '';
} }
$sql_common = " gr_id = '{$gr_id}', $sql_common = " gr_id = '{$gr_id}',
@@ -212,9 +221,9 @@ $sql_common = " gr_id = '{$gr_id}',
"; ";
// 최고 관리자인 경우에만 수정가능 // 최고 관리자인 경우에만 수정가능
if ($is_admin === 'super'){ if ($is_admin === 'super') {
$sql_common .= " bo_include_head = '".$bo_include_head."', $sql_common .= " bo_include_head = '" . $bo_include_head . "',
bo_include_tail = '".$bo_include_tail."', bo_include_tail = '" . $bo_include_tail . "',
bo_content_head = '{$bo_content_head}', bo_content_head = '{$bo_content_head}',
bo_content_tail = '{$bo_content_tail}', bo_content_tail = '{$bo_content_tail}',
bo_mobile_content_head = '{$bo_mobile_content_head}', bo_mobile_content_head = '{$bo_mobile_content_head}',
@@ -260,10 +269,10 @@ $sql_common .= " bo_insert_content = '{$bo_insert_content}',
bo_10 = '{$bo_10}' "; bo_10 = '{$bo_10}' ";
if ($w == '') { if ($w == '') {
$row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where bo_table = '{$bo_table}' "); $row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where bo_table = '{$bo_table}' ");
if ($row['cnt']) if ($row['cnt']) {
alert($bo_table.' 은(는) 이미 존재하는 TABLE 입니다.'); alert($bo_table . ' 은(는) 이미 존재하는 TABLE 입니다.');
}
$sql = " insert into {$g5['board_table']} $sql = " insert into {$g5['board_table']}
set bo_table = '{$bo_table}', set bo_table = '{$bo_table}',
@@ -284,10 +293,8 @@ if ($w == '') {
$source = array('/__TABLE_NAME__/', '/;/'); $source = array('/__TABLE_NAME__/', '/;/');
$target = array($create_table, ''); $target = array($create_table, '');
$sql = preg_replace($source, $target, $sql); $sql = preg_replace($source, $target, $sql);
sql_query($sql, FALSE); sql_query($sql, false);
} elseif ($w == 'u') {
} else if ($w == 'u') {
// 게시판의 글 수 // 게시판의 글 수
$sql = " select count(*) as cnt from {$g5['write_prefix']}{$bo_table} where wr_is_comment = 0 "; $sql = " select count(*) as cnt from {$g5['write_prefix']}{$bo_table} where wr_is_comment = 0 ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
@@ -308,7 +315,7 @@ if ($w == '') {
//$sql = " select wr_id from {$g5['write_prefix']}{$bo_table} where wr_is_comment = 0 "; //$sql = " select wr_id from {$g5['write_prefix']}{$bo_table} where wr_is_comment = 0 ";
$sql = " select a.wr_id, (count(b.wr_parent) - 1) as cnt from {$g5['write_prefix']}{$bo_table} a, {$g5['write_prefix']}{$bo_table} b where a.wr_id=b.wr_parent and a.wr_is_comment=0 group by a.wr_id "; $sql = " select a.wr_id, (count(b.wr_parent) - 1) as cnt from {$g5['write_prefix']}{$bo_table} a, {$g5['write_prefix']}{$bo_table} b where a.wr_id=b.wr_parent and a.wr_is_comment=0 group by a.wr_id ";
$result = sql_query($sql); $result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i = 0; $row = sql_fetch_array($result); $i++) {
/* /*
// 코멘트수를 얻습니다. // 코멘트수를 얻습니다.
$sql2 = " select count(*) as cnt from {$g5['write_prefix']}$bo_table where wr_parent = '{$row['wr_id']}' and wr_is_comment = 1 "; $sql2 = " select count(*) as cnt from {$g5['write_prefix']}$bo_table where wr_parent = '{$row['wr_id']}' and wr_is_comment = 1 ";
@@ -324,11 +331,10 @@ if ($w == '') {
$lf = ""; $lf = "";
if ($board['bo_notice']) { if ($board['bo_notice']) {
$tmp_array = explode(",", $board['bo_notice']); $tmp_array = explode(",", $board['bo_notice']);
for ($i=0; $i<count($tmp_array); $i++) { for ($i = 0; $i < count($tmp_array); $i++) {
$tmp_wr_id = trim($tmp_array[$i]); $tmp_wr_id = trim($tmp_array[$i]);
$row = sql_fetch(" select count(*) as cnt from {$g5['write_prefix']}{$bo_table} where wr_id = '{$tmp_wr_id}' "); $row = sql_fetch(" select count(*) as cnt from {$g5['write_prefix']}{$bo_table} where wr_id = '{$tmp_wr_id}' ");
if ($row['cnt']) if ($row['cnt']) {
{
$bo_notice .= $lf . $tmp_wr_id; $bo_notice .= $lf . $tmp_wr_id;
$lf = ","; $lf = ",";
} }
@@ -342,7 +348,6 @@ if ($w == '') {
{$sql_common} {$sql_common}
where bo_table = '{$bo_table}' "; where bo_table = '{$bo_table}' ";
sql_query($sql); sql_query($sql);
} }
@@ -396,9 +401,9 @@ if (is_checked('chk_grp_mobile_gallery_width')) $grp_fields .= " , bo_mobile_gal
if (is_checked('chk_grp_mobile_gallery_height'))$grp_fields .= " , bo_mobile_gallery_height = '{$bo_mobile_gallery_height}' "; if (is_checked('chk_grp_mobile_gallery_height'))$grp_fields .= " , bo_mobile_gallery_height = '{$bo_mobile_gallery_height}' ";
if (is_checked('chk_grp_table_width')) $grp_fields .= " , bo_table_width = '{$bo_table_width}' "; if (is_checked('chk_grp_table_width')) $grp_fields .= " , bo_table_width = '{$bo_table_width}' ";
if (is_checked('chk_grp_page_rows')) $grp_fields .= " , bo_page_rows = '{$bo_page_rows}' "; if (is_checked('chk_grp_page_rows')) $grp_fields .= " , bo_page_rows = '{$bo_page_rows}' ";
if (is_checked('chk_grp_mobile_page_rows')) $grp_fields .= " , bo_mobile_page_rows = '{$bo_mobile_page_rows}' "; if (is_checked('chk_grp_mobile_page_rows')) $grp_fields .= " , bo_mobile_page_rows = '{$bo_mobile_page_rows}' ";
if (is_checked('chk_grp_subject_len')) $grp_fields .= " , bo_subject_len = '{$bo_subject_len}' "; if (is_checked('chk_grp_subject_len')) $grp_fields .= " , bo_subject_len = '{$bo_subject_len}' ";
if (is_checked('chk_grp_mobile_subject_len')) $grp_fields .= " , bo_mobile_subject_len = '{$bo_mobile_subject_len}' "; if (is_checked('chk_grp_mobile_subject_len')) $grp_fields .= " , bo_mobile_subject_len = '{$bo_mobile_subject_len}' ";
if (is_checked('chk_grp_new')) $grp_fields .= " , bo_new = '{$bo_new}' "; if (is_checked('chk_grp_new')) $grp_fields .= " , bo_new = '{$bo_new}' ";
if (is_checked('chk_grp_hot')) $grp_fields .= " , bo_hot = '{$bo_hot}' "; if (is_checked('chk_grp_hot')) $grp_fields .= " , bo_hot = '{$bo_hot}' ";
if (is_checked('chk_grp_image_width')) $grp_fields .= " , bo_image_width = '{$bo_image_width}' "; if (is_checked('chk_grp_image_width')) $grp_fields .= " , bo_image_width = '{$bo_image_width}' ";
@@ -412,7 +417,7 @@ if (is_checked('chk_grp_upload_count')) $grp_fields .= " , bo_upload_cou
if (is_checked('chk_grp_upload_size')) $grp_fields .= " , bo_upload_size = '{$bo_upload_size}' "; if (is_checked('chk_grp_upload_size')) $grp_fields .= " , bo_upload_size = '{$bo_upload_size}' ";
//최고관리자만 수정가능 //최고관리자만 수정가능
if ($is_admin === 'super'){ if ($is_admin === 'super') {
if (is_checked('chk_grp_include_head')) $grp_fields .= " , bo_include_head = '{$bo_include_head}' "; if (is_checked('chk_grp_include_head')) $grp_fields .= " , bo_include_head = '{$bo_include_head}' ";
if (is_checked('chk_grp_include_tail')) $grp_fields .= " , bo_include_tail = '{$bo_include_tail}' "; if (is_checked('chk_grp_include_tail')) $grp_fields .= " , bo_include_tail = '{$bo_include_tail}' ";
if (is_checked('chk_grp_content_head')) $grp_fields .= " , bo_content_head = '{$bo_content_head}' "; if (is_checked('chk_grp_content_head')) $grp_fields .= " , bo_content_head = '{$bo_content_head}' ";
@@ -424,10 +429,10 @@ if ($is_admin === 'super'){
if (is_checked('chk_grp_insert_content')) $grp_fields .= " , bo_insert_content = '{$bo_insert_content}' "; if (is_checked('chk_grp_insert_content')) $grp_fields .= " , bo_insert_content = '{$bo_insert_content}' ";
if (is_checked('chk_grp_use_search')) $grp_fields .= " , bo_use_search = '{$bo_use_search}' "; if (is_checked('chk_grp_use_search')) $grp_fields .= " , bo_use_search = '{$bo_use_search}' ";
if (is_checked('chk_grp_order')) $grp_fields .= " , bo_order = '{$bo_order}' "; if (is_checked('chk_grp_order')) $grp_fields .= " , bo_order = '{$bo_order}' ";
for ($i=1; $i<=10; $i++) { for ($i = 1; $i <= 10; $i++) {
if (is_checked('chk_grp_'.$i)) { if (is_checked('chk_grp_' . $i)) {
$grp_fields .= " , bo_{$i}_subj = '".$etcs['bo_'.$i.'_subj']."' "; $grp_fields .= " , bo_{$i}_subj = '" . $etcs['bo_' . $i . '_subj'] . "' ";
$grp_fields .= " , bo_{$i} = '".$etcs['bo_'.$i]."' "; $grp_fields .= " , bo_{$i} = '" . $etcs['bo_' . $i] . "' ";
} }
} }
@@ -483,12 +488,12 @@ if (is_checked('chk_all_gallery_cols')) $all_fields .= " , bo_gallery_co
if (is_checked('chk_all_gallery_width')) $all_fields .= " , bo_gallery_width = '{$bo_gallery_width}' "; if (is_checked('chk_all_gallery_width')) $all_fields .= " , bo_gallery_width = '{$bo_gallery_width}' ";
if (is_checked('chk_all_gallery_height')) $all_fields .= " , bo_gallery_height = '{$bo_gallery_height}' "; if (is_checked('chk_all_gallery_height')) $all_fields .= " , bo_gallery_height = '{$bo_gallery_height}' ";
if (is_checked('chk_all_mobile_gallery_width')) $all_fields .= " , bo_mobile_gallery_width = '{$bo_mobile_gallery_width}' "; if (is_checked('chk_all_mobile_gallery_width')) $all_fields .= " , bo_mobile_gallery_width = '{$bo_mobile_gallery_width}' ";
if (is_checked('chk_all_mobile_gallery_height'))$all_fields .= " , bo_mobile_gallery_height = '{$bo_mobile_gallery_height}' "; if (is_checked('chk_all_mobile_gallery_height')) $all_fields .= " , bo_mobile_gallery_height = '{$bo_mobile_gallery_height}' ";
if (is_checked('chk_all_table_width')) $all_fields .= " , bo_table_width = '{$bo_table_width}' "; if (is_checked('chk_all_table_width')) $all_fields .= " , bo_table_width = '{$bo_table_width}' ";
if (is_checked('chk_all_page_rows')) $all_fields .= " , bo_page_rows = '{$bo_page_rows}' "; if (is_checked('chk_all_page_rows')) $all_fields .= " , bo_page_rows = '{$bo_page_rows}' ";
if (is_checked('chk_all_mobile_page_rows')) $all_fields .= " , bo_mobile_page_rows = '{$bo_mobile_page_rows}' "; if (is_checked('chk_all_mobile_page_rows')) $all_fields .= " , bo_mobile_page_rows = '{$bo_mobile_page_rows}' ";
if (is_checked('chk_all_subject_len')) $all_fields .= " , bo_subject_len = '{$bo_subject_len}' "; if (is_checked('chk_all_subject_len')) $all_fields .= " , bo_subject_len = '{$bo_subject_len}' ";
if (is_checked('chk_all_mobile_subject_len')) $all_fields .= " , bo_mobile_subject_len = '{$bo_mobile_subject_len}' "; if (is_checked('chk_all_mobile_subject_len')) $all_fields .= " , bo_mobile_subject_len = '{$bo_mobile_subject_len}' ";
if (is_checked('chk_all_new')) $all_fields .= " , bo_new = '{$bo_new}' "; if (is_checked('chk_all_new')) $all_fields .= " , bo_new = '{$bo_new}' ";
if (is_checked('chk_all_hot')) $all_fields .= " , bo_hot = '{$bo_hot}' "; if (is_checked('chk_all_hot')) $all_fields .= " , bo_hot = '{$bo_hot}' ";
if (is_checked('chk_all_image_width')) $all_fields .= " , bo_image_width = '{$bo_image_width}' "; if (is_checked('chk_all_image_width')) $all_fields .= " , bo_image_width = '{$bo_image_width}' ";
@@ -502,7 +507,7 @@ if (is_checked('chk_all_upload_count')) $all_fields .= " , bo_upload_cou
if (is_checked('chk_all_upload_size')) $all_fields .= " , bo_upload_size = '{$bo_upload_size}' "; if (is_checked('chk_all_upload_size')) $all_fields .= " , bo_upload_size = '{$bo_upload_size}' ";
//최고관리자만 수정가능 //최고관리자만 수정가능
if ($is_admin === 'super'){ if ($is_admin === 'super') {
if (is_checked('chk_all_include_head')) $all_fields .= " , bo_include_head = '{$bo_include_head}' "; if (is_checked('chk_all_include_head')) $all_fields .= " , bo_include_head = '{$bo_include_head}' ";
if (is_checked('chk_all_include_tail')) $all_fields .= " , bo_include_tail = '{$bo_include_tail}' "; if (is_checked('chk_all_include_tail')) $all_fields .= " , bo_include_tail = '{$bo_include_tail}' ";
if (is_checked('chk_all_content_head')) $all_fields .= " , bo_content_head = '{$bo_content_head}' "; if (is_checked('chk_all_content_head')) $all_fields .= " , bo_content_head = '{$bo_content_head}' ";
@@ -514,10 +519,10 @@ if ($is_admin === 'super'){
if (is_checked('chk_all_insert_content')) $all_fields .= " , bo_insert_content = '{$bo_insert_content}' "; if (is_checked('chk_all_insert_content')) $all_fields .= " , bo_insert_content = '{$bo_insert_content}' ";
if (is_checked('chk_all_use_search')) $all_fields .= " , bo_use_search = '{$bo_use_search}' "; if (is_checked('chk_all_use_search')) $all_fields .= " , bo_use_search = '{$bo_use_search}' ";
if (is_checked('chk_all_order')) $all_fields .= " , bo_order = '{$bo_order}' "; if (is_checked('chk_all_order')) $all_fields .= " , bo_order = '{$bo_order}' ";
for ($i=1; $i<=10; $i++) { for ($i = 1; $i <= 10; $i++) {
if (is_checked('chk_all_'.$i)) { if (is_checked('chk_all_' . $i)) {
$all_fields .= " , bo_{$i}_subj = '".$etcs['bo_'.$i.'_subj']."' "; $all_fields .= " , bo_{$i}_subj = '" . $etcs['bo_' . $i . '_subj'] . "' ";
$all_fields .= " , bo_{$i} = '".$etcs['bo_'.$i]."' "; $all_fields .= " , bo_{$i} = '" . $etcs['bo_' . $i] . "' ";
} }
} }
@@ -527,8 +532,9 @@ if ($all_fields) {
delete_cache_latest($bo_table); delete_cache_latest($bo_table);
if(function_exists('get_admin_captcha_by')) if (function_exists('get_admin_captcha_by')) {
get_admin_captcha_by('remove'); get_admin_captcha_by('remove');
}
run_event('admin_board_form_update', $bo_table, $w); run_event('admin_board_form_update', $bo_table, $w);
+159 -163
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = "300100"; $sub_menu = "300100";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
@@ -15,13 +15,13 @@ if ($is_admin != "super") {
if ($stx) { if ($stx) {
$sql_search .= " and ( "; $sql_search .= " and ( ";
switch ($sfl) { switch ($sfl) {
case "bo_table" : case "bo_table":
$sql_search .= " ($sfl like '$stx%') "; $sql_search .= " ($sfl like '$stx%') ";
break; break;
case "a.gr_id" : case "a.gr_id":
$sql_search .= " ($sfl = '$stx') "; $sql_search .= " ($sfl = '$stx') ";
break; break;
default : default:
$sql_search .= " ($sfl like '%$stx%') "; $sql_search .= " ($sfl like '%$stx%') ";
break; break;
} }
@@ -40,16 +40,18 @@ $total_count = $row['cnt'];
$rows = $config['cf_page_rows']; $rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산 $total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지) if ($page < 1) {
$page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
}
$from_record = ($page - 1) * $rows; // 시작 열을 구함 $from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} "; $sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql); $result = sql_query($sql);
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">전체목록</a>'; $listall = '<a href="' . $_SERVER['SCRIPT_NAME'] . '" class="ov_listall">전체목록</a>';
$g5['title'] = '게시판관리'; $g5['title'] = '게시판관리';
include_once('./admin.head.php'); require_once './admin.head.php';
$colspan = 15; $colspan = 15;
?> ?>
@@ -60,179 +62,173 @@ $colspan = 15;
</div> </div>
<form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get"> <form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get">
<label for="sfl" class="sound_only">검색대상</label>
<label for="sfl" class="sound_only">검색대상</label> <select name="sfl" id="sfl">
<select name="sfl" id="sfl"> <option value="bo_table" <?php echo get_selected($sfl, "bo_table", true); ?>>TABLE</option>
<option value="bo_table"<?php echo get_selected($sfl, "bo_table", true); ?>>TABLE</option> <option value="bo_subject" <?php echo get_selected($sfl, "bo_subject"); ?>>제목</option>
<option value="bo_subject"<?php echo get_selected($sfl, "bo_subject"); ?>>제목</option> <option value="a.gr_id" <?php echo get_selected($sfl, "a.gr_id"); ?>>그룹ID</option>
<option value="a.gr_id"<?php echo get_selected($sfl, "a.gr_id"); ?>>그룹ID</option> </select>
</select> <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label> <input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input">
<input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input"> <input type="submit" value="검색" class="btn_submit">
<input type="submit" value="검색" class="btn_submit">
</form> </form>
<form name="fboardlist" id="fboardlist" action="./board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post"> <form name="fboardlist" id="fboardlist" action="./board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo isset($token) ? $token : ''; ?>"> <input type="hidden" name="token" value="<?php echo isset($token) ? $token : ''; ?>">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col"> <th scope="col">
<label for="chkall" class="sound_only">게시판 전체</label> <label for="chkall" class="sound_only">게시판 전체</label>
<input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)"> <input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)">
</th> </th>
<th scope="col"><?php echo subject_sort_link('a.gr_id') ?>그룹</a></th> <th scope="col"><?php echo subject_sort_link('a.gr_id') ?>그룹</a></th>
<th scope="col"><?php echo subject_sort_link('bo_table') ?>TABLE</a></th> <th scope="col"><?php echo subject_sort_link('bo_table') ?>TABLE</a></th>
<th scope="col"><?php echo subject_sort_link('bo_skin', '', 'desc') ?>스킨</a></th> <th scope="col"><?php echo subject_sort_link('bo_skin', '', 'desc') ?>스킨</a></th>
<th scope="col"><?php echo subject_sort_link('bo_mobile_skin', '', 'desc') ?>모바일<br>스킨</a></th> <th scope="col"><?php echo subject_sort_link('bo_mobile_skin', '', 'desc') ?>모바일<br>스킨</a></th>
<th scope="col"><?php echo subject_sort_link('bo_subject') ?>제목</a></th> <th scope="col"><?php echo subject_sort_link('bo_subject') ?>제목</a></th>
<th scope="col">읽기P<span class="sound_only">포인트</span></th> <th scope="col">읽기P<span class="sound_only">포인트</span></th>
<th scope="col">쓰기P<span class="sound_only">포인트</span></th> <th scope="col">쓰기P<span class="sound_only">포인트</span></th>
<th scope="col">댓글P<span class="sound_only">포인트</span></th> <th scope="col">댓글P<span class="sound_only">포인트</span></th>
<th scope="col">다운P<span class="sound_only">포인트</span></th> <th scope="col">다운P<span class="sound_only">포인트</span></th>
<th scope="col"><?php echo subject_sort_link('bo_use_sns') ?>SNS<br>사용</a></th> <th scope="col"><?php echo subject_sort_link('bo_use_sns') ?>SNS<br>사용</a></th>
<th scope="col"><?php echo subject_sort_link('bo_use_search') ?>검색<br>사용</a></th> <th scope="col"><?php echo subject_sort_link('bo_use_search') ?>검색<br>사용</a></th>
<th scope="col"><?php echo subject_sort_link('bo_order') ?>출력<br>순서</a></th> <th scope="col"><?php echo subject_sort_link('bo_order') ?>출력<br>순서</a></th>
<th scope="col">접속기기</th> <th scope="col">접속기기</th>
<th scope="col">관리</th> <th scope="col">관리</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i = 0; $row = sql_fetch_array($result); $i++) {
$one_update = '<a href="./board_form.php?w=u&amp;bo_table='.$row['bo_table'].'&amp;'.$qstr.'" class="btn btn_03">수정</a>'; $one_update = '<a href="./board_form.php?w=u&amp;bo_table=' . $row['bo_table'] . '&amp;' . $qstr . '" class="btn btn_03">수정</a>';
$one_copy = '<a href="./board_copy.php?bo_table='.$row['bo_table'].'" class="board_copy btn btn_02" target="win_board_copy">복사</a>'; $one_copy = '<a href="./board_copy.php?bo_table=' . $row['bo_table'] . '" class="board_copy btn btn_02" target="win_board_copy">복사</a>';
$bg = 'bg'.($i%2); $bg = 'bg' . ($i % 2);
?> ?>
<tr class="<?php echo $bg; ?>"> <tr class="<?php echo $bg; ?>">
<td class="td_chk"> <td class="td_chk">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo get_text($row['bo_subject']) ?></label> <label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo get_text($row['bo_subject']) ?></label>
<input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>"> <input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
</td> </td>
<td> <td>
<?php if ($is_admin == 'super'){ ?> <?php if ($is_admin == 'super') { ?>
<?php echo get_group_select("gr_id[$i]", $row['gr_id']) ?> <?php echo get_group_select("gr_id[$i]", $row['gr_id']) ?>
<?php }else{ ?> <?php } else { ?>
<input type="hidden" name="gr_id[<?php echo $i ?>]" value="<?php echo $row['gr_id'] ?>"><?php echo $row['gr_subject'] ?> <input type="hidden" name="gr_id[<?php echo $i ?>]" value="<?php echo $row['gr_id'] ?>"><?php echo $row['gr_subject'] ?>
<?php } ?> <?php } ?>
</td> </td>
<td> <td>
<input type="hidden" name="board_table[<?php echo $i ?>]" value="<?php echo $row['bo_table'] ?>"> <input type="hidden" name="board_table[<?php echo $i ?>]" value="<?php echo $row['bo_table'] ?>">
<a href="<?php echo get_pretty_url($row['bo_table']) ?>"><?php echo $row['bo_table'] ?></a> <a href="<?php echo get_pretty_url($row['bo_table']) ?>"><?php echo $row['bo_table'] ?></a>
</td> </td>
<td> <td>
<label for="bo_skin_<?php echo $i; ?>" class="sound_only">스킨</label> <label for="bo_skin_<?php echo $i; ?>" class="sound_only">스킨</label>
<?php echo get_skin_select('board', 'bo_skin_'.$i, "bo_skin[$i]", $row['bo_skin']); ?> <?php echo get_skin_select('board', 'bo_skin_' . $i, "bo_skin[$i]", $row['bo_skin']); ?>
</td> </td>
<td> <td>
<label for="bo_mobile_skin_<?php echo $i; ?>" class="sound_only">모바일 스킨</label> <label for="bo_mobile_skin_<?php echo $i; ?>" class="sound_only">모바일 스킨</label>
<?php echo get_mobile_skin_select('board', 'bo_mobile_skin_'.$i, "bo_mobile_skin[$i]", $row['bo_mobile_skin']); ?> <?php echo get_mobile_skin_select('board', 'bo_mobile_skin_' . $i, "bo_mobile_skin[$i]", $row['bo_mobile_skin']); ?>
</td> </td>
<td> <td>
<label for="bo_subject_<?php echo $i; ?>" class="sound_only">게시판 제목<strong class="sound_only"> 필수</strong></label> <label for="bo_subject_<?php echo $i; ?>" class="sound_only">게시판 제목<strong class="sound_only"> 필수</strong></label>
<input type="text" name="bo_subject[<?php echo $i ?>]" value="<?php echo get_text($row['bo_subject']) ?>" id="bo_subject_<?php echo $i ?>" required class="required tbl_input bo_subject full_input" size="10"> <input type="text" name="bo_subject[<?php echo $i ?>]" value="<?php echo get_text($row['bo_subject']) ?>" id="bo_subject_<?php echo $i ?>" required class="required tbl_input bo_subject full_input" size="10">
</td> </td>
<td class="td_numsmall"> <td class="td_numsmall">
<label for="bo_read_point_<?php echo $i; ?>" class="sound_only">읽기 포인트</label> <label for="bo_read_point_<?php echo $i; ?>" class="sound_only">읽기 포인트</label>
<input type="text" name="bo_read_point[<?php echo $i ?>]" value="<?php echo $row['bo_read_point'] ?>" id="bo_read_point_<?php echo $i; ?>" class="tbl_input" size="2"> <input type="text" name="bo_read_point[<?php echo $i ?>]" value="<?php echo $row['bo_read_point'] ?>" id="bo_read_point_<?php echo $i; ?>" class="tbl_input" size="2">
</td> </td>
<td class="td_numsmall"> <td class="td_numsmall">
<label for="bo_write_point_<?php echo $i; ?>" class="sound_only">쓰기 포인트</label> <label for="bo_write_point_<?php echo $i; ?>" class="sound_only">쓰기 포인트</label>
<input type="text" name="bo_write_point[<?php echo $i ?>]" value="<?php echo $row['bo_write_point'] ?>" id="bo_write_point_<?php echo $i; ?>" class="tbl_input" size="2"> <input type="text" name="bo_write_point[<?php echo $i ?>]" value="<?php echo $row['bo_write_point'] ?>" id="bo_write_point_<?php echo $i; ?>" class="tbl_input" size="2">
</td> </td>
<td class="td_numsmall"> <td class="td_numsmall">
<label for="bo_comment_point_<?php echo $i; ?>" class="sound_only">댓글 포인트</label> <label for="bo_comment_point_<?php echo $i; ?>" class="sound_only">댓글 포인트</label>
<input type="text" name="bo_comment_point[<?php echo $i ?>]" value="<?php echo $row['bo_comment_point'] ?>" id="bo_comment_point_<?php echo $i; ?>" class="tbl_input" size="2"> <input type="text" name="bo_comment_point[<?php echo $i ?>]" value="<?php echo $row['bo_comment_point'] ?>" id="bo_comment_point_<?php echo $i; ?>" class="tbl_input" size="2">
</td> </td>
<td class="td_numsmall"> <td class="td_numsmall">
<label for="bo_download_point_<?php echo $i; ?>" class="sound_only">다운<br>포인트</label> <label for="bo_download_point_<?php echo $i; ?>" class="sound_only">다운<br>포인트</label>
<input type="text" name="bo_download_point[<?php echo $i ?>]" value="<?php echo $row['bo_download_point'] ?>" id="bo_download_point_<?php echo $i; ?>" class="tbl_input" size="2"> <input type="text" name="bo_download_point[<?php echo $i ?>]" value="<?php echo $row['bo_download_point'] ?>" id="bo_download_point_<?php echo $i; ?>" class="tbl_input" size="2">
</td> </td>
<td class="td_numsmall"> <td class="td_numsmall">
<label for="bo_use_sns_<?php echo $i; ?>" class="sound_only">SNS<br>사용</label> <label for="bo_use_sns_<?php echo $i; ?>" class="sound_only">SNS<br>사용</label>
<input type="checkbox" name="bo_use_sns[<?php echo $i ?>]" value="1" id="bo_use_sns_<?php echo $i ?>" <?php echo $row['bo_use_sns']?"checked":"" ?>> <input type="checkbox" name="bo_use_sns[<?php echo $i ?>]" value="1" id="bo_use_sns_<?php echo $i ?>" <?php echo $row['bo_use_sns'] ? "checked" : "" ?>>
</td> </td>
<td class="td_numsmall"> <td class="td_numsmall">
<label for="bo_use_search_<?php echo $i; ?>" class="sound_only">검색<br>사용</label> <label for="bo_use_search_<?php echo $i; ?>" class="sound_only">검색<br>사용</label>
<input type="checkbox" name="bo_use_search[<?php echo $i ?>]" value="1" id="bo_use_search_<?php echo $i ?>" <?php echo $row['bo_use_search']?"checked":"" ?>> <input type="checkbox" name="bo_use_search[<?php echo $i ?>]" value="1" id="bo_use_search_<?php echo $i ?>" <?php echo $row['bo_use_search'] ? "checked" : "" ?>>
</td> </td>
<td class="td_numsmall"> <td class="td_numsmall">
<label for="bo_order_<?php echo $i; ?>" class="sound_only">출력<br>순서</label> <label for="bo_order_<?php echo $i; ?>" class="sound_only">출력<br>순서</label>
<input type="text" name="bo_order[<?php echo $i ?>]" value="<?php echo $row['bo_order'] ?>" id="bo_order_<?php echo $i ?>" class="tbl_input" size="2"> <input type="text" name="bo_order[<?php echo $i ?>]" value="<?php echo $row['bo_order'] ?>" id="bo_order_<?php echo $i ?>" class="tbl_input" size="2">
</td> </td>
<td class="td_mngsmall"> <td class="td_mngsmall">
<label for="bo_device_<?php echo $i; ?>" class="sound_only">접속기기</label> <label for="bo_device_<?php echo $i; ?>" class="sound_only">접속기기</label>
<select name="bo_device[<?php echo $i ?>]" id="bo_device_<?php echo $i ?>"> <select name="bo_device[<?php echo $i ?>]" id="bo_device_<?php echo $i ?>">
<option value="both"<?php echo get_selected($row['bo_device'], 'both', true); ?>>모두</option> <option value="both" <?php echo get_selected($row['bo_device'], 'both', true); ?>>모두</option>
<option value="pc"<?php echo get_selected($row['bo_device'], 'pc'); ?>>PC</option> <option value="pc" <?php echo get_selected($row['bo_device'], 'pc'); ?>>PC</option>
<option value="mobile"<?php echo get_selected($row['bo_device'], 'mobile'); ?>>모바일</option> <option value="mobile" <?php echo get_selected($row['bo_device'], 'mobile'); ?>>모바일</option>
</select> </select>
</td> </td>
<td class="td_mng td_mng_m"> <td class="td_mng td_mng_m">
<?php echo $one_update ?> <?php echo $one_update ?>
<?php echo $one_copy ?> <?php echo $one_copy ?>
</td> </td>
</tr> </tr>
<?php <?php
} }
if ($i == 0) if ($i == 0) {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>'; echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
?> }
</tbody> ?>
</table> </tbody>
</div> </table>
</div>
<div class="btn_fixed_top"> <div class="btn_fixed_top">
<input type="submit" name="act_button" value="선택수정" onclick="document.pressed=this.value" class="btn_02 btn"> <input type="submit" name="act_button" value="선택수정" onclick="document.pressed=this.value" class="btn_02 btn">
<?php if ($is_admin == 'super') { ?> <?php if ($is_admin == 'super') { ?>
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value" class="btn_02 btn"> <input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value" class="btn_02 btn">
<?php } ?> <a href="./board_form.php" id="bo_add" class="btn_01 btn">게시판 추가</a>
<?php if ($is_admin == 'super') { ?> <?php } ?>
<a href="./board_form.php" id="bo_add" class="btn_01 btn">게시판 추가</a> </div>
<?php } ?>
</div>
</form> </form>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'].'?'.$qstr.'&amp;page='); ?> <?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'] . '?' . $qstr . '&amp;page='); ?>
<script> <script>
function fboardlist_submit(f) function fboardlist_submit(f) {
{ if (!is_checked("chk[]")) {
if (!is_checked("chk[]")) { alert(document.pressed + " 하실 항목을 하나 이상 선택하세요.");
alert(document.pressed+" 하실 항목을 하나 이상 선택하세요.");
return false;
}
if(document.pressed == "선택삭제") {
if(!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false; return false;
} }
if (document.pressed == "선택삭제") {
if (!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false;
}
}
return true;
} }
return true; $(function() {
} $(".board_copy").click(function() {
window.open(this.href, "win_board_copy", "left=100,top=100,width=550,height=450");
$(function(){ return false;
$(".board_copy").click(function(){ });
window.open(this.href, "win_board_copy", "left=100,top=100,width=550,height=450");
return false;
}); });
});
</script> </script>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+34 -35
View File
@@ -1,26 +1,24 @@
<?php <?php
$sub_menu = "300100"; $sub_menu = "300100";
include_once('./_common.php'); require_once './_common.php';
check_demo(); check_demo();
$post_count_chk = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0; $post_count_chk = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0;
$chk = (isset($_POST['chk']) && is_array($_POST['chk'])) ? $_POST['chk'] : array(); $chk = (isset($_POST['chk']) && is_array($_POST['chk'])) ? $_POST['chk'] : array();
$act_button = isset($_POST['act_button']) ? strip_tags($_POST['act_button']) : ''; $act_button = isset($_POST['act_button']) ? strip_tags($_POST['act_button']) : '';
$board_table = (isset($_POST['board_table']) && is_array($_POST['board_table'])) ? $_POST['board_table'] : array(); $board_table = (isset($_POST['board_table']) && is_array($_POST['board_table'])) ? $_POST['board_table'] : array();
if (! $post_count_chk) { if (!$post_count_chk) {
alert($act_button." 하실 항목을 하나 이상 체크하세요."); alert($act_button . " 하실 항목을 하나 이상 체크하세요.");
} }
check_admin_token(); check_admin_token();
if ($act_button === "선택수정") { if ($act_button === "선택수정") {
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
for ($i=0; $i<$post_count_chk; $i++) { for ($i = 0; $i < $post_count_chk; $i++) {
// 실제 번호를 넘김 // 실제 번호를 넘김
$k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0; $k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0;
@@ -39,59 +37,60 @@ if ($act_button === "선택수정") {
if ($is_admin != 'super') { if ($is_admin != 'super') {
$sql = " select count(*) as cnt from {$g5['board_table']} a, {$g5['group_table']} b $sql = " select count(*) as cnt from {$g5['board_table']} a, {$g5['group_table']} b
where a.gr_id = '".sql_real_escape_string($post_gr_id)."' where a.gr_id = '" . sql_real_escape_string($post_gr_id) . "'
and a.gr_id = b.gr_id and a.gr_id = b.gr_id
and b.gr_admin = '{$member['mb_id']}' "; and b.gr_admin = '{$member['mb_id']}' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
if (!$row['cnt']) if (!$row['cnt']) {
alert('최고관리자가 아닌 경우 다른 관리자의 게시판('.$board_table[$k].')은 수정이 불가합니다.'); alert('최고관리자가 아닌 경우 다른 관리자의 게시판(' . $board_table[$k] . ')은 수정이 불가합니다.');
}
} }
$p_bo_subject = is_array($_POST['bo_subject']) ? strip_tags(clean_xss_attributes($_POST['bo_subject'][$k])) : ''; $p_bo_subject = is_array($_POST['bo_subject']) ? strip_tags(clean_xss_attributes($_POST['bo_subject'][$k])) : '';
$sql = " update {$g5['board_table']} $sql = " update {$g5['board_table']}
set gr_id = '".sql_real_escape_string($post_gr_id)."', set gr_id = '" . sql_real_escape_string($post_gr_id) . "',
bo_subject = '".$p_bo_subject."', bo_subject = '" . $p_bo_subject . "',
bo_device = '".sql_real_escape_string($post_bo_device)."', bo_device = '" . sql_real_escape_string($post_bo_device) . "',
bo_skin = '".sql_real_escape_string($post_bo_skin)."', bo_skin = '" . sql_real_escape_string($post_bo_skin) . "',
bo_mobile_skin = '".sql_real_escape_string($post_bo_mobile_skin)."', bo_mobile_skin = '" . sql_real_escape_string($post_bo_mobile_skin) . "',
bo_read_point = '".sql_real_escape_string($post_bo_read_point)."', bo_read_point = '" . sql_real_escape_string($post_bo_read_point) . "',
bo_write_point = '".sql_real_escape_string($post_bo_write_point)."', bo_write_point = '" . sql_real_escape_string($post_bo_write_point) . "',
bo_comment_point = '".sql_real_escape_string($post_bo_comment_point)."', bo_comment_point = '" . sql_real_escape_string($post_bo_comment_point) . "',
bo_download_point = '".sql_real_escape_string($post_bo_download_point)."', bo_download_point = '" . sql_real_escape_string($post_bo_download_point) . "',
bo_use_search = '".sql_real_escape_string($post_bo_use_search)."', bo_use_search = '" . sql_real_escape_string($post_bo_use_search) . "',
bo_use_sns = '".sql_real_escape_string($post_bo_use_sns)."', bo_use_sns = '" . sql_real_escape_string($post_bo_use_sns) . "',
bo_order = '".sql_real_escape_string($post_bo_order)."' bo_order = '" . sql_real_escape_string($post_bo_order) . "'
where bo_table = '".sql_real_escape_string($post_board_table)."' "; where bo_table = '" . sql_real_escape_string($post_board_table) . "' ";
sql_query($sql); sql_query($sql);
} }
} elseif ($act_button === "선택삭제") {
} else if ($act_button === "선택삭제") { if ($is_admin != 'super') {
if ($is_admin != 'super')
alert('게시판 삭제는 최고관리자만 가능합니다.'); alert('게시판 삭제는 최고관리자만 가능합니다.');
}
auth_check_menu($auth, $sub_menu, 'd'); auth_check_menu($auth, $sub_menu, 'd');
// _BOARD_DELETE_ 상수를 선언해야 board_delete.inc.php 가 정상 작동함 // _BOARD_DELETE_ 상수를 선언해야 board_delete.inc.php 가 정상 작동함
/* 확인필요 22.05.27
A file should declare new symbols (classes, functions, constants, etc.) and cause no other side effects,
or it should execute logic with side effects, but should not do both.*/
define('_BOARD_DELETE_', true); define('_BOARD_DELETE_', true);
for ($i=0; $i<$post_count_chk; $i++) { for ($i = 0; $i < $post_count_chk; $i++) {
// 실제 번호를 넘김 // 실제 번호를 넘김
$k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0; $k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0;
// include 전에 $bo_table 값을 반드시 넘겨야 함 // include 전에 $bo_table 값을 반드시 넘겨야 함
$tmp_bo_table = isset($_POST['board_table'][$k]) ? trim(clean_xss_tags($_POST['board_table'][$k], 1, 1)) : ''; $tmp_bo_table = isset($_POST['board_table'][$k]) ? trim(clean_xss_tags($_POST['board_table'][$k], 1, 1)) : '';
if( preg_match("/^[A-Za-z0-9_]+$/", $tmp_bo_table) ){ if (preg_match("/^[A-Za-z0-9_]+$/", $tmp_bo_table)) {
include ('./board_delete.inc.php'); include './board_delete.inc.php';
} }
} }
} }
run_event('admin_board_list_update', $act_button, $chk, $board_table, $qstr); run_event('admin_board_list_update', $act_button, $chk, $board_table, $qstr);
goto_url('./board_list.php?'.$qstr); goto_url('./board_list.php?' . $qstr);
+15 -13
View File
@@ -1,14 +1,15 @@
<?php <?php
$sub_menu = '300100'; $sub_menu = '300100';
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
if(!$board['bo_table']) if (!$board['bo_table']) {
alert('존재하지 않는 게시판입니다.'); alert('존재하지 않는 게시판입니다.');
}
$g5['title'] = $board['bo_subject'].' 게시판 썸네일 삭제'; $g5['title'] = $board['bo_subject'] . ' 게시판 썸네일 삭제';
include_once('./admin.head.php'); require_once './admin.head.php';
?> ?>
<div class="local_desc02 local_desc"> <div class="local_desc02 local_desc">
@@ -18,28 +19,29 @@ include_once('./admin.head.php');
</div> </div>
<?php <?php
$dir = G5_DATA_PATH.'/file/'.$bo_table; $dir = G5_DATA_PATH . '/file/' . $bo_table;
$cnt = 0; $cnt = 0;
if(is_dir($dir)) { if (is_dir($dir)) {
echo '<ul>'; echo '<ul>';
$files = glob($dir.'/thumb-*'); $files = glob($dir . '/thumb-*');
if (is_array($files)) { if (is_array($files)) {
foreach($files as $thumbnail) { foreach ($files as $thumbnail) {
$cnt++; $cnt++;
@unlink($thumbnail); @unlink($thumbnail);
echo '<li>'.$thumbnail.'</li>'.PHP_EOL; echo '<li>' . $thumbnail . '</li>' . PHP_EOL;
flush(); flush();
if ($cnt%10==0) if (($cnt % 10) == 0) {
echo PHP_EOL; echo PHP_EOL;
}
} }
} }
echo '<li>완료됨</li></ul>'.PHP_EOL; echo '<li>완료됨</li></ul>' . PHP_EOL;
echo '<div class="local_desc01 local_desc"><p><strong>썸네일 '.$cnt.'건의 삭제 완료됐습니다.</strong></p></div>'.PHP_EOL; echo '<div class="local_desc01 local_desc"><p><strong>썸네일 ' . $cnt . '건의 삭제 완료됐습니다.</strong></p></div>' . PHP_EOL;
} else { } else {
echo '<p>첨부파일 디렉토리가 존재하지 않습니다.</p>'; echo '<p>첨부파일 디렉토리가 존재하지 않습니다.</p>';
} }
@@ -48,4 +50,4 @@ if(is_dir($dir)) {
<div class="btn_confirm01 btn_confirm"><a href="./board_form.php?w=u&amp;bo_table=<?php echo $bo_table; ?>&amp;<?php echo $qstr; ?>">게시판 수정으로 돌아가기</a></div> <div class="btn_confirm01 btn_confirm"><a href="./board_form.php?w=u&amp;bo_table=<?php echo $bo_table; ?>&amp;<?php echo $qstr; ?>">게시판 수정으로 돌아가기</a></div>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+122 -109
View File
@@ -1,141 +1,155 @@
<?php <?php
$sub_menu = "300200"; $sub_menu = "300200";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
if ($is_admin != 'super' && $w == '') alert('최고관리자만 접근 가능합니다.'); if ($is_admin != 'super' && $w == '') {
alert('최고관리자만 접근 가능합니다.');
}
$html_title = '게시판그룹'; $html_title = '게시판그룹';
$gr_id_attr = ''; $gr_id_attr = '';
$sound_only = ''; $sound_only = '';
if( ! isset($group['gr_id']) ){ if (!isset($group['gr_id'])) {
$group['gr_id'] = ''; $group['gr_id'] = '';
$group['gr_subject'] = ''; $group['gr_subject'] = '';
$group['gr_device'] = ''; $group['gr_device'] = '';
} }
$gr = array('gr_use_access' => 0, 'gr_admin' => '');
if ($w == '') { if ($w == '') {
$gr_id_attr = 'required'; $gr_id_attr = 'required';
$sound_only = '<strong class="sound_only"> 필수</strong>'; $sound_only = '<strong class="sound_only"> 필수</strong>';
$gr = array('gr_use_access' => 0, 'gr_admin'=>'');
$html_title .= ' 생성'; $html_title .= ' 생성';
} else if ($w == 'u') { } elseif ($w == 'u') {
$gr_id_attr = 'readonly'; $gr_id_attr = 'readonly';
$gr = sql_fetch(" select * from {$g5['group_table']} where gr_id = '$gr_id' "); $gr = sql_fetch(" select * from {$g5['group_table']} where gr_id = '$gr_id' ");
$html_title .= ' 수정'; $html_title .= ' 수정';
} } else {
else
alert('제대로 된 값이 넘어오지 않았습니다.'); alert('제대로 된 값이 넘어오지 않았습니다.');
}
if (!isset($group['gr_device'])) { if (!isset($group['gr_device'])) {
sql_query(" ALTER TABLE `{$g5['group_table']}` ADD `gr_device` ENUM('both','pc','mobile') NOT NULL DEFAULT 'both' AFTER `gr_subject` ", false); sql_query(" ALTER TABLE `{$g5['group_table']}` ADD `gr_device` ENUM('both','pc','mobile') NOT NULL DEFAULT 'both' AFTER `gr_subject` ", false);
} }
// 접근회원수
$sql1 = " select count(*) as cnt from {$g5['group_member_table']} where gr_id = '{$gr_id}' ";
$row1 = sql_fetch($sql1);
$group_member_count = $row1['cnt'];
$g5['title'] = $html_title; $g5['title'] = $html_title;
include_once('./admin.head.php'); require_once './admin.head.php';
?> ?>
<form name="fboardgroup" id="fboardgroup" action="./boardgroup_form_update.php" onsubmit="return fboardgroup_check(this);" method="post" autocomplete="off"> <form name="fboardgroup" id="fboardgroup" action="./boardgroup_form_update.php" onsubmit="return fboardgroup_check(this);" method="post" autocomplete="off">
<input type="hidden" name="w" value="<?php echo $w ?>"> <input type="hidden" name="w" value="<?php echo $w ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?></caption> <caption><?php echo $g5['title']; ?></caption>
<colgroup> <colgroup>
<col class="grid_4"> <col class="grid_4">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="gr_id">그룹 ID<?php echo $sound_only ?></label></th> <th scope="row"><label for="gr_id">그룹 ID<?php echo $sound_only ?></label></th>
<td><input type="text" name="gr_id" value="<?php echo $group['gr_id'] ?>" id="gr_id" <?php echo $gr_id_attr; ?> class="<?php echo $gr_id_attr; ?> alnum_ frm_input" maxlength="10"> <td><input type="text" name="gr_id" value="<?php echo $group['gr_id'] ?>" id="gr_id" <?php echo $gr_id_attr; ?> class="<?php echo $gr_id_attr; ?> alnum_ frm_input" maxlength="10">
<?php <?php
if ($w=='') if ($w == '') {
echo '영문자, 숫자, _ 만 가능 (공백없이)'; echo '영문자, 숫자, _ 만 가능 (공백없이)';
else } else {
echo '<a href="'.G5_BBS_URL.'/group.php?gr_id='.$group['gr_id'].'" class="btn_frmline">게시판그룹 바로가기</a>'; echo '<a href="' . G5_BBS_URL . '/group.php?gr_id=' . $group['gr_id'] . '" class="btn_frmline">게시판그룹 바로가기</a>';
?> }
</td> ?>
</tr> </td>
<tr> </tr>
<th scope="row"><label for="gr_subject">그룹 제목<strong class="sound_only"> 필수</strong></label></th> <tr>
<td> <th scope="row"><label for="gr_subject">그룹 제목<strong class="sound_only"> 필수</strong></label></th>
<input type="text" name="gr_subject" value="<?php echo get_text($group['gr_subject']) ?>" id="gr_subject" required class="required frm_input" size="80"> <td>
<?php <input type="text" name="gr_subject" value="<?php echo get_text($group['gr_subject']) ?>" id="gr_subject" required class="required frm_input" size="80">
if ($w == 'u') <?php
echo '<a href="./board_form.php?gr_id='.$gr_id.'" class="btn_frmline">게시판생성</a>'; if ($w == 'u') {
?> echo '<a href="./board_form.php?gr_id=' . $gr_id . '" class="btn_frmline">게시판생성</a>';
</td> }
</tr> ?>
<tr> </td>
<th scope="row"><label for="gr_device">접속기기</label></th> </tr>
<td> <tr>
<?php echo help("PC 와 모바일 사용을 구분합니다.") ?> <th scope="row"><label for="gr_device">접속기기</label></th>
<select id="gr_device" name="gr_device"> <td>
<option value="both"<?php echo get_selected($group['gr_device'], 'both', true); ?>>PC와 모바일에서 모두 사용</option> <?php echo help("PC 와 모바일 사용을 구분합니다.") ?>
<option value="pc"<?php echo get_selected($group['gr_device'], 'pc'); ?>>PC 전용</option> <select id="gr_device" name="gr_device">
<option value="mobile"<?php echo get_selected($group['gr_device'], 'mobile'); ?>>모바일 전용</option> <option value="both" <?php echo get_selected($group['gr_device'], 'both', true); ?>>PC와 모바일에서 모두 사용</option>
</select> <option value="pc" <?php echo get_selected($group['gr_device'], 'pc'); ?>>PC 전용</option>
</td> <option value="mobile" <?php echo get_selected($group['gr_device'], 'mobile'); ?>>모바일 전용</option>
</tr> </select>
<tr> </td>
<th scope="row"><?php if ($is_admin == 'super') { ?><label for="gr_admin"><?php } ?>그룹 관리자<?php if ($is_admin == 'super') { ?></label><?php } ?></th> </tr>
<td> <tr>
<?php <th scope="row">
if ($is_admin == 'super') <?php
echo '<input type="text" id="gr_admin" name="gr_admin" class="frm_input" value="'.$gr['gr_admin'].'" maxlength="20">'; if ($is_admin == 'super') {
else echo '<label for="gr_admin">그룹 관리자</label>';
echo '<input type="hidden" id="gr_admin" name="gr_admin" value="'.$gr['gr_admin'].'">'.$gr['gr_admin']; } else {
?> echo '그룹 관리자';
</td> }
</tr> ?>
<tr> </th>
<th scope="row"><label for="gr_use_access">접근회원사용</label></th> <td>
<td> <?php
<?php echo help("사용에 체크하시면 이 그룹에 속한 게시판은 접근가능한 회원만 접근이 가능합니다.") ?> if ($is_admin == 'super') {
<input type="checkbox" name="gr_use_access" value="1" id="gr_use_access" <?php echo $gr['gr_use_access']?'checked':''; ?>> echo '<input type="text" id="gr_admin" name="gr_admin" class="frm_input" value="' . $gr['gr_admin'] . '" maxlength="20">';
사용 } else {
</td> echo '<input type="hidden" id="gr_admin" name="gr_admin" value="' . $gr['gr_admin'] . '">' . $gr['gr_admin'];
</tr> }
<tr> ?>
<th scope="row">접근회원수</th> </td>
<td> </tr>
<?php <tr>
// 접근회원수 <th scope="row"><label for="gr_use_access">접근회원사용</label></th>
$sql1 = " select count(*) as cnt from {$g5['group_member_table']} where gr_id = '{$gr_id}' "; <td>
$row1 = sql_fetch($sql1); <?php echo help("사용에 체크하시면 이 그룹에 속한 게시판은 접근가능한 회원만 접근이 가능합니다.") ?>
echo '<a href="./boardgroupmember_list.php?gr_id='.$gr_id.'">'.$row1['cnt'].'</a>'; <input type="checkbox" name="gr_use_access" value="1" id="gr_use_access" <?php echo $gr['gr_use_access'] ? 'checked' : ''; ?>>
?> 사용
</td> </td>
</tr> </tr>
<?php for ($i=1;$i<=10;$i++) { ?> <tr>
<tr> <th scope="row">접근회원수</th>
<th scope="row">여분필드<?php echo $i ?></th> <td>
<td class="td_extra"> <?php
<label for="gr_<?php echo $i ?>_subj">여분필드 <?php echo $i ?> 제목</label> echo '<a href="./boardgroupmember_list.php?gr_id=' . $gr_id . '">' . $group_member_count . '</a>';
<input type="text" name="gr_<?php echo $i ?>_subj" value="<?php echo isset($group['gr_'.$i.'_subj']) ? get_text($group['gr_'.$i.'_subj']) : ''; ?>" id="gr_<?php echo $i ?>_subj" class="frm_input"> ?>
<label for="gr_<?php echo $i ?>">여분필드 <?php echo $i ?> 내용</label> </td>
<input type="text" name="gr_<?php echo $i ?>" value="<?php echo isset($gr['gr_'.$i]) ? get_sanitize_input($gr['gr_'.$i]) : ''; ?>" id="gr_<?php echo $i ?>" class="frm_input"> </tr>
</td> <?php for ($i = 1; $i <= 10; $i++) { ?>
</tr> <tr>
<?php } ?> <th scope="row">여분필드<?php echo $i ?></th>
</tbody> <td class="td_extra">
</table> <label for="gr_<?php echo $i ?>_subj">여분필드 <?php echo $i ?> 제목</label>
</div> <input type="text" name="gr_<?php echo $i ?>_subj" value="<?php echo isset($group['gr_' . $i . '_subj']) ? get_text($group['gr_' . $i . '_subj']) : ''; ?>" id="gr_<?php echo $i ?>_subj" class="frm_input">
<label for="gr_<?php echo $i ?>">여분필드 <?php echo $i ?> 내용</label>
<input type="text" name="gr_<?php echo $i ?>" value="<?php echo isset($gr['gr_' . $i]) ? get_sanitize_input($gr['gr_' . $i]) : ''; ?>" id="gr_<?php echo $i ?>" class="frm_input">
</td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<div class="btn_fixed_top"> <div class="btn_fixed_top">
<a href="./boardgroup_list.php?<?php echo $qstr ?>" class="btn btn_02">목록</a> <a href="./boardgroup_list.php?<?php echo $qstr ?>" class="btn btn_02">목록</a>
<input type="submit" class="btn_submit btn" accesskey="s" value="확인"> <input type="submit" class="btn_submit btn" accesskey="s" value="확인">
</div> </div>
</form> </form>
@@ -147,12 +161,11 @@ include_once('./admin.head.php');
</div> </div>
<script> <script>
function fboardgroup_check(f) function fboardgroup_check(f) {
{ f.action = './boardgroup_form_update.php';
f.action = './boardgroup_form_update.php'; return true;
return true; }
}
</script> </script>
<?php <?php
include_once ('./admin.tail.php'); require_once './admin.tail.php';
+26 -22
View File
@@ -1,38 +1,44 @@
<?php <?php
$sub_menu = "300200"; $sub_menu = "300200";
include_once('./_common.php'); require_once './_common.php';
if ($w == 'u') if ($w == 'u') {
check_demo(); check_demo();
}
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
if ($is_admin != 'super' && $w == '') alert('최고관리자만 접근 가능합니다.'); if ($is_admin != 'super' && $w == '') {
alert('최고관리자만 접근 가능합니다.');
}
check_admin_token(); check_admin_token();
$gr_id = isset($_POST['gr_id']) ? $_POST['gr_id'] : ''; $gr_id = isset($_POST['gr_id']) ? $_POST['gr_id'] : '';
if (!preg_match("/^([A-Za-z0-9_]{1,10})$/", $gr_id)) if (!preg_match("/^([A-Za-z0-9_]{1,10})$/", $gr_id)) {
alert('그룹 ID는 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (10자 이내)'); alert('그룹 ID는 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (10자 이내)');
}
if (!$gr_subject) alert('그룹 제목을 입력하세요.'); if (empty($gr_subject)) {
alert('그룹 제목을 입력하세요.');
}
$posts = array(); $posts = array();
$check_keys = array( $check_keys = array(
'gr_subject'=>'', 'gr_subject' => '',
'gr_device'=>'', 'gr_device' => '',
'gr_admin'=>'', 'gr_admin' => '',
); );
for($i=1;$i<=10;$i++){ for ($i = 1; $i <= 10; $i++) {
$check_keys['gr_'.$i.'_subj'] = isset($_POST['gr_'.$i.'_subj']) ? $_POST['gr_'.$i.'_subj'] : ''; $check_keys['gr_' . $i . '_subj'] = isset($_POST['gr_' . $i . '_subj']) ? $_POST['gr_' . $i . '_subj'] : '';
$check_keys['gr_'.$i] = isset($_POST['gr_'.$i]) ? $_POST['gr_'.$i] : ''; $check_keys['gr_' . $i] = isset($_POST['gr_' . $i]) ? $_POST['gr_' . $i] : '';
} }
foreach( $check_keys as $key=>$value ){ foreach ($check_keys as $key => $value) {
if( $key === 'gr_subject' ){ if ($key === 'gr_subject') {
$posts[$key] = isset($_POST[$key]) ? strip_tags(clean_xss_attributes($_POST[$key])) : ''; $posts[$key] = isset($_POST[$key]) ? strip_tags(clean_xss_attributes($_POST[$key])) : '';
} else { } else {
$posts[$key] = isset($_POST[$key]) ? $_POST[$key] : ''; $posts[$key] = isset($_POST[$key]) ? $_POST[$key] : '';
@@ -62,34 +68,32 @@ $sql_common = " gr_subject = '{$posts['gr_subject']}',
gr_8 = '{$posts['gr_8']}', gr_8 = '{$posts['gr_8']}',
gr_9 = '{$posts['gr_9']}', gr_9 = '{$posts['gr_9']}',
gr_10 = '{$posts['gr_10']}' "; gr_10 = '{$posts['gr_10']}' ";
if (isset($_POST['gr_use_access'])) if (isset($_POST['gr_use_access'])) {
$sql_common .= ", gr_use_access = '{$_POST['gr_use_access']}' "; $sql_common .= ", gr_use_access = '{$_POST['gr_use_access']}' ";
else } else {
$sql_common .= ", gr_use_access = '' "; $sql_common .= ", gr_use_access = '' ";
}
if ($w == '') { if ($w == '') {
$sql = " select count(*) as cnt from {$g5['group_table']} where gr_id = '{$gr_id}' "; $sql = " select count(*) as cnt from {$g5['group_table']} where gr_id = '{$gr_id}' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
if ($row['cnt']) if ($row['cnt']) {
alert('이미 존재하는 그룹 ID 입니다.'); alert('이미 존재하는 그룹 ID 입니다.');
}
$sql = " insert into {$g5['group_table']} $sql = " insert into {$g5['group_table']}
set gr_id = '{$gr_id}', set gr_id = '{$gr_id}',
{$sql_common} "; {$sql_common} ";
sql_query($sql); sql_query($sql);
} elseif ($w == "u") {
} else if ($w == "u") {
$sql = " update {$g5['group_table']} $sql = " update {$g5['group_table']}
set {$sql_common} set {$sql_common}
where gr_id = '{$gr_id}' "; where gr_id = '{$gr_id}' ";
sql_query($sql); sql_query($sql);
} else { } else {
alert('제대로 된 값이 넘어오지 않았습니다.'); alert('제대로 된 값이 넘어오지 않았습니다.');
} }
run_event('admin_boardgroup_form_update', $gr_id, $w); run_event('admin_boardgroup_form_update', $gr_id, $w);
goto_url('./boardgroup_form.php?w=u&amp;gr_id='.$gr_id.'&amp;'.$qstr); goto_url('./boardgroup_form.php?w=u&amp;gr_id=' . $gr_id . '&amp;' . $qstr);
+127 -125
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = "300200"; $sub_menu = "300200";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
@@ -16,27 +16,29 @@ if (!isset($group['gr_device'])) {
$sql_common = " from {$g5['group_table']} "; $sql_common = " from {$g5['group_table']} ";
$sql_search = " where (1) "; $sql_search = " where (1) ";
if ($is_admin != 'super') if ($is_admin != 'super') {
$sql_search .= " and (gr_admin = '{$member['mb_id']}') "; $sql_search .= " and (gr_admin = '{$member['mb_id']}') ";
}
if ($stx) { if ($stx) {
$sql_search .= " and ( "; $sql_search .= " and ( ";
switch ($sfl) { switch ($sfl) {
case "gr_id" : case "gr_id":
case "gr_admin" : case "gr_admin":
$sql_search .= " ({$sfl} = '{$stx}') "; $sql_search .= " ({$sfl} = '{$stx}') ";
break; break;
default : default:
$sql_search .= " ({$sfl} like '%{$stx}%') "; $sql_search .= " ({$sfl} like '%{$stx}%') ";
break; break;
} }
$sql_search .= " ) "; $sql_search .= " ) ";
} }
if ($sst) if ($sst) {
$sql_order = " order by {$sst} {$sod} "; $sql_order = " order by {$sst} {$sod} ";
else } else {
$sql_order = " order by gr_id asc "; $sql_order = " order by gr_id asc ";
}
$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} "; $sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
@@ -44,136 +46,137 @@ $total_count = $row['cnt'];
$rows = $config['cf_page_rows']; $rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산 $total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지) if ($page < 1) {
$page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
}
$from_record = ($page - 1) * $rows; // 시작 열을 구함 $from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} "; $sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql); $result = sql_query($sql);
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">처음</a>'; $listall = '<a href="' . $_SERVER['SCRIPT_NAME'] . '" class="ov_listall">처음</a>';
$g5['title'] = '게시판그룹설정'; $g5['title'] = '게시판그룹설정';
include_once('./admin.head.php'); require_once './admin.head.php';
$colspan = 10; $colspan = 10;
?> ?>
<div class="local_ov01 local_ov"> <div class="local_ov01 local_ov">
<?php echo $listall ?> <?php echo $listall ?>
<span class="btn_ov01"><span class="ov_txt">전체그룹</span><span class="ov_num"> <?php echo number_format($total_count) ?>개</span></span> <span class="btn_ov01"><span class="ov_txt">전체그룹</span><span class="ov_num"> <?php echo number_format($total_count) ?>개</span></span>
</div> </div>
<form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get"> <form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get">
<label for="sfl" class="sound_only">검색대상</label> <label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl"> <select name="sfl" id="sfl">
<option value="gr_subject"<?php echo get_selected($sfl, "gr_subject"); ?>>제목</option> <option value="gr_subject" <?php echo get_selected($sfl, "gr_subject"); ?>>제목</option>
<option value="gr_id"<?php echo get_selected($sfl, "gr_id"); ?>>ID</option> <option value="gr_id" <?php echo get_selected($sfl, "gr_id"); ?>>ID</option>
<option value="gr_admin"<?php echo get_selected($sfl, "gr_admin"); ?>>그룹관리자</option> <option value="gr_admin" <?php echo get_selected($sfl, "gr_admin"); ?>>그룹관리자</option>
</select> </select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label> <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" id="stx" value="<?php echo $stx ?>" required class="required frm_input"> <input type="text" name="stx" id="stx" value="<?php echo $stx ?>" required class="required frm_input">
<input type="submit" value="검색" class="btn_submit"> <input type="submit" value="검색" class="btn_submit">
</form> </form>
<form name="fboardgrouplist" id="fboardgrouplist" action="./boardgroup_list_update.php" onsubmit="return fboardgrouplist_submit(this);" method="post"> <form name="fboardgrouplist" id="fboardgrouplist" action="./boardgroup_list_update.php" onsubmit="return fboardgrouplist_submit(this);" method="post">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col"> <th scope="col">
<label for="chkall" class="sound_only">그룹 전체</label> <label for="chkall" class="sound_only">그룹 전체</label>
<input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)"> <input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)">
</th> </th>
<th scope="col"><?php echo subject_sort_link('gr_id') ?>그룹아이디</a></th> <th scope="col"><?php echo subject_sort_link('gr_id') ?>그룹아이디</a></th>
<th scope="col"><?php echo subject_sort_link('gr_subject') ?>제목</a></th> <th scope="col"><?php echo subject_sort_link('gr_subject') ?>제목</a></th>
<th scope="col"><?php echo subject_sort_link('gr_admin') ?>그룹관리자</a></th> <th scope="col"><?php echo subject_sort_link('gr_admin') ?>그룹관리자</a></th>
<th scope="col">게시판</th> <th scope="col">게시판</th>
<th scope="col">접근<br>사용</th> <th scope="col">접근<br>사용</th>
<th scope="col">접근<br>회원수</th> <th scope="col">접근<br>회원수</th>
<th scope="col"><?php echo subject_sort_link('gr_order') ?>출력<br>순서</a></th> <th scope="col"><?php echo subject_sort_link('gr_order') ?>출력<br>순서</a></th>
<th scope="col">접속기기</th> <th scope="col">접속기기</th>
<th scope="col">관리</th> <th scope="col">관리</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) for ($i = 0; $row = sql_fetch_array($result); $i++) {
{ // 접근회원수
// 접근회원수 $sql1 = " select count(*) as cnt from {$g5['group_member_table']} where gr_id = '{$row['gr_id']}' ";
$sql1 = " select count(*) as cnt from {$g5['group_member_table']} where gr_id = '{$row['gr_id']}' "; $row1 = sql_fetch($sql1);
$row1 = sql_fetch($sql1);
// 게시판수 // 게시판수
$sql2 = " select count(*) as cnt from {$g5['board_table']} where gr_id = '{$row['gr_id']}' "; $sql2 = " select count(*) as cnt from {$g5['board_table']} where gr_id = '{$row['gr_id']}' ";
$row2 = sql_fetch($sql2); $row2 = sql_fetch($sql2);
$s_upd = '<a href="./boardgroup_form.php?'.$qstr.'&amp;w=u&amp;gr_id='.$row['gr_id'].'" class="btn_03 btn">수정</a>'; $s_upd = '<a href="./boardgroup_form.php?' . $qstr . '&amp;w=u&amp;gr_id=' . $row['gr_id'] . '" class="btn_03 btn">수정</a>';
$bg = 'bg'.($i%2); $bg = 'bg' . ($i % 2);
?> ?>
<tr class="<?php echo $bg; ?>"> <tr class="<?php echo $bg; ?>">
<td class="td_chk"> <td class="td_chk">
<input type="hidden" name="group_id[<?php echo $i ?>]" value="<?php echo $row['gr_id'] ?>"> <input type="hidden" name="group_id[<?php echo $i ?>]" value="<?php echo $row['gr_id'] ?>">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo get_text($row['gr_subject']); ?> 그룹</label> <label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo get_text($row['gr_subject']); ?> 그룹</label>
<input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>"> <input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
</td> </td>
<td class="td_left"><a href="<?php echo G5_BBS_URL ?>/group.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo $row['gr_id'] ?></a></td> <td class="td_left"><a href="<?php echo G5_BBS_URL ?>/group.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo $row['gr_id'] ?></a></td>
<td class="td_input"> <td class="td_input">
<label for="gr_subject_<?php echo $i; ?>" class="sound_only">그룹제목</label> <label for="gr_subject_<?php echo $i; ?>" class="sound_only">그룹제목</label>
<input type="text" name="gr_subject[<?php echo $i ?>]" value="<?php echo get_text($row['gr_subject']) ?>" id="gr_subject_<?php echo $i ?>" class="tbl_input"> <input type="text" name="gr_subject[<?php echo $i ?>]" value="<?php echo get_text($row['gr_subject']) ?>" id="gr_subject_<?php echo $i ?>" class="tbl_input">
</td> </td>
<td class="td_mng td_input"> <td class="td_mng td_input">
<?php if ($is_admin == 'super'){ ?> <?php if ($is_admin == 'super') { ?>
<label for="gr_admin_<?php echo $i; ?>" class="sound_only">그룹관리자</label> <label for="gr_admin_<?php echo $i; ?>" class="sound_only">그룹관리자</label>
<input type="text" name="gr_admin[<?php echo $i ?>]" value="<?php echo get_sanitize_input($row['gr_admin']); ?>" id="gr_admin_<?php echo $i ?>" class="tbl_input" size="10" maxlength="20"> <input type="text" name="gr_admin[<?php echo $i ?>]" value="<?php echo get_sanitize_input($row['gr_admin']); ?>" id="gr_admin_<?php echo $i ?>" class="tbl_input" size="10" maxlength="20">
<?php }else{ ?> <?php } else { ?>
<input type="hidden" name="gr_admin[<?php echo $i ?>]" value="<?php echo get_sanitize_input($row['gr_admin']); ?>"><?php echo get_text($row['gr_admin']); ?> <input type="hidden" name="gr_admin[<?php echo $i ?>]" value="<?php echo get_sanitize_input($row['gr_admin']); ?>"><?php echo get_text($row['gr_admin']); ?>
<?php } ?> <?php } ?>
</td> </td>
<td class="td_num"><a href="./board_list.php?sfl=a.gr_id&amp;stx=<?php echo $row['gr_id'] ?>"><?php echo $row2['cnt'] ?></a></td> <td class="td_num"><a href="./board_list.php?sfl=a.gr_id&amp;stx=<?php echo $row['gr_id'] ?>"><?php echo $row2['cnt'] ?></a></td>
<td class="td_numsmall"> <td class="td_numsmall">
<label for="gr_use_access_<?php echo $i; ?>" class="sound_only">접근회원 사용</label> <label for="gr_use_access_<?php echo $i; ?>" class="sound_only">접근회원 사용</label>
<input type="checkbox" name="gr_use_access[<?php echo $i ?>]" <?php echo $row['gr_use_access']?'checked':'' ?> value="1" id="gr_use_access_<?php echo $i ?>"> <input type="checkbox" name="gr_use_access[<?php echo $i ?>]" <?php echo $row['gr_use_access'] ? 'checked' : '' ?> value="1" id="gr_use_access_<?php echo $i ?>">
</td> </td>
<td class="td_num"><a href="./boardgroupmember_list.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo $row1['cnt'] ?></a></td> <td class="td_num"><a href="./boardgroupmember_list.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo $row1['cnt'] ?></a></td>
<td class="td_numsmall"> <td class="td_numsmall">
<label for="gr_order_<?php echo $i; ?>" class="sound_only">메인메뉴 출력순서</label> <label for="gr_order_<?php echo $i; ?>" class="sound_only">메인메뉴 출력순서</label>
<input type="text" name="gr_order[<?php echo $i ?>]" value="<?php echo $row['gr_order'] ?>" id="gr_order_<?php echo $i ?>" class="tbl_input" size="2"> <input type="text" name="gr_order[<?php echo $i ?>]" value="<?php echo $row['gr_order'] ?>" id="gr_order_<?php echo $i ?>" class="tbl_input" size="2">
</td> </td>
<td class="td_mng"> <td class="td_mng">
<label for="gr_device_<?php echo $i; ?>" class="sound_only">접속기기</label> <label for="gr_device_<?php echo $i; ?>" class="sound_only">접속기기</label>
<select name="gr_device[<?php echo $i ?>]" id="gr_device_<?php echo $i ?>"> <select name="gr_device[<?php echo $i ?>]" id="gr_device_<?php echo $i ?>">
<option value="both"<?php echo get_selected($row['gr_device'], 'both'); ?>>모두</option> <option value="both" <?php echo get_selected($row['gr_device'], 'both'); ?>>모두</option>
<option value="pc"<?php echo get_selected($row['gr_device'], 'pc'); ?>>PC</option> <option value="pc" <?php echo get_selected($row['gr_device'], 'pc'); ?>>PC</option>
<option value="mobile"<?php echo get_selected($row['gr_device'], 'mobile'); ?>>모바일</option> <option value="mobile" <?php echo get_selected($row['gr_device'], 'mobile'); ?>>모바일</option>
</select> </select>
</td> </td>
<td class="td_mng td_mng_s"><?php echo $s_upd ?></td> <td class="td_mng td_mng_s"><?php echo $s_upd ?></td>
</tr> </tr>
<?php
}
if ($i == 0) {
echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</table>
</div>
<?php <div class="btn_fixed_top">
} <input type="submit" name="act_button" onclick="document.pressed=this.value" value="선택수정" class="btn btn_02">
if ($i == 0) <input type="submit" name="act_button" onclick="document.pressed=this.value" value="선택삭제" class="btn btn_02">
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>'; <a href="./boardgroup_form.php" class="btn btn_01">게시판그룹 추가</a>
?> </div>
</table>
</div>
<div class="btn_fixed_top">
<input type="submit" name="act_button" onclick="document.pressed=this.value" value="선택수정" class="btn btn_02">
<input type="submit" name="act_button" onclick="document.pressed=this.value" value="선택삭제" class="btn btn_02">
<a href="./boardgroup_form.php" class="btn btn_01">게시판그룹 추가</a>
</div>
</form> </form>
<div class="local_desc01 local_desc"> <div class="local_desc01 local_desc">
@@ -184,27 +187,26 @@ $colspan = 10;
</div> </div>
<?php <?php
$pagelist = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'].'?'.$qstr.'&amp;page='); $pagelist = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['SCRIPT_NAME'] . '?' . $qstr . '&amp;page=');
echo $pagelist; echo $pagelist;
?> ?>
<script> <script>
function fboardgrouplist_submit(f) function fboardgrouplist_submit(f) {
{ if (!is_checked("chk[]")) {
if (!is_checked("chk[]")) { alert(document.pressed + " 하실 항목을 하나 이상 선택하세요.");
alert(document.pressed+" 하실 항목을 하나 이상 선택하세요.");
return false;
}
if(document.pressed == "선택삭제") {
if(!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false; return false;
} }
}
return true; if (document.pressed == "선택삭제") {
} if (!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false;
}
}
return true;
}
</script> </script>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+29 -29
View File
@@ -1,8 +1,6 @@
<?php <?php
$sub_menu = "300200"; $sub_menu = "300200";
include_once('./_common.php'); require_once './_common.php';
//print_r2($_POST); exit;
check_demo(); check_demo();
@@ -10,40 +8,42 @@ auth_check_menu($auth, $sub_menu, 'w');
check_admin_token(); check_admin_token();
$post_chk = isset($_POST['chk']) ? (array) $_POST['chk'] : array(); $post_chk = isset($_POST['chk']) ? (array) $_POST['chk'] : array();
$post_group_id = isset($_POST['group_id']) ? (array) $_POST['group_id'] : array(); $post_group_id = isset($_POST['group_id']) ? (array) $_POST['group_id'] : array();
$act_button = isset($_POST['act_button']) ? $_POST['act_button'] : ''; $act_button = isset($_POST['act_button']) ? $_POST['act_button'] : '';
$count = count($post_chk); $chk_count = count($post_chk);
if(!$count) if (!$chk_count) {
alert($act_button.'할 게시판그룹을 1개이상 선택해 주세요.'); alert($act_button . '할 게시판그룹을 1개이상 선택해 주세요.');
}
for ($i=0; $i<$count; $i++) for ($i = 0; $i < $chk_count; $i++) {
{ $k = isset($post_chk[$i]) ? (int) $post_chk[$i] : 0;
$k = isset($post_chk[$i]) ? (int) $post_chk[$i] : 0; $gr_id = preg_replace('/[^a-z0-9_]/i', '', $post_group_id[$k]);
$gr_id = preg_replace('/[^a-z0-9_]/i', '', $post_group_id[$k]); $gr_subject = isset($_POST['gr_subject'][$k]) ? strip_tags(clean_xss_attributes($_POST['gr_subject'][$k])) : '';
$gr_subject = isset($_POST['gr_subject'][$k]) ? strip_tags(clean_xss_attributes($_POST['gr_subject'][$k])) : ''; $gr_admin = isset($_POST['gr_admin'][$k]) ? strip_tags(clean_xss_attributes($_POST['gr_admin'][$k])) : '';
$gr_admin = isset($_POST['gr_admin'][$k]) ? strip_tags(clean_xss_attributes($_POST['gr_admin'][$k])) : ''; $gr_device = isset($_POST['gr_device'][$k]) ? clean_xss_tags($_POST['gr_device'][$k], 1, 1, 10) : '';
$gr_device = isset($_POST['gr_device'][$k]) ? clean_xss_tags($_POST['gr_device'][$k], 1, 1, 10) : ''; $gr_use_access = isset($_POST['gr_use_access'][$k]) ? (int) $_POST['gr_use_access'][$k] : 0;
$gr_use_access = isset($_POST['gr_use_access'][$k]) ? (int) $_POST['gr_use_access'][$k] : 0; $gr_order = isset($_POST['gr_order'][$k]) ? (int) $_POST['gr_order'][$k] : 0;
$gr_order = isset($_POST['gr_order'][$k]) ? (int) $_POST['gr_order'][$k] : 0;
if($act_button == '선택수정') { if ($act_button == '선택수정') {
$sql = " update {$g5['group_table']} $sql = " update {$g5['group_table']}
set gr_subject = '{$gr_subject}', set gr_subject = '{$gr_subject}',
gr_device = '".sql_real_escape_string($gr_device)."', gr_device = '" . sql_real_escape_string($gr_device) . "',
gr_admin = '".sql_real_escape_string($gr_admin)."', gr_admin = '" . sql_real_escape_string($gr_admin) . "',
gr_use_access = '".$gr_use_access."', gr_use_access = '" . $gr_use_access . "',
gr_order = '".$gr_order."' gr_order = '" . $gr_order . "'
where gr_id = '{$gr_id}' "; where gr_id = '{$gr_id}' ";
if ($is_admin != 'super') if ($is_admin != 'super') {
$sql .= " and gr_admin = '{$gr_admin}' "; $sql .= " and gr_admin = '{$gr_admin}' ";
}
sql_query($sql); sql_query($sql);
} else if($act_button == '선택삭제') { } elseif ($act_button == '선택삭제') {
$row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where gr_id = '$gr_id' "); $row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where gr_id = '$gr_id' ");
if ($row['cnt']) if ($row['cnt']) {
alert("이 그룹에 속한 게시판이 존재하여 게시판 그룹을 삭제할 수 없습니다.\\n\\n이 그룹에 속한 게시판을 먼저 삭제하여 주십시오.", './board_list.php?sfl=gr_id&amp;stx='.$gr_id); alert("이 그룹에 속한 게시판이 존재하여 게시판 그룹을 삭제할 수 없습니다.\\n\\n이 그룹에 속한 게시판을 먼저 삭제하여 주십시오.", './board_list.php?sfl=gr_id&amp;stx=' . $gr_id);
}
// 그룹 삭제 // 그룹 삭제
sql_query(" delete from {$g5['group_table']} where gr_id = '$gr_id' "); sql_query(" delete from {$g5['group_table']} where gr_id = '$gr_id' ");
@@ -53,6 +53,6 @@ for ($i=0; $i<$count; $i++)
} }
} }
run_event('admin_boardgroup_list_update', $act_button, $chk, $post_group_id, $qstr); run_event('admin_boardgroup_list_update', $act_button, $post_chk, $post_group_id, $qstr);
goto_url('./boardgroup_list.php?'.$qstr); goto_url('./boardgroup_list.php?' . $qstr);
+101 -100
View File
@@ -1,133 +1,134 @@
<?php <?php
$sub_menu = "300200"; $sub_menu = "300200";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
$mb = get_member($mb_id); $mb = get_member($mb_id);
$token = isset($token) ? $token : ''; $token = isset($token) ? $token : '';
if (! (isset($mb['mb_id']) && $mb['mb_id'])) if (!(isset($mb['mb_id']) && $mb['mb_id'])) {
alert('존재하지 않는 회원입니다.'); alert('존재하지 않는 회원입니다.');
}
$g5['title'] = '접근가능그룹'; $g5['title'] = '접근가능그룹';
include_once('./admin.head.php'); require_once './admin.head.php';
$colspan = 4; $colspan = 4;
?> ?>
<form name="fboardgroupmember_form" id="fboardgroupmember_form" action="./boardgroupmember_update.php" onsubmit="return boardgroupmember_form_check(this)" method="post"> <form name="fboardgroupmember_form" id="fboardgroupmember_form" action="./boardgroupmember_update.php" onsubmit="return boardgroupmember_form_check(this)" method="post">
<input type="hidden" name="mb_id" value="<?php echo $mb['mb_id'] ?>" id="mb_id"> <input type="hidden" name="mb_id" value="<?php echo $mb['mb_id'] ?>" id="mb_id">
<input type="hidden" name="token" value="" id="token"> <input type="hidden" name="token" value="" id="token">
<div class="local_ov01 local_ov">
<span class="btn_ov01"><span class="ov_txt"> 아이디</span><span class="ov_num"><?php echo $mb['mb_id'] ?></span></span>
<span class="btn_ov01"><span class="ov_txt"> 이름</span><span class="ov_num"><?php echo get_text($mb['mb_name']); ?></span></span>
<span class="btn_ov01"><span class="ov_txt"> 닉네임</span><span class="ov_num"><?php echo $mb['mb_nick'] ?></span></span>
</div>
<div class="local_cmd01 local_cmd">
<label for="gr_id">그룹지정</label> <div class="local_ov01 local_ov">
<select name="gr_id" id="gr_id"> <span class="btn_ov01"><span class="ov_txt"> 아이디</span><span class="ov_num"><?php echo $mb['mb_id'] ?></span></span>
<option value="">접근가능 그룹을 선택하세요.</option> <span class="btn_ov01"><span class="ov_txt"> 이름</span><span class="ov_num"><?php echo get_text($mb['mb_name']); ?></span></span>
<?php <span class="btn_ov01"><span class="ov_txt"> 닉네임</span><span class="ov_num"><?php echo $mb['mb_nick'] ?></span></span>
$sql = " select * </div>
from {$g5['group_table']}
where gr_use_access = 1 "; <div class="local_cmd01 local_cmd">
//if ($is_admin == 'group') { <label for="gr_id">그룹지정</label>
if ($is_admin != 'super') <select name="gr_id" id="gr_id">
$sql .= " and gr_admin = '{$member['mb_id']}' "; <option value="">접근가능 그룹을 선택하세요.</option>
$sql .= " order by gr_id "; <?php
$result = sql_query($sql); $sql = " select *
for ($i=0; $row=sql_fetch_array($result); $i++) { from {$g5['group_table']}
echo "<option value=\"".$row['gr_id']."\">".$row['gr_subject']."</option>"; where gr_use_access = 1 ";
} if ($is_admin != 'super') {
?> $sql .= " and gr_admin = '{$member['mb_id']}' ";
</select> }
<input type="submit" value="선택" class="btn_submit btn" accesskey="s"> $sql .= " order by gr_id ";
</div> $result = sql_query($sql);
for ($i = 0; $row = sql_fetch_array($result); $i++) {
echo "<option value=\"" . $row['gr_id'] . "\">" . $row['gr_subject'] . "</option>";
}
?>
</select>
<input type="submit" value="선택" class="btn_submit btn" accesskey="s">
</div>
</form> </form>
<form name="fboardgroupmember" id="fboardgroupmember" action="./boardgroupmember_update.php" onsubmit="return fboardgroupmember_submit(this);" method="post"> <form name="fboardgroupmember" id="fboardgroupmember" action="./boardgroupmember_update.php" onsubmit="return fboardgroupmember_submit(this);" method="post">
<input type="hidden" name="sst" value="<?php echo $sst ?>" id="sst"> <input type="hidden" name="sst" value="<?php echo $sst ?>" id="sst">
<input type="hidden" name="sod" value="<?php echo $sod ?>" id="sod"> <input type="hidden" name="sod" value="<?php echo $sod ?>" id="sod">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>" id="sfl"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>" id="sfl">
<input type="hidden" name="stx" value="<?php echo $stx ?>" id="stx"> <input type="hidden" name="stx" value="<?php echo $stx ?>" id="stx">
<input type="hidden" name="page" value="<?php echo $page ?>" id="page"> <input type="hidden" name="page" value="<?php echo $page ?>" id="page">
<input type="hidden" name="token" value="<?php echo get_sanitize_input($token); ?>" id="token"> <input type="hidden" name="token" value="<?php echo get_sanitize_input($token); ?>" id="token">
<input type="hidden" name="mb_id" value="<?php echo $mb['mb_id'] ?>" id="mb_id"> <input type="hidden" name="mb_id" value="<?php echo $mb['mb_id'] ?>" id="mb_id">
<input type="hidden" name="w" value="d" id="w"> <input type="hidden" name="w" value="d" id="w">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col"> <th scope="col">
<label for="chkall" class="sound_only">접근가능그룹 전체</label> <label for="chkall" class="sound_only">접근가능그룹 전체</label>
<input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)"> <input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)">
</th> </th>
<th scope="col">그룹아이디</th> <th scope="col">그룹아이디</th>
<th scope="col">그룹</th> <th scope="col">그룹</th>
<th scope="col">처리일시</th> <th scope="col">처리일시</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
$sql = " select * from {$g5['group_member_table']} a, {$g5['group_table']} b $sql = " select * from {$g5['group_member_table']} a, {$g5['group_table']} b
where a.mb_id = '{$mb['mb_id']}' where a.mb_id = '{$mb['mb_id']}'
and a.gr_id = b.gr_id "; and a.gr_id = b.gr_id ";
if ($is_admin != 'super') if ($is_admin != 'super') {
$sql .= " and b.gr_admin = '{$member['mb_id']}' "; $sql .= " and b.gr_admin = '{$member['mb_id']}' ";
$sql .= " order by a.gr_id desc "; }
$result = sql_query($sql); $sql .= " order by a.gr_id desc ";
for ($i=0; $row=sql_fetch_array($result); $i++) { $result = sql_query($sql);
?> for ($i = 0; $row = sql_fetch_array($result); $i++) {
<tr> ?>
<td class="td_chk"> <tr>
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['gr_subject'] ?> 그룹</label> <td class="td_chk">
<input type="checkbox" name="chk[]" value="<?php echo $row['gm_id'] ?>" id="chk_<?php echo $i ?>"> <label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['gr_subject'] ?> 그룹</label>
</td> <input type="checkbox" name="chk[]" value="<?php echo $row['gm_id'] ?>" id="chk_<?php echo $i ?>">
<td class="td_grid"><a href="<?php echo G5_BBS_URL; ?>/group.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo $row['gr_id'] ?></a></td> </td>
<td class="td_category"><?php echo $row['gr_subject'] ?></td> <td class="td_grid"><a href="<?php echo G5_BBS_URL; ?>/group.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo $row['gr_id'] ?></a></td>
<td class="td_datetime"><?php echo $row['gm_datetime'] ?></td> <td class="td_category"><?php echo $row['gr_subject'] ?></td>
</tr> <td class="td_datetime"><?php echo $row['gm_datetime'] ?></td>
<?php </tr>
} <?php
}
if ($i == 0) { if ($i == 0) {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">접근가능한 그룹이 없습니다.</td></tr>'; echo '<tr><td colspan="' . $colspan . '" class="empty_table">접근가능한 그룹이 없습니다.</td></tr>';
} }
?> ?>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="btn_list01 btn_list"> <div class="btn_list01 btn_list">
<input type="submit" name="" value="선택삭제" class="btn btn_02"> <input type="submit" name="" value="선택삭제" class="btn btn_02">
</div> </div>
</form> </form>
<script> <script>
function fboardgroupmember_submit(f) function fboardgroupmember_submit(f) {
{ if (!is_checked("chk[]")) {
if (!is_checked("chk[]")) { alert("선택삭제 하실 항목을 하나 이상 선택하세요.");
alert("선택삭제 하실 항목을 하나 이상 선택하세요."); return false;
return false; }
return true;
} }
return true; function boardgroupmember_form_check(f) {
} if (f.gr_id.value == '') {
alert('접근가능 그룹을 선택하세요.');
return false;
}
function boardgroupmember_form_check(f) return true;
{
if (f.gr_id.value == '') {
alert('접근가능 그룹을 선택하세요.');
return false;
} }
return true;
}
</script> </script>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+90 -88
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = "300200"; $sub_menu = "300200";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
@@ -11,13 +11,13 @@ if (!$gr['gr_id']) {
$sql_common = " from {$g5['group_member_table']} a $sql_common = " from {$g5['group_member_table']} a
left outer join {$g5['member_table']} b on (a.mb_id = b.mb_id) "; left outer join {$g5['member_table']} b on (a.mb_id = b.mb_id) ";
$sql_search = " where gr_id = '{$gr_id}' "; $sql_search = " where gr_id = '{$gr_id}' ";
// 회원아이디로 검색되지 않던 오류를 수정 // 회원아이디로 검색되지 않던 오류를 수정
if (isset($stx) && $stx) { if (isset($stx) && $stx) {
$sql_search .= " and ( "; $sql_search .= " and ( ";
switch ($sfl) { switch ($sfl) {
default : default:
$sql_search .= " ($sfl like '%$stx%') "; $sql_search .= " ($sfl like '%$stx%') ";
break; break;
} }
@@ -25,7 +25,7 @@ if (isset($stx) && $stx) {
} }
if (!$sst) { if (!$sst) {
$sst = "gm_datetime"; $sst = "gm_datetime";
$sod = "desc"; $sod = "desc";
} }
$sql_order = " order by {$sst} {$sod} "; $sql_order = " order by {$sst} {$sod} ";
@@ -39,7 +39,9 @@ $total_count = $row['cnt'];
$rows = $config['cf_page_rows']; $rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산 $total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지) if ($page < 1) {
$page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
}
$from_record = ($page - 1) * $rows; // 시작 열을 구함 $from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select * $sql = " select *
@@ -49,107 +51,107 @@ $sql = " select *
limit {$from_record}, {$rows} "; limit {$from_record}, {$rows} ";
$result = sql_query($sql); $result = sql_query($sql);
$g5['title'] = $gr['gr_subject'].' 그룹 접근가능회원 (그룹아이디:'.$gr['gr_id'].')'; $g5['title'] = $gr['gr_subject'] . ' 그룹 접근가능회원 (그룹아이디:' . $gr['gr_id'] . ')';
include_once('./admin.head.php'); require_once './admin.head.php';
$colspan = 7; $colspan = 7;
?> ?>
<form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get"> <form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get">
<input type="hidden" name="gr_id" value="<?php echo $gr_id ?>"> <input type="hidden" name="gr_id" value="<?php echo $gr_id ?>">
<label for="sfl" class="sound_only">검색대상</label> <label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl"> <select name="sfl" id="sfl">
<option value="a.mb_id"<?php echo get_selected($sfl, "a.mb_id") ?>>회원아이디</option> <option value="a.mb_id" <?php echo get_selected($sfl, "a.mb_id") ?>>회원아이디</option>
</select> </select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label> <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input"> <input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input">
<input type="submit" value="검색" class="btn_submit"> <input type="submit" value="검색" class="btn_submit">
</form> </form>
<form name="fboardgroupmember" id="fboardgroupmember" action="./boardgroupmember_update.php" onsubmit="return fboardgroupmember_submit(this);" method="post"> <form name="fboardgroupmember" id="fboardgroupmember" action="./boardgroupmember_update.php" onsubmit="return fboardgroupmember_submit(this);" method="post">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>"> <input type="hidden" name="token" value="<?php echo $token ?>">
<input type="hidden" name="gr_id" value="<?php echo $gr_id ?>"> <input type="hidden" name="gr_id" value="<?php echo $gr_id ?>">
<input type="hidden" name="w" value="ld"> <input type="hidden" name="w" value="ld">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col"> <th scope="col">
<label for="chkall" class="sound_only">접근가능회원 전체</label> <label for="chkall" class="sound_only">접근가능회원 전체</label>
<input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)"> <input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)">
</th> </th>
<th scope="col">그룹</th> <th scope="col">그룹</th>
<th scope="col"><?php echo subject_sort_link('b.mb_id', 'gr_id='.$gr_id) ?>회원아이디</a></th> <th scope="col"><?php echo subject_sort_link('b.mb_id', 'gr_id=' . $gr_id) ?>회원아이디</a></th>
<th scope="col"><?php echo subject_sort_link('b.mb_name', 'gr_id='.$gr_id) ?>이름</a></th> <th scope="col"><?php echo subject_sort_link('b.mb_name', 'gr_id=' . $gr_id) ?>이름</a></th>
<th scope="col"><?php echo subject_sort_link('b.mb_nick', 'gr_id='.$gr_id) ?>별명</a></th> <th scope="col"><?php echo subject_sort_link('b.mb_nick', 'gr_id=' . $gr_id) ?>별명</a></th>
<th scope="col"><?php echo subject_sort_link('b.mb_today_login', 'gr_id='.$gr_id) ?>최종접속</a></th> <th scope="col"><?php echo subject_sort_link('b.mb_today_login', 'gr_id=' . $gr_id) ?>최종접속</a></th>
<th scope="col"><?php echo subject_sort_link('a.gm_datetime', 'gr_id='.$gr_id) ?>처리일시</a></th> <th scope="col"><?php echo subject_sort_link('a.gm_datetime', 'gr_id=' . $gr_id) ?>처리일시</a></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) for ($i = 0; $row = sql_fetch_array($result); $i++) {
{ // 접근가능한 그룹수
// 접근가능한 그룹수 $sql2 = " select count(*) as cnt from {$g5['group_member_table']} where mb_id = '{$row['mb_id']}' ";
$sql2 = " select count(*) as cnt from {$g5['group_member_table']} where mb_id = '{$row['mb_id']}' "; $row2 = sql_fetch($sql2);
$row2 = sql_fetch($sql2); $group = "";
$group = ""; if ($row2['cnt']) {
if ($row2['cnt']) $group = '<a href="./boardgroupmember_form.php?mb_id=' . $row['mb_id'] . '">' . $row2['cnt'] . '</a>';
$group = '<a href="./boardgroupmember_form.php?mb_id='.$row['mb_id'].'">'.$row2['cnt'].'</a>'; }
$mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']); $mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
$bg = 'bg'.($i%2); $bg = 'bg' . ($i % 2);
?> ?>
<tr class="<?php echo $bg; ?>"> <tr class="<?php echo $bg; ?>">
<td class="td_chk"> <td class="td_chk">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['mb_nick'] ?> 회원</label> <label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['mb_nick'] ?> 회원</label>
<input type="checkbox" name="chk[]" value="<?php echo $row['gm_id'] ?>" id="chk_<?php echo $i ?>"> <input type="checkbox" name="chk[]" value="<?php echo $row['gm_id'] ?>" id="chk_<?php echo $i ?>">
</td> </td>
<td class="td_grid"><?php echo $group ?></td> <td class="td_grid"><?php echo $group ?></td>
<td class="td_mbid"><?php echo $row['mb_id'] ?></td> <td class="td_mbid"><?php echo $row['mb_id'] ?></td>
<td class="td_mbname"><?php echo get_text($row['mb_name']); ?></td> <td class="td_mbname"><?php echo get_text($row['mb_name']); ?></td>
<td class="td_name sv_use"><?php echo $mb_nick ?></td> <td class="td_name sv_use"><?php echo $mb_nick ?></td>
<td class="td_datetime"><?php echo substr($row['mb_today_login'],2,8) ?></td> <td class="td_datetime"><?php echo substr($row['mb_today_login'], 2, 8) ?></td>
<td class="td_datetime"><?php echo $row['gm_datetime'] ?></td> <td class="td_datetime"><?php echo $row['gm_datetime'] ?></td>
</tr> </tr>
<?php <?php
} }
if ($i == 0) if ($i == 0) {
{ echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>'; }
} ?>
?> </tbody>
</tbody> </table>
</table> </div>
</div>
<div class="btn_list01 btn_list"> <div class="btn_list01 btn_list">
<input type="submit" name="" value="선택삭제"> <input type="submit" name="" value="선택삭제">
</div> </div>
</form> </form>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;gr_id=$gr_id&page="); ?> <?php
echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;gr_id=$gr_id&page=");
?>
<script> <script>
function fboardgroupmember_submit(f) function fboardgroupmember_submit(f) {
{ if (!is_checked("chk[]")) {
if (!is_checked("chk[]")) { alert("선택삭제 하실 항목을 하나 이상 선택하세요.");
alert("선택삭제 하실 항목을 하나 이상 선택하세요."); return false;
return false; }
}
return true; return true;
} }
</script> </script>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+18 -20
View File
@@ -1,20 +1,19 @@
<?php <?php
$sub_menu = "300200"; $sub_menu = "300200";
include_once('./_common.php'); require_once './_common.php';
sql_query(" ALTER TABLE {$g5['group_member_table']} CHANGE `gm_id` `gm_id` INT( 11 ) DEFAULT '0' NOT NULL AUTO_INCREMENT ", false); sql_query(" ALTER TABLE {$g5['group_member_table']} CHANGE `gm_id` `gm_id` INT( 11 ) DEFAULT '0' NOT NULL AUTO_INCREMENT ", false);
if ($w == '') if ($w == '') {
{
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
$mb = get_member($mb_id); $mb = get_member($mb_id);
if (!$mb['mb_id']) { if (empty($mb['mb_id'])) {
alert('존재하지 않는 회원입니다.'); alert('존재하지 않는 회원입니다.');
} }
$gr = get_group($gr_id); $gr = get_group($gr_id);
if (!$gr['gr_id']) { if (empty($gr['gr_id'])) {
alert('존재하지 않는 그룹입니다.'); alert('존재하지 않는 그룹입니다.');
} }
@@ -25,37 +24,35 @@ if ($w == '')
$row = sql_fetch($sql); $row = sql_fetch($sql);
if ($row['cnt']) { if ($row['cnt']) {
alert('이미 등록되어 있는 자료입니다.'); alert('이미 등록되어 있는 자료입니다.');
} } else {
else
{
check_admin_token(); check_admin_token();
$sql = " insert into {$g5['group_member_table']} $sql = " insert into {$g5['group_member_table']}
set gr_id = '{$_POST['gr_id']}', set gr_id = '{$_POST['gr_id']}',
mb_id = '{$_POST['mb_id']}', mb_id = '{$_POST['mb_id']}',
gm_datetime = '".G5_TIME_YMDHIS."' "; gm_datetime = '" . G5_TIME_YMDHIS . "' ";
sql_query($sql); sql_query($sql);
} }
} } elseif ($w == 'd' || $w == 'ld') {
else if ($w == 'd' || $w == 'ld')
{
auth_check_menu($auth, $sub_menu, 'd'); auth_check_menu($auth, $sub_menu, 'd');
$count = count($_POST['chk']); $count = count($_POST['chk']);
if(!$count) if (!$count) {
alert('삭제할 목록을 하나이상 선택해 주세요.'); alert('삭제할 목록을 하나이상 선택해 주세요.');
}
check_admin_token(); check_admin_token();
for($i=0; $i<$count; $i++) { for ($i = 0; $i < $count; $i++) {
$gm_id = (int) $_POST['chk'][$i]; $gm_id = (int) $_POST['chk'][$i];
$sql = " select * from {$g5['group_member_table']} where gm_id = '$gm_id' "; $sql = " select * from {$g5['group_member_table']} where gm_id = '$gm_id' ";
$gm = sql_fetch($sql); $gm = sql_fetch($sql);
if (!$gm['gm_id']) { if (!$gm['gm_id']) {
if($count == 1) if ($count == 1) {
alert('존재하지 않는 자료입니다.'); alert('존재하지 않는 자료입니다.');
else } else {
continue; continue;
}
} }
$sql = " delete from {$g5['group_member_table']} where gm_id = '$gm_id' "; $sql = " delete from {$g5['group_member_table']} where gm_id = '$gm_id' ";
@@ -63,7 +60,8 @@ else if ($w == 'd' || $w == 'ld')
} }
} }
if ($w == 'ld') if ($w == 'ld') {
goto_url('./boardgroupmember_list.php?gr_id='.$gr_id); goto_url('./boardgroupmember_list.php?gr_id=' . $gr_id);
else } else {
goto_url('./boardgroupmember_form.php?mb_id='.$mb_id); goto_url('./boardgroupmember_form.php?mb_id=' . $mb_id);
}
+23 -21
View File
@@ -1,15 +1,17 @@
<?php <?php
$sub_menu = "100510"; $sub_menu = "100510";
include_once('./_common.php'); require_once './_common.php';
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE)) if (!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE)) {
alert('사용할 수 없는 기능입니다.', correct_goto_url(G5_ADMIN_URL)); alert('사용할 수 없는 기능입니다.', correct_goto_url(G5_ADMIN_URL));
}
if ($is_admin != 'super') if ($is_admin != 'super') {
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
}
$g5['title'] = 'Browscap 업데이트'; $g5['title'] = 'Browscap 업데이트';
include_once('./admin.head.php'); require_once './admin.head.php';
?> ?>
<div id="processing"> <div id="processing">
@@ -18,27 +20,27 @@ include_once('./admin.head.php');
</div> </div>
<script> <script>
$(function() { $(function() {
$("#run_update").on("click", function() { $("#run_update").on("click", function() {
$("#processing").html('<div class="update_processing"></div><p>Browscap 정보를 업데이트 중입니다.</p>'); $("#processing").html('<div class="update_processing"></div><p>Browscap 정보를 업데이트 중입니다.</p>');
$.ajax({ $.ajax({
url: "./browscap_update.php", url: "./browscap_update.php",
async: true, async: true,
cache: false, cache: false,
dataType: "html", dataType: "html",
success: function(data) { success: function(data) {
if(data != "") { if (data != "") {
alert(data); alert(data);
return false; return false;
}
$("#processing").html("<div class='check_processing'></div><p>Browscap 정보를 업데이트 했습니다.</p>");
} }
});
$("#processing").html("<div class='check_processing'></div><p>Browscap 정보를 업데이트 했습니다.</p>");
}
}); });
}); });
});
</script> </script>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+25 -20
View File
@@ -1,19 +1,22 @@
<?php <?php
$sub_menu = "100520"; $sub_menu = "100520";
include_once('./_common.php'); require_once './_common.php';
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE)) if (!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE)) {
alert('사용할 수 없는 기능입니다.', correct_goto_url(G5_ADMIN_URL)); alert('사용할 수 없는 기능입니다.', correct_goto_url(G5_ADMIN_URL));
}
if ($is_admin != 'super') if ($is_admin != 'super') {
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
}
$rows = isset($_GET['rows']) ? preg_replace('#[^0-9]#', '', $_GET['rows']) : 0; $rows = isset($_GET['rows']) ? preg_replace('#[^0-9]#', '', $_GET['rows']) : 0;
if(!$rows) if (!$rows) {
$rows = 100; $rows = 100;
}
$g5['title'] = '접속로그 변환'; $g5['title'] = '접속로그 변환';
include_once('./admin.head.php'); require_once './admin.head.php';
?> ?>
<div id="processing"> <div id="processing">
@@ -22,24 +25,26 @@ include_once('./admin.head.php');
</div> </div>
<script> <script>
$(function() { $(function() {
$(document).on("click", "#run_update", function() { $(document).on("click", "#run_update", function() {
$("#processing").html('<div class="update_processing"></div><p>Browscap 정보로 변환 중입니다.</p>'); $("#processing").html('<div class="update_processing"></div><p>Browscap 정보로 변환 중입니다.</p>');
$.ajax({ $.ajax({
method: "GET", method: "GET",
url: "./browscap_converter.php", url: "./browscap_converter.php",
data: { rows: "<?php echo $rows; ?>" }, data: {
async: true, rows: "<?php echo strval($rows); ?>"
cache: false, },
dataType: "html", async: true,
success: function(data) { cache: false,
$("#processing").html(data); dataType: "html",
} success: function(data) {
$("#processing").html(data);
}
});
}); });
}); });
});
</script> </script>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+25 -18
View File
@@ -1,36 +1,39 @@
<?php <?php
ini_set('memory_limit', '-1'); ini_set('memory_limit', '-1');
include_once('./_common.php'); require_once './_common.php';
// clean the output buffer // clean the output buffer
ob_end_clean(); ob_end_clean();
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE)) if (!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE)) {
die('사용할 수 없는 기능입니다.'); die('사용할 수 없는 기능입니다.');
}
if($is_admin != 'super') if ($is_admin != 'super') {
die('최고관리자로 로그인 후 실행해 주세요.'); die('최고관리자로 로그인 후 실행해 주세요.');
}
// browscap cache 파일 체크 // browscap cache 파일 체크
if(!is_file(G5_DATA_PATH.'/cache/browscap_cache.php')) { if (!is_file(G5_DATA_PATH . '/cache/browscap_cache.php')) {
echo '<p>Browscap 정보가 없습니다. 아래 링크로 이동해 Browscap 정보를 업데이트 하세요.</p>'.PHP_EOL; echo '<p>Browscap 정보가 없습니다. 아래 링크로 이동해 Browscap 정보를 업데이트 하세요.</p>' . PHP_EOL;
echo '<p><a href="'.G5_ADMIN_URL.'/browscap.php">Browscap 업데이트</a></p>'.PHP_EOL; echo '<p><a href="' . G5_ADMIN_URL . '/browscap.php">Browscap 업데이트</a></p>' . PHP_EOL;
exit; exit;
} }
include_once(G5_PLUGIN_PATH.'/browscap/Browscap.php'); require_once G5_PLUGIN_PATH . '/browscap/Browscap.php';
$browscap = new phpbrowscap\Browscap(G5_DATA_PATH.'/cache'); $browscap = new phpbrowscap\Browscap(G5_DATA_PATH . '/cache');
$browscap->doAutoUpdate = false; $browscap->doAutoUpdate = false;
$browscap->cacheFilename = 'browscap_cache.php'; $browscap->cacheFilename = 'browscap_cache.php';
// 데이터 변환 // 데이터 변환
$rows = preg_replace('#[^0-9]#', '', $_GET['rows']); $rows = isset($_GET['rows']) ? preg_replace('#[^0-9]#', '', $_GET['rows']) : 0;
if(!$rows) if (!$rows) {
$rows = 100; $rows = 100;
}
$sql_common = " from {$g5['visit_table']} where vi_agent <> '' and ( vi_browser = '' or vi_os = '' or vi_device = '' ) "; $sql_common = " from {$g5['visit_table']} where vi_agent <> '' and ( vi_browser = '' or vi_os = '' or vi_device = '' ) ";
$sql_order = " order by vi_id desc "; $sql_order = " order by vi_id desc ";
$sql_limit = " limit 0, $rows "; $sql_limit = " limit 0, " . strval($rows) . " ";
$sql = " select count(vi_id) as cnt $sql_common "; $sql = " select count(vi_id) as cnt $sql_common ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
@@ -43,20 +46,23 @@ $sql = " select vi_id, vi_agent, vi_browser, vi_os, vi_device
$result = sql_query($sql); $result = sql_query($sql);
$cnt = 0; $cnt = 0;
for($i=0; $row=sql_fetch_array($result); $i++) { for ($i = 0; $row = sql_fetch_array($result); $i++) {
$info = $browscap->getBrowser($row['vi_agent']); $info = $browscap->getBrowser($row['vi_agent']);
$brow = $row['vi_browser']; $brow = $row['vi_browser'];
if(!$brow) if (!$brow) {
$brow = $info->Comment; $brow = $info->Comment;
}
$os = $row['vi_os']; $os = $row['vi_os'];
if(!$os) if (!$os) {
$os = $info->Platform; $os = $info->Platform;
}
$device = $row['vi_device']; $device = $row['vi_device'];
if(!$device) if (!$device) {
$device = $info->Device_Type; $device = $info->Device_Type;
}
$sql2 = " update {$g5['visit_table']} $sql2 = " update {$g5['visit_table']}
set vi_browser = '$brow', set vi_browser = '$brow',
@@ -68,7 +74,8 @@ for($i=0; $row=sql_fetch_array($result); $i++) {
$cnt++; $cnt++;
} }
if(($total_count - $cnt) == 0 || $total_count == 0) if (($total_count - $cnt) == 0 || $total_count == 0) {
echo '<div class="check_processing"></div><p>변환완료</p>'; echo '<div class="check_processing"></div><p>변환완료</p>';
else } else {
echo '<p>총 '.number_format($total_count).'건 중 '.number_format($cnt).'건 변환완료<br><br>접속로그를 추가로 변환하시려면 아래 업데이트 버튼을 클릭해 주세요.</p><button type="button" id="run_update">업데이트</button>'; echo '<p>총 ' . number_format($total_count) . '건 중 ' . number_format($cnt) . '건 변환완료<br><br>접속로그를 추가로 변환하시려면 아래 업데이트 버튼을 클릭해 주세요.</p><button type="button" id="run_update">업데이트</button>';
}
+7 -5
View File
@@ -2,20 +2,22 @@
ini_set('memory_limit', '-1'); ini_set('memory_limit', '-1');
$sub_menu = "100510"; $sub_menu = "100510";
include_once('./_common.php'); require_once './_common.php';
// clean the output buffer // clean the output buffer
ob_end_clean(); ob_end_clean();
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE)) if (!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE)) {
die('사용할 수 없는 기능입니다.'); die('사용할 수 없는 기능입니다.');
}
if ($is_admin != 'super') if ($is_admin != 'super') {
die('최고관리자만 접근 가능합니다.'); die('최고관리자만 접근 가능합니다.');
}
include_once(G5_PLUGIN_PATH.'/browscap/Browscap.php'); require_once G5_PLUGIN_PATH . '/browscap/Browscap.php';
$browscap = new phpbrowscap\Browscap(G5_DATA_PATH.'/cache'); $browscap = new phpbrowscap\Browscap(G5_DATA_PATH . '/cache');
$browscap->updateMethod = 'cURL'; $browscap->updateMethod = 'cURL';
$browscap->cacheFilename = 'browscap_cache.php'; $browscap->cacheFilename = 'browscap_cache.php';
$browscap->updateCache(); $browscap->updateCache();
+17 -15
View File
@@ -1,19 +1,20 @@
<?php <?php
$sub_menu = '100900'; $sub_menu = '100900';
include_once('./_common.php'); require_once './_common.php';
if ($is_admin != 'super') if ($is_admin != 'super') {
alert('최고관리자만 접근 가능합니다.', G5_URL); alert('최고관리자만 접근 가능합니다.', G5_URL);
}
@include_once('./safe_check.php'); @require_once './safe_check.php';
if(function_exists('social_log_file_delete')){ if (function_exists('social_log_file_delete')) {
social_log_file_delete(); social_log_file_delete();
} }
run_event('adm_cache_file_delete_before'); run_event('adm_cache_file_delete_before');
$g5['title'] = '캐시파일 일괄삭제'; $g5['title'] = '캐시파일 일괄삭제';
include_once('./admin.head.php'); require_once './admin.head.php';
?> ?>
<div class="local_desc02 local_desc"> <div class="local_desc02 local_desc">
@@ -25,35 +26,36 @@ include_once('./admin.head.php');
<?php <?php
flush(); flush();
if (!$dir=@opendir(G5_DATA_PATH.'/cache')) { if (!$dir = @opendir(G5_DATA_PATH . '/cache')) {
echo '<p>캐시디렉토리를 열지못했습니다.</p>'; echo '<p>캐시디렉토리를 열지못했습니다.</p>';
} }
$cnt=0; $cnt = 0;
echo '<ul class="session_del">'.PHP_EOL; echo '<ul class="session_del">' . PHP_EOL;
$files = glob(G5_DATA_PATH.'/cache/latest-*'); $files = glob(G5_DATA_PATH . '/cache/latest-*');
$content_files = glob(G5_DATA_PATH.'/cache/content-*'); $content_files = glob(G5_DATA_PATH . '/cache/content-*');
$files = array_merge($files, $content_files); $files = array_merge($files, $content_files);
if (is_array($files)) { if (is_array($files)) {
foreach ($files as $cache_file) { foreach ($files as $cache_file) {
$cnt++; $cnt++;
unlink($cache_file); unlink($cache_file);
echo '<li>'.$cache_file.'</li>'.PHP_EOL; echo '<li>' . $cache_file . '</li>' . PHP_EOL;
flush(); flush();
if ($cnt%10==0) if ($cnt % 10 == 0) {
echo PHP_EOL; echo PHP_EOL;
}
} }
} }
run_event('adm_cache_file_delete'); run_event('adm_cache_file_delete');
echo '<li>완료됨</li></ul>'.PHP_EOL; echo '<li>완료됨</li></ul>' . PHP_EOL;
echo '<div class="local_desc01 local_desc"><p><strong>최신글 캐시파일 '.$cnt.'건 삭제 완료됐습니다.</strong><br>프로그램의 실행을 끝마치셔도 좋습니다.</p></div>'.PHP_EOL; echo '<div class="local_desc01 local_desc"><p><strong>최신글 캐시파일 ' . $cnt . '건 삭제 완료됐습니다.</strong><br>프로그램의 실행을 끝마치셔도 좋습니다.</p></div>' . PHP_EOL;
?> ?>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+17 -13
View File
@@ -1,12 +1,13 @@
<?php <?php
$sub_menu = '100910'; $sub_menu = '100910';
include_once('./_common.php'); require_once './_common.php';
if ($is_admin != 'super') if ($is_admin != 'super') {
alert('최고관리자만 접근 가능합니다.', G5_URL); alert('최고관리자만 접근 가능합니다.', G5_URL);
}
$g5['title'] = '캡챠파일 일괄삭제'; $g5['title'] = '캡챠파일 일괄삭제';
include_once('./admin.head.php'); require_once './admin.head.php';
?> ?>
<div class="local_desc02 local_desc"> <div class="local_desc02 local_desc">
@@ -18,35 +19,38 @@ include_once('./admin.head.php');
<?php <?php
flush(); flush();
if (!$dir=@opendir(G5_DATA_PATH.'/cache')) { if (!$dir = @opendir(G5_DATA_PATH . '/cache')) {
echo '<p>캐시디렉토리를 열지못했습니다.</p>'; echo '<p>캐시디렉토리를 열지못했습니다.</p>';
} }
$cnt=0; $cnt = 0;
echo '<ul class="session_del">'.PHP_EOL; echo '<ul class="session_del">' . PHP_EOL;
$files = glob(G5_DATA_PATH.'/cache/?captcha-*'); $files = glob(G5_DATA_PATH . '/cache/?captcha-*');
if (is_array($files)) { if (is_array($files)) {
$before_time = G5_SERVER_TIME - 3600; // 한시간전 $before_time = G5_SERVER_TIME - 3600; // 한시간전
foreach ($files as $gcaptcha_file) { foreach ($files as $gcaptcha_file) {
$modification_time = filemtime($gcaptcha_file); // 파일접근시간 $modification_time = filemtime($gcaptcha_file); // 파일접근시간
if ($modification_time > $before_time) continue; if ($modification_time > $before_time) {
continue;
}
$cnt++; $cnt++;
unlink($gcaptcha_file); unlink($gcaptcha_file);
echo '<li>'.$gcaptcha_file.'</li>'.PHP_EOL; echo '<li>' . $gcaptcha_file . '</li>' . PHP_EOL;
flush(); flush();
if ($cnt%10==0) if ($cnt % 10 == 0) {
echo PHP_EOL; echo PHP_EOL;
}
} }
} }
echo '<li>완료됨</li></ul>'.PHP_EOL; echo '<li>완료됨</li></ul>' . PHP_EOL;
echo '<div class="local_desc01 local_desc"><p><strong>캡챠파일 '.$cnt.'건의 삭제 완료됐습니다.</strong><br>프로그램의 실행을 끝마치셔도 좋습니다.</p></div>'.PHP_EOL; echo '<div class="local_desc01 local_desc"><p><strong>캡챠파일 ' . $cnt . '건의 삭제 완료됐습니다.</strong><br>프로그램의 실행을 끝마치셔도 좋습니다.</p></div>' . PHP_EOL;
?> ?>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+1438 -1269
View File
File diff suppressed because it is too large. Load diff
+134 -126
View File
@@ -1,13 +1,14 @@
<?php <?php
$sub_menu = "100100"; $sub_menu = "100100";
include_once('./_common.php'); require_once './_common.php';
check_demo(); check_demo();
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
if ($is_admin != 'super') if ($is_admin != 'super') {
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
}
$cf_title = isset($_POST['cf_title']) ? strip_tags(clean_xss_attributes($_POST['cf_title'])) : ''; $cf_title = isset($_POST['cf_title']) ? strip_tags(clean_xss_attributes($_POST['cf_title'])) : '';
$cf_admin = isset($_POST['cf_admin']) ? clean_xss_tags($_POST['cf_admin'], 1, 1) : ''; $cf_admin = isset($_POST['cf_admin']) ? clean_xss_tags($_POST['cf_admin'], 1, 1) : '';
@@ -15,154 +16,157 @@ $posts = array();
$mb = get_member($cf_admin); $mb = get_member($cf_admin);
if (! (isset($mb['mb_id']) && $mb['mb_id'])) if (!(isset($mb['mb_id']) && $mb['mb_id'])) {
alert('최고관리자 회원아이디가 존재하지 않습니다.'); alert('최고관리자 회원아이디가 존재하지 않습니다.');
}
check_admin_token(); check_admin_token();
$cf_social_servicelist = !empty($_POST['cf_social_servicelist']) ? implode(',', $_POST['cf_social_servicelist']) : ''; $cf_social_servicelist = !empty($_POST['cf_social_servicelist']) ? implode(',', $_POST['cf_social_servicelist']) : '';
$check_keys = array('cf_lg_mid', 'cf_lg_mert_key', 'cf_cert_kcb_cd', 'cf_cert_kcp_cd', 'cf_editor', 'cf_recaptcha_site_key', 'cf_recaptcha_secret_key', 'cf_naver_clientid', 'cf_naver_secret', 'cf_facebook_appid', 'cf_facebook_secret', 'cf_twitter_key', 'cf_twitter_secret', 'cf_google_clientid', 'cf_google_secret', 'cf_googl_shorturl_apikey', 'cf_kakao_rest_key', 'cf_kakao_client_secret', 'cf_kakao_js_apikey', 'cf_payco_clientid', 'cf_payco_secret'); $check_keys = array('cf_cert_kcb_cd', 'cf_cert_kcp_cd', 'cf_editor', 'cf_recaptcha_site_key', 'cf_recaptcha_secret_key', 'cf_naver_clientid', 'cf_naver_secret', 'cf_facebook_appid', 'cf_facebook_secret', 'cf_twitter_key', 'cf_twitter_secret', 'cf_google_clientid', 'cf_google_secret', 'cf_googl_shorturl_apikey', 'cf_kakao_rest_key', 'cf_kakao_client_secret', 'cf_kakao_js_apikey', 'cf_payco_clientid', 'cf_payco_secret', 'cf_cert_kg_cd', 'cf_cert_kg_mid');
foreach( $check_keys as $key ){ foreach ($check_keys as $key) {
if ( isset($_POST[$key]) && $_POST[$key] ){ if (isset($_POST[$key]) && $_POST[$key]) {
$posts[$key] = $_POST[$key] = preg_replace('/[^a-z0-9_\-\.]/i', '', $_POST[$key]); $posts[$key] = $_POST[$key] = preg_replace('/[^a-z0-9_\-\.]/i', '', $_POST[$key]);
} }
} }
$posts['cf_icode_server_port'] = $_POST['cf_icode_server_port'] = isset($_POST['cf_icode_server_port']) ? preg_replace('/[^0-9]/', '', $_POST['cf_icode_server_port']) : '7295'; $posts['cf_icode_server_port'] = $_POST['cf_icode_server_port'] = isset($_POST['cf_icode_server_port']) ? preg_replace('/[^0-9]/', '', $_POST['cf_icode_server_port']) : '7295';
if(isset($_POST['cf_intercept_ip']) && $_POST['cf_intercept_ip']){ if (isset($_POST['cf_intercept_ip']) && $_POST['cf_intercept_ip']) {
$pattern = explode("\n", trim($_POST['cf_intercept_ip'])); $pattern = explode("\n", trim($_POST['cf_intercept_ip']));
for ($i=0; $i<count($pattern); $i++) { for ($i = 0; $i < count($pattern); $i++) {
$pattern[$i] = trim($pattern[$i]); $pattern[$i] = trim($pattern[$i]);
if (empty($pattern[$i])) if (empty($pattern[$i])) {
continue; continue;
}
$pattern[$i] = str_replace(".", "\.", $pattern[$i]); $pattern[$i] = str_replace(".", "\.", $pattern[$i]);
$pattern[$i] = str_replace("+", "[0-9\.]+", $pattern[$i]); $pattern[$i] = str_replace("+", "[0-9\.]+", $pattern[$i]);
$pat = "/^{$pattern[$i]}$/"; $pat = "/^{$pattern[$i]}$/";
if( preg_match($pat, $_SERVER['REMOTE_ADDR']) ){ if (preg_match($pat, $_SERVER['REMOTE_ADDR'])) {
alert("현재 접속 IP : ".$_SERVER['REMOTE_ADDR']." 가 차단될수 있기 때문에, 다른 IP를 입력해 주세요."); alert("현재 접속 IP : " . $_SERVER['REMOTE_ADDR'] . " 가 차단될수 있기 때문에, 다른 IP를 입력해 주세요.");
} }
} }
} }
$check_keys = array( $check_keys = array(
'cf_use_email_certify' => 'int', 'cf_use_email_certify' => 'int',
'cf_use_homepage' => 'int', 'cf_use_homepage' => 'int',
'cf_req_homepage' => 'int', 'cf_req_homepage' => 'int',
'cf_use_tel' => 'int', 'cf_use_tel' => 'int',
'cf_req_tel' => 'int', 'cf_req_tel' => 'int',
'cf_use_hp' => 'int', 'cf_use_hp' => 'int',
'cf_req_hp' => 'int', 'cf_req_hp' => 'int',
'cf_use_addr' => 'int', 'cf_use_addr' => 'int',
'cf_req_addr' => 'int', 'cf_req_addr' => 'int',
'cf_use_signature' => 'int', 'cf_use_signature' => 'int',
'cf_req_signature' => 'int', 'cf_req_signature' => 'int',
'cf_use_profile' => 'int', 'cf_use_profile' => 'int',
'cf_req_profile' => 'int', 'cf_req_profile' => 'int',
'cf_register_level' => 'int', 'cf_register_level' => 'int',
'cf_register_point' => 'int', 'cf_register_point' => 'int',
'cf_icon_level' => 'int', 'cf_icon_level' => 'int',
'cf_use_recommend' => 'int', 'cf_use_recommend' => 'int',
'cf_leave_day' => 'int', 'cf_leave_day' => 'int',
'cf_search_part' => 'int', 'cf_search_part' => 'int',
'cf_email_use' => 'int', 'cf_email_use' => 'int',
'cf_email_wr_super_admin' => 'int', 'cf_email_wr_super_admin' => 'int',
'cf_email_wr_group_admin' => 'int', 'cf_email_wr_group_admin' => 'int',
'cf_email_wr_board_admin' => 'int', 'cf_email_wr_board_admin' => 'int',
'cf_email_wr_write' => 'int', 'cf_email_wr_write' => 'int',
'cf_email_wr_comment_all' => 'int', 'cf_email_wr_comment_all' => 'int',
'cf_email_mb_super_admin' => 'int', 'cf_email_mb_super_admin' => 'int',
'cf_email_mb_member' => 'int', 'cf_email_mb_member' => 'int',
'cf_email_po_super_admin' => 'int', 'cf_email_po_super_admin' => 'int',
'cf_prohibit_id' => 'text', 'cf_prohibit_id' => 'text',
'cf_prohibit_email' => 'text', 'cf_prohibit_email' => 'text',
'cf_new_del' => 'int', 'cf_new_del' => 'int',
'cf_memo_del' => 'int', 'cf_memo_del' => 'int',
'cf_visit_del' => 'int', 'cf_visit_del' => 'int',
'cf_popular_del' => 'int', 'cf_popular_del' => 'int',
'cf_use_member_icon' => 'int', 'cf_use_member_icon' => 'int',
'cf_member_icon_size' => 'int', 'cf_member_icon_size' => 'int',
'cf_member_icon_width' => 'int', 'cf_member_icon_width' => 'int',
'cf_member_icon_height' => 'int', 'cf_member_icon_height' => 'int',
'cf_member_img_size' => 'int', 'cf_member_img_size' => 'int',
'cf_member_img_width' => 'int', 'cf_member_img_width' => 'int',
'cf_member_img_height' => 'int', 'cf_member_img_height' => 'int',
'cf_login_minutes' => 'int', 'cf_login_minutes' => 'int',
'cf_formmail_is_member' => 'int', 'cf_formmail_is_member' => 'int',
'cf_page_rows' => 'int', 'cf_page_rows' => 'int',
'cf_mobile_page_rows' => 'int', 'cf_mobile_page_rows' => 'int',
'cf_social_login_use' => 'int', 'cf_social_login_use' => 'int',
'cf_cert_req' => 'int', 'cf_cert_req' => 'int',
'cf_cert_use' => 'int', 'cf_cert_use' => 'int',
'cf_cert_ipin' => 'char', 'cf_cert_find' => 'int',
'cf_cert_hp' => 'char', 'cf_cert_ipin' => 'char',
'cf_admin_email' => 'char', 'cf_cert_hp' => 'char',
'cf_admin_email_name' => 'char', 'cf_cert_simple' => 'char',
'cf_add_script' => 'text', 'cf_admin_email' => 'char',
'cf_use_point' => 'int', 'cf_admin_email_name' => 'char',
'cf_point_term' => 'int', 'cf_add_script' => 'text',
'cf_use_copy_log' => 'int', 'cf_use_point' => 'int',
'cf_login_point' => 'int', 'cf_point_term' => 'int',
'cf_cut_name' => 'int', 'cf_use_copy_log' => 'int',
'cf_nick_modify' => 'int', 'cf_login_point' => 'int',
'cf_new_skin' => 'char', 'cf_cut_name' => 'int',
'cf_new_rows' => 'int', 'cf_nick_modify' => 'int',
'cf_search_skin' => 'char', 'cf_new_skin' => 'char',
'cf_connect_skin' => 'char', 'cf_new_rows' => 'int',
'cf_faq_skin' => 'char', 'cf_search_skin' => 'char',
'cf_read_point' => 'int', 'cf_connect_skin' => 'char',
'cf_write_point' => 'int', 'cf_faq_skin' => 'char',
'cf_comment_point' => 'int', 'cf_read_point' => 'int',
'cf_download_point' => 'int', 'cf_write_point' => 'int',
'cf_write_pages' => 'int', 'cf_comment_point' => 'int',
'cf_mobile_pages' => 'int', 'cf_download_point' => 'int',
'cf_link_target' => 'char', 'cf_write_pages' => 'int',
'cf_delay_sec' => 'int', 'cf_mobile_pages' => 'int',
'cf_filter' => 'text', 'cf_link_target' => 'char',
'cf_possible_ip' => 'text', 'cf_delay_sec' => 'int',
'cf_analytics' => 'text', 'cf_filter' => 'text',
'cf_add_meta' => 'text', 'cf_possible_ip' => 'text',
'cf_member_skin' => 'char', 'cf_analytics' => 'text',
'cf_image_extension' => 'char', 'cf_add_meta' => 'text',
'cf_flash_extension' => 'char', 'cf_member_skin' => 'char',
'cf_movie_extension' => 'char', 'cf_image_extension' => 'char',
'cf_visit' => 'char', 'cf_flash_extension' => 'char',
'cf_stipulation' => 'text', 'cf_movie_extension' => 'char',
'cf_privacy' => 'text', 'cf_visit' => 'char',
'cf_open_modify' => 'int', 'cf_stipulation' => 'text',
'cf_memo_send_point' => 'int', 'cf_privacy' => 'text',
'cf_mobile_new_skin' => 'char', 'cf_open_modify' => 'int',
'cf_mobile_search_skin' => 'char', 'cf_memo_send_point' => 'int',
'cf_mobile_connect_skin' => 'char', 'cf_mobile_new_skin' => 'char',
'cf_mobile_faq_skin' => 'char', 'cf_mobile_search_skin' => 'char',
'cf_mobile_member_skin' => 'char', 'cf_mobile_connect_skin' => 'char',
'cf_captcha_mp3' => 'char', 'cf_mobile_faq_skin' => 'char',
'cf_cert_limit' => 'int', 'cf_mobile_member_skin' => 'char',
'cf_sms_use' => 'char', 'cf_captcha_mp3' => 'char',
'cf_sms_type' => 'char', 'cf_cert_limit' => 'int',
'cf_icode_id' => 'char', 'cf_sms_use' => 'char',
'cf_icode_pw' => 'char', 'cf_sms_type' => 'char',
'cf_icode_server_ip' => 'char', 'cf_icode_id' => 'char',
'cf_captcha' => 'char', 'cf_icode_pw' => 'char',
'cf_syndi_token' => '', 'cf_icode_server_ip' => 'char',
'cf_syndi_except' => '' 'cf_captcha' => 'char',
'cf_syndi_token' => '',
'cf_syndi_except' => ''
); );
for($i=1;$i<=10;$i++){ for ($i = 1; $i <= 10; $i++) {
$check_keys['cf_'.$i.'_subj'] = isset($_POST['cf_'.$i.'_subj']) ? $_POST['cf_'.$i.'_subj'] : ''; $check_keys['cf_' . $i . '_subj'] = isset($_POST['cf_' . $i . '_subj']) ? $_POST['cf_' . $i . '_subj'] : '';
$check_keys['cf_'.$i] = isset($_POST['cf_'.$i]) ? $_POST['cf_'.$i] : ''; $check_keys['cf_' . $i] = isset($_POST['cf_' . $i]) ? $_POST['cf_' . $i] : '';
} }
foreach( $check_keys as $k => $v ){ foreach ($check_keys as $k => $v) {
if( $v === 'int' ){ if ($v === 'int') {
$posts[$key] = $_POST[$k] = isset($_POST[$k]) ? (int) $_POST[$k] : 0; $posts[$key] = $_POST[$k] = isset($_POST[$k]) ? (int) $_POST[$k] : 0;
} else { } else {
if(in_array($k, array('cf_analytics', 'cf_add_meta', 'cf_add_script', 'cf_stipulation', 'cf_privacy'))){ if (in_array($k, array('cf_analytics', 'cf_add_meta', 'cf_add_script', 'cf_stipulation', 'cf_privacy'))) {
$posts[$key] = $_POST[$k] = isset($_POST[$k]) ? $_POST[$k] : ''; $posts[$key] = $_POST[$k] = isset($_POST[$k]) ? $_POST[$k] : '';
} else { } else {
$posts[$key] = $_POST[$k] = isset($_POST[$k]) ? strip_tags(clean_xss_attributes($_POST[$k])) : ''; $posts[$key] = $_POST[$k] = isset($_POST[$k]) ? strip_tags(clean_xss_attributes($_POST[$k])) : '';
@@ -171,12 +175,14 @@ foreach( $check_keys as $k => $v ){
} }
// 본인확인을 사용할 경우 아이핀, 휴대폰인증 중 하나는 선택되어야 함 // 본인확인을 사용할 경우 아이핀, 휴대폰인증 중 하나는 선택되어야 함
if($_POST['cf_cert_use'] && !$_POST['cf_cert_ipin'] && !$_POST['cf_cert_hp']) if ($_POST['cf_cert_use'] && !$_POST['cf_cert_ipin'] && !$_POST['cf_cert_hp'] && !$_POST['cf_cert_simple']) {
alert('본인확인을 위해 아이핀 또는 휴대폰 본인학인 서비스를 하나이상 선택해 주십시오'); alert('본인확인을 위해 아이핀, 휴대폰 본인확인, KG이니시스 간편인증 서비스 중 하나 이상 선택해 주십시오.');
}
if(!$_POST['cf_cert_use']) { if (!$_POST['cf_cert_use']) {
$posts[$key] = $_POST['cf_cert_ipin'] = ''; $posts[$key] = $_POST['cf_cert_ipin'] = '';
$posts[$key] = $_POST['cf_cert_hp'] = ''; $posts[$key] = $_POST['cf_cert_hp'] = '';
$posts[$key] = $_POST['cf_cert_simple'] = '';
} }
$sql = " update {$g5['config_table']} $sql = " update {$g5['config_table']}
@@ -206,8 +212,8 @@ $sql = " update {$g5['config_table']}
cf_link_target = '{$_POST['cf_link_target']}', cf_link_target = '{$_POST['cf_link_target']}',
cf_delay_sec = '{$_POST['cf_delay_sec']}', cf_delay_sec = '{$_POST['cf_delay_sec']}',
cf_filter = '{$_POST['cf_filter']}', cf_filter = '{$_POST['cf_filter']}',
cf_possible_ip = '".trim($_POST['cf_possible_ip'])."', cf_possible_ip = '" . trim($_POST['cf_possible_ip']) . "',
cf_intercept_ip = '".trim($_POST['cf_intercept_ip'])."', cf_intercept_ip = '" . trim($_POST['cf_intercept_ip']) . "',
cf_analytics = '{$_POST['cf_analytics']}', cf_analytics = '{$_POST['cf_analytics']}',
cf_add_meta = '{$_POST['cf_add_meta']}', cf_add_meta = '{$_POST['cf_add_meta']}',
cf_syndi_token = '{$_POST['cf_syndi_token']}', cf_syndi_token = '{$_POST['cf_syndi_token']}',
@@ -274,12 +280,14 @@ $sql = " update {$g5['config_table']}
cf_captcha_mp3 = '{$_POST['cf_captcha_mp3']}', cf_captcha_mp3 = '{$_POST['cf_captcha_mp3']}',
cf_editor = '{$_POST['cf_editor']}', cf_editor = '{$_POST['cf_editor']}',
cf_cert_use = '{$_POST['cf_cert_use']}', cf_cert_use = '{$_POST['cf_cert_use']}',
cf_cert_find = '{$_POST['cf_cert_find']}',
cf_cert_ipin = '{$_POST['cf_cert_ipin']}', cf_cert_ipin = '{$_POST['cf_cert_ipin']}',
cf_cert_hp = '{$_POST['cf_cert_hp']}', cf_cert_hp = '{$_POST['cf_cert_hp']}',
cf_cert_simple = '{$_POST['cf_cert_simple']}',
cf_cert_kg_cd = '{$_POST['cf_cert_kg_cd']}',
cf_cert_kg_mid = '" . trim($_POST['cf_cert_kg_mid']) . "',
cf_cert_kcb_cd = '{$_POST['cf_cert_kcb_cd']}', cf_cert_kcb_cd = '{$_POST['cf_cert_kcb_cd']}',
cf_cert_kcp_cd = '{$_POST['cf_cert_kcp_cd']}', cf_cert_kcp_cd = '{$_POST['cf_cert_kcp_cd']}',
cf_lg_mid = '{$_POST['cf_lg_mid']}',
cf_lg_mert_key = '{$_POST['cf_lg_mert_key']}',
cf_cert_limit = '{$_POST['cf_cert_limit']}', cf_cert_limit = '{$_POST['cf_cert_limit']}',
cf_cert_req = '{$_POST['cf_cert_req']}', cf_cert_req = '{$_POST['cf_cert_req']}',
cf_sms_use = '{$_POST['cf_sms_use']}', cf_sms_use = '{$_POST['cf_sms_use']}',
@@ -332,7 +340,7 @@ sql_query($sql);
//sql_query(" OPTIMIZE TABLE `$g5[config_table]` "); //sql_query(" OPTIMIZE TABLE `$g5[config_table]` ");
if( isset($_POST['cf_bbs_rewrite']) ){ if (isset($_POST['cf_bbs_rewrite'])) {
g5_delete_all_cache(); g5_delete_all_cache();
} }
+223 -214
View File
@@ -1,56 +1,63 @@
<?php <?php
$sub_menu = '300600'; $sub_menu = '300600';
include_once('./_common.php'); require_once './_common.php';
include_once(G5_EDITOR_LIB); require_once G5_EDITOR_LIB;
auth_check_menu($auth, $sub_menu, "w"); auth_check_menu($auth, $sub_menu, "w");
$co_id = isset($_REQUEST['co_id']) ? preg_replace('/[^a-z0-9_]/i', '', $_REQUEST['co_id']) : ''; $co_id = isset($_REQUEST['co_id']) ? preg_replace('/[^a-z0-9_]/i', '', $_REQUEST['co_id']) : '';
// 상단, 하단 파일경로 필드 추가 // 상단, 하단 파일경로 필드 추가
if(!sql_query(" select co_include_head from {$g5['content_table']} limit 1 ", false)) { if (!sql_query(" select co_include_head from {$g5['content_table']} limit 1 ", false)) {
$sql = " ALTER TABLE `{$g5['content_table']}` ADD `co_include_head` VARCHAR( 255 ) NOT NULL , $sql = " ALTER TABLE `{$g5['content_table']}` ADD `co_include_head` VARCHAR( 255 ) NOT NULL ,
ADD `co_include_tail` VARCHAR( 255 ) NOT NULL "; ADD `co_include_tail` VARCHAR( 255 ) NOT NULL ";
sql_query($sql, false); sql_query($sql, false);
} }
// html purifier 사용여부 필드 // html purifier 사용여부 필드
if(!sql_query(" select co_tag_filter_use from {$g5['content_table']} limit 1 ", false)) { if (!sql_query(" select co_tag_filter_use from {$g5['content_table']} limit 1 ", false)) {
sql_query(" ALTER TABLE `{$g5['content_table']}` sql_query(
ADD `co_tag_filter_use` tinyint(4) NOT NULL DEFAULT '0' AFTER `co_content` ", true); " ALTER TABLE `{$g5['content_table']}`
ADD `co_tag_filter_use` tinyint(4) NOT NULL DEFAULT '0' AFTER `co_content` ",
true
);
sql_query(" update {$g5['content_table']} set co_tag_filter_use = '1' "); sql_query(" update {$g5['content_table']} set co_tag_filter_use = '1' ");
} }
// 모바일 내용 추가 // 모바일 내용 추가
if(!sql_query(" select co_mobile_content from {$g5['content_table']} limit 1", false)) { if (!sql_query(" select co_mobile_content from {$g5['content_table']} limit 1", false)) {
sql_query(" ALTER TABLE `{$g5['content_table']}` sql_query(
ADD `co_mobile_content` longtext NOT NULL AFTER `co_content` ", true); " ALTER TABLE `{$g5['content_table']}`
ADD `co_mobile_content` longtext NOT NULL AFTER `co_content` ",
true
);
} }
// 스킨 설정 추가 // 스킨 설정 추가
if(!sql_query(" select co_skin from {$g5['content_table']} limit 1 ", false)) { if (!sql_query(" select co_skin from {$g5['content_table']} limit 1 ", false)) {
sql_query(" ALTER TABLE `{$g5['content_table']}` sql_query(
" ALTER TABLE `{$g5['content_table']}`
ADD `co_skin` varchar(255) NOT NULL DEFAULT '' AFTER `co_mobile_content`, ADD `co_skin` varchar(255) NOT NULL DEFAULT '' AFTER `co_mobile_content`,
ADD `co_mobile_skin` varchar(255) NOT NULL DEFAULT '' AFTER `co_skin` ", true); ADD `co_mobile_skin` varchar(255) NOT NULL DEFAULT '' AFTER `co_skin` ",
true
);
sql_query(" update {$g5['content_table']} set co_skin = 'basic', co_mobile_skin = 'basic' "); sql_query(" update {$g5['content_table']} set co_skin = 'basic', co_mobile_skin = 'basic' ");
} }
$html_title = "내용"; $html_title = "내용";
$g5['title'] = $html_title.' 관리'; $g5['title'] = $html_title . ' 관리';
$readonly = ''; $readonly = '';
if ($w == "u") if ($w == "u") {
{
$html_title .= " 수정"; $html_title .= " 수정";
$readonly = " readonly"; $readonly = " readonly";
$sql = " select * from {$g5['content_table']} where co_id = '$co_id' "; $sql = " select * from {$g5['content_table']} where co_id = '$co_id' ";
$co = sql_fetch($sql); $co = sql_fetch($sql);
if (!$co['co_id']) if (!$co['co_id']) {
alert('등록된 자료가 없습니다.'); alert('등록된 자료가 없습니다.');
} }
else } else {
{
$html_title .= ' 입력'; $html_title .= ' 입력';
$co = array( $co = array(
'co_id' => '', 'co_id' => '',
@@ -63,58 +70,58 @@ else
'co_html' => 2, 'co_html' => 2,
'co_skin' => 'basic', 'co_skin' => 'basic',
'co_mobile_skin' => 'basic' 'co_mobile_skin' => 'basic'
); );
} }
include_once (G5_ADMIN_PATH.'/admin.head.php'); require_once G5_ADMIN_PATH . '/admin.head.php';
?> ?>
<form name="frmcontentform" action="./contentformupdate.php" onsubmit="return frmcontentform_check(this);" method="post" enctype="MULTIPART/FORM-DATA" > <form name="frmcontentform" action="./contentformupdate.php" onsubmit="return frmcontentform_check(this);" method="post" enctype="MULTIPART/FORM-DATA">
<input type="hidden" name="w" value="<?php echo $w; ?>"> <input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="co_html" value="1"> <input type="hidden" name="co_html" value="1">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<colgroup> <colgroup>
<col class="grid_4"> <col class="grid_4">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="co_id">ID</label></th> <th scope="row"><label for="co_id">ID</label></th>
<td> <td>
<?php echo help('20자 이내의 영문자, 숫자, _ 만 가능합니다.'); ?> <?php echo help('20자 이내의 영문자, 숫자, _ 만 가능합니다.'); ?>
<input type="text" value="<?php echo $co['co_id']; ?>" name="co_id" id ="co_id" required <?php echo $readonly; ?> class="required <?php echo $readonly; ?> frm_input" size="20" maxlength="20"> <input type="text" value="<?php echo $co['co_id']; ?>" name="co_id" id="co_id" required <?php echo $readonly; ?> class="required <?php echo $readonly; ?> frm_input" size="20" maxlength="20">
<?php if ($w == 'u') { ?><a href="<?php echo get_pretty_url('content', $co_id); ?>" class="btn_frmline">내용확인</a><?php } ?> <?php if ($w == 'u') { ?><a href="<?php echo get_pretty_url('content', $co_id); ?>" class="btn_frmline">내용확인</a><?php } ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="co_subject">제목</label></th> <th scope="row"><label for="co_subject">제목</label></th>
<td><input type="text" name="co_subject" value="<?php echo htmlspecialchars2($co['co_subject']); ?>" id="co_subject" required class="frm_input required" size="90"></td> <td><input type="text" name="co_subject" value="<?php echo htmlspecialchars2($co['co_subject']); ?>" id="co_subject" required class="frm_input required" size="90"></td>
</tr> </tr>
<tr> <tr>
<th scope="row">내용</th> <th scope="row">내용</th>
<td><?php echo editor_html('co_content', get_text(html_purifier($co['co_content']), 0)); ?></td> <td><?php echo editor_html('co_content', get_text(html_purifier($co['co_content']), 0)); ?></td>
</tr> </tr>
<tr> <tr>
<th scope="row">모바일 내용</th> <th scope="row">모바일 내용</th>
<td><?php echo editor_html('co_mobile_content', get_text(html_purifier($co['co_mobile_content']), 0)); ?></td> <td><?php echo editor_html('co_mobile_content', get_text(html_purifier($co['co_mobile_content']), 0)); ?></td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="co_skin">스킨 디렉토리<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="co_skin">스킨 디렉토리<strong class="sound_only">필수</strong></label></th>
<td> <td>
<?php echo get_skin_select('content', 'co_skin', 'co_skin', $co['co_skin'], 'required'); ?> <?php echo get_skin_select('content', 'co_skin', 'co_skin', $co['co_skin'], 'required'); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="co_mobile_skin">모바일스킨 디렉토리<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="co_mobile_skin">모바일스킨 디렉토리<strong class="sound_only">필수</strong></label></th>
<td> <td>
<?php echo get_mobile_skin_select('content', 'co_mobile_skin', 'co_mobile_skin', $co['co_mobile_skin'], 'required'); ?> <?php echo get_mobile_skin_select('content', 'co_mobile_skin', 'co_mobile_skin', $co['co_mobile_skin'], 'required'); ?>
</td> </td>
</tr> </tr>
<!-- <!--
<tr> <tr>
<th scope="row"><label for="co_tag_filter_use">태그 필터링 사용</label></th> <th scope="row"><label for="co_tag_filter_use">태그 필터링 사용</label></th>
<td> <td>
@@ -126,94 +133,96 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
</td> </td>
</tr> </tr>
--> -->
<tr> <tr>
<th scope="row"><label for="co_include_head">상단 파일 경로</label></th> <th scope="row"><label for="co_include_head">상단 파일 경로</label></th>
<td> <td>
<?php echo help("설정값이 없으면 기본 상단 파일을 사용합니다."); ?> <?php echo help("설정값이 없으면 기본 상단 파일을 사용합니다."); ?>
<input type="text" name="co_include_head" value="<?php echo $co['co_include_head']; ?>" id="co_include_head" class="frm_input" size="60"> <input type="text" name="co_include_head" value="<?php echo $co['co_include_head']; ?>" id="co_include_head" class="frm_input" size="60">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="co_include_tail">하단 파일 경로</label></th> <th scope="row"><label for="co_include_tail">하단 파일 경로</label></th>
<td> <td>
<?php echo help("설정값이 없으면 기본 하단 파일을 사용합니다."); ?> <?php echo help("설정값이 없으면 기본 하단 파일을 사용합니다."); ?>
<input type="text" name="co_include_tail" value="<?php echo $co['co_include_tail']; ?>" id="co_include_tail" class="frm_input" size="60"> <input type="text" name="co_include_tail" value="<?php echo $co['co_include_tail']; ?>" id="co_include_tail" class="frm_input" size="60">
</td> </td>
</tr> </tr>
<tr id="admin_captcha_box" style="display:none;"> <tr id="admin_captcha_box" style="display:none;">
<th scope="row">자동등록방지</th> <th scope="row">자동등록방지</th>
<td> <td>
<?php <?php
echo help("파일 경로를 입력 또는 수정시 캡챠를 반드시 입력해야 합니다."); echo help("파일 경로를 입력 또는 수정시 캡챠를 반드시 입력해야 합니다.");
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php'); require_once G5_CAPTCHA_PATH . '/captcha.lib.php';
$captcha_html = captcha_html(); $captcha_html = captcha_html();
$captcha_js = chk_captcha_js(); $captcha_js = chk_captcha_js();
echo $captcha_html; echo $captcha_html;
?> ?>
<script> <script>
jQuery("#captcha_key").removeAttr("required").removeClass("required"); jQuery("#captcha_key").removeAttr("required").removeClass("required");
</script> </script>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="co_himg">상단이미지</label></th> <th scope="row"><label for="co_himg">상단이미지</label></th>
<td> <td>
<input type="file" name="co_himg" id="co_himg"> <input type="file" name="co_himg" id="co_himg">
<?php <?php
$himg = G5_DATA_PATH.'/content/'.$co['co_id'].'_h'; $himg = G5_DATA_PATH . '/content/' . $co['co_id'] . '_h';
$himg_str = ''; $himg_str = '';
if (file_exists($himg)) { if (file_exists($himg)) {
$size = @getimagesize($himg); $size = @getimagesize($himg);
if($size[0] && $size[0] > 750) if ($size[0] && $size[0] > 750) {
$width = 750; $width = 750;
else } else {
$width = $size[0]; $width = $size[0];
}
echo '<input type="checkbox" name="co_himg_del" value="1" id="co_himg_del"> <label for="co_himg_del">삭제</label>'; echo '<input type="checkbox" name="co_himg_del" value="1" id="co_himg_del"> <label for="co_himg_del">삭제</label>';
$himg_str = '<img src="'.G5_DATA_URL.'/content/'.$co['co_id'].'_h" width="'.$width.'" alt="">'; $himg_str = '<img src="' . G5_DATA_URL . '/content/' . $co['co_id'] . '_h" width="' . $width . '" alt="">';
} }
if ($himg_str) { if ($himg_str) {
echo '<div class="banner_or_img">'; echo '<div class="banner_or_img">';
echo $himg_str; echo $himg_str;
echo '</div>'; echo '</div>';
} }
?> ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="co_timg">하단이미지</label></th> <th scope="row"><label for="co_timg">하단이미지</label></th>
<td> <td>
<input type="file" name="co_timg" id="co_timg"> <input type="file" name="co_timg" id="co_timg">
<?php <?php
$timg = G5_DATA_PATH.'/content/'.$co['co_id'].'_t'; $timg = G5_DATA_PATH . '/content/' . $co['co_id'] . '_t';
$timg_str = ''; $timg_str = '';
if (file_exists($timg)) { if (file_exists($timg)) {
$size = @getimagesize($timg); $size = @getimagesize($timg);
if($size[0] && $size[0] > 750) if ($size[0] && $size[0] > 750) {
$width = 750; $width = 750;
else } else {
$width = $size[0]; $width = $size[0];
}
echo '<input type="checkbox" name="co_timg_del" value="1" id="co_timg_del"> <label for="co_timg_del">삭제</label>'; echo '<input type="checkbox" name="co_timg_del" value="1" id="co_timg_del"> <label for="co_timg_del">삭제</label>';
$timg_str = '<img src="'.G5_DATA_URL.'/content/'.$co['co_id'].'_t" width="'.$width.'" alt="">'; $timg_str = '<img src="' . G5_DATA_URL . '/content/' . $co['co_id'] . '_t" width="' . $width . '" alt="">';
} }
if ($timg_str) { if ($timg_str) {
echo '<div class="banner_or_img">'; echo '<div class="banner_or_img">';
echo $timg_str; echo $timg_str;
echo '</div>'; echo '</div>';
} }
?> ?>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="btn_fixed_top"> <div class="btn_fixed_top">
<a href="./contentlist.php" class="btn btn_02">목록</a> <a href="./contentlist.php" class="btn btn_02">목록</a>
<input type="submit" value="확인" class="btn btn_submit" accesskey="s"> <input type="submit" value="확인" class="btn btn_submit" accesskey="s">
</div> </div>
</form> </form>
@@ -221,78 +230,78 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
// [KVE-2018-2089] 취약점 으로 인해 파일 경로 수정시에만 자동등록방지 코드 사용 // [KVE-2018-2089] 취약점 으로 인해 파일 경로 수정시에만 자동등록방지 코드 사용
?> ?>
<script> <script>
var captcha_chk = false; var captcha_chk = false;
function use_captcha_check(){ function use_captcha_check() {
$.ajax({ $.ajax({
type: "POST", type: "POST",
url: g5_admin_url+"/ajax.use_captcha.php", url: g5_admin_url + "/ajax.use_captcha.php",
data: { admin_use_captcha: "1" }, data: {
cache: false, admin_use_captcha: "1"
async: false, },
dataType: "json", cache: false,
success: function(data) { async: false,
dataType: "json",
success: function(data) {}
});
}
function frm_check_file() {
var co_include_head = "<?php echo $co['co_include_head']; ?>";
var co_include_tail = "<?php echo $co['co_include_tail']; ?>";
var head = jQuery.trim(jQuery("#co_include_head").val());
var tail = jQuery.trim(jQuery("#co_include_tail").val());
if (co_include_head !== head || co_include_tail !== tail) {
// 캡챠를 사용합니다.
jQuery("#admin_captcha_box").show();
captcha_chk = true;
use_captcha_check();
return false;
} else {
jQuery("#admin_captcha_box").hide();
}
return true;
}
jQuery(function($) {
if (window.self !== window.top) { // frame 또는 iframe을 사용할 경우 체크
$("#co_include_head, #co_include_tail").on("change paste keyup", function(e) {
frm_check_file();
});
use_captcha_check();
} }
}); });
}
function frm_check_file(){ function frmcontentform_check(f) {
var co_include_head = "<?php echo $co['co_include_head']; ?>"; errmsg = "";
var co_include_tail = "<?php echo $co['co_include_tail']; ?>"; errfld = "";
var head = jQuery.trim(jQuery("#co_include_head").val());
var tail = jQuery.trim(jQuery("#co_include_tail").val());
if(co_include_head !== head || co_include_tail !== tail){ <?php echo get_editor_js('co_content'); ?>
// 캡챠를 사용합니다. <?php echo chk_editor_js('co_content'); ?>
jQuery("#admin_captcha_box").show(); <?php echo get_editor_js('co_mobile_content'); ?>
captcha_chk = true;
use_captcha_check(); check_field(f.co_id, "ID를 입력하세요.");
check_field(f.co_subject, "제목을 입력하세요.");
check_field(f.co_content, "내용을 입력하세요.");
return false; if (errmsg != "") {
} else { alert(errmsg);
jQuery("#admin_captcha_box").hide(); errfld.focus();
return false;
}
if (captcha_chk) {
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
}
return true;
} }
return true;
}
jQuery(function($){
if( window.self !== window.top ){ // frame 또는 iframe을 사용할 경우 체크
$("#co_include_head, #co_include_tail").on("change paste keyup", function(e) {
frm_check_file();
});
use_captcha_check();
}
});
function frmcontentform_check(f)
{
errmsg = "";
errfld = "";
<?php echo get_editor_js('co_content'); ?>
<?php echo chk_editor_js('co_content'); ?>
<?php echo get_editor_js('co_mobile_content'); ?>
check_field(f.co_id, "ID를 입력하세요.");
check_field(f.co_subject, "제목을 입력하세요.");
check_field(f.co_content, "내용을 입력하세요.");
if (errmsg != "") {
alert(errmsg);
errfld.focus();
return false;
}
if( captcha_chk ) {
<?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
}
return true;
}
</script> </script>
<?php <?php
include_once (G5_ADMIN_PATH.'/admin.tail.php'); require_once G5_ADMIN_PATH . '/admin.tail.php';
+45 -48
View File
@@ -1,22 +1,25 @@
<?php <?php
$sub_menu = '300600'; $sub_menu = '300600';
include_once('./_common.php'); require_once './_common.php';
if ($w == "u" || $w == "d") if ($w == "u" || $w == "d") {
check_demo(); check_demo();
}
if ($w == 'd') if ($w == 'd') {
auth_check_menu($auth, $sub_menu, "d"); auth_check_menu($auth, $sub_menu, "d");
else } else {
auth_check_menu($auth, $sub_menu, "w"); auth_check_menu($auth, $sub_menu, "w");
}
check_admin_token(); check_admin_token();
$co_row = array('co_id'=>'', 'co_include_head'=>'', 'co_include_tail'=>''); $co_row = array('co_id' => '', 'co_include_head' => '', 'co_include_tail' => '');
if ($w == "" || $w == "u") if ($w == "" || $w == "u") {
{ if (isset($_REQUEST['co_id']) && preg_match("/[^a-z0-9_]/i", $_REQUEST['co_id'])) {
if(isset($_REQUEST['co_id']) && preg_match("/[^a-z0-9_]/i", $_REQUEST['co_id'])) alert("ID 는 영문자, 숫자, _ 만 가능합니다."); alert("ID 는 영문자, 숫자, _ 만 가능합니다.");
}
$sql = " select * from {$g5['content_table']} where co_id = '$co_id' "; $sql = " select * from {$g5['content_table']} where co_id = '$co_id' ";
$co_row = sql_fetch($sql); $co_row = sql_fetch($sql);
@@ -36,51 +39,53 @@ $co_skin = isset($_POST['co_skin']) ? clean_xss_tags($_POST['co_skin'], 1, 1) :
$co_mobile_skin = isset($_POST['co_mobile_skin']) ? clean_xss_tags($_POST['co_mobile_skin'], 1, 1) : ''; $co_mobile_skin = isset($_POST['co_mobile_skin']) ? clean_xss_tags($_POST['co_mobile_skin'], 1, 1) : '';
// 관리자가 자동등록방지를 사용해야 할 경우 // 관리자가 자동등록방지를 사용해야 할 경우
if ((( isset($co_row['co_include_head']) && $co_row['co_include_head'] !== $co_include_head ) || ( isset($co_row['co_include_tail']) && $co_row['co_include_tail'] !== $co_include_tail )) && function_exists('get_admin_captcha_by') && get_admin_captcha_by()){ if (((isset($co_row['co_include_head']) && $co_row['co_include_head'] !== $co_include_head) || (isset($co_row['co_include_tail']) && $co_row['co_include_tail'] !== $co_include_tail)) && function_exists('get_admin_captcha_by') && get_admin_captcha_by()) {
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php'); include_once G5_CAPTCHA_PATH . '/captcha.lib.php';
if (!chk_captcha()) { if (!chk_captcha()) {
alert('자동등록방지 숫자가 틀렸습니다.'); alert('자동등록방지 숫자가 틀렸습니다.');
} }
} }
@mkdir(G5_DATA_PATH."/content", G5_DIR_PERMISSION); @mkdir(G5_DATA_PATH . "/content", G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH."/content", G5_DIR_PERMISSION); @chmod(G5_DATA_PATH . "/content", G5_DIR_PERMISSION);
if ($co_himg_del) @unlink(G5_DATA_PATH."/content/{$co_id}_h"); if ($co_himg_del) {
if ($co_timg_del) @unlink(G5_DATA_PATH."/content/{$co_id}_t"); @unlink(G5_DATA_PATH . "/content/{$co_id}_h");
}
if ($co_timg_del) {
@unlink(G5_DATA_PATH . "/content/{$co_id}_t");
}
$error_msg = ''; $error_msg = '';
if( $co_include_head ){ if ($co_include_head) {
$file_ext = pathinfo($co_include_head, PATHINFO_EXTENSION); $file_ext = pathinfo($co_include_head, PATHINFO_EXTENSION);
if( ! $file_ext || ! in_array($file_ext, array('php', 'htm', 'html')) || ! preg_match('/^.*\.(php|htm|html)$/i', $co_include_head) ) { if (!$file_ext || !in_array($file_ext, array('php', 'htm', 'html')) || !preg_match('/^.*\.(php|htm|html)$/i', $co_include_head)) {
alert('상단 파일 경로의 확장자는 php, htm, html 만 허용합니다.'); alert('상단 파일 경로의 확장자는 php, htm, html 만 허용합니다.');
} }
} }
if( $co_include_tail ){ if ($co_include_tail) {
$file_ext = pathinfo($co_include_tail, PATHINFO_EXTENSION); $file_ext = pathinfo($co_include_tail, PATHINFO_EXTENSION);
if( ! $file_ext || ! in_array($file_ext, array('php', 'htm', 'html')) || ! preg_match('/^.*\.(php|htm|html)$/i', $co_include_tail) ) { if (!$file_ext || !in_array($file_ext, array('php', 'htm', 'html')) || !preg_match('/^.*\.(php|htm|html)$/i', $co_include_tail)) {
alert('하단 파일 경로의 확장자는 php, htm, html 만 허용합니다.'); alert('하단 파일 경로의 확장자는 php, htm, html 만 허용합니다.');
} }
} }
if( $co_include_head && ! is_include_path_check($co_include_head, 1) ){ if ($co_include_head && !is_include_path_check($co_include_head, 1)) {
$co_include_head = ''; $co_include_head = '';
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 상단 파일 경로에 포함시킬수 없습니다.'; $error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 상단 파일 경로에 포함시킬수 없습니다.';
} }
if( $co_include_tail && ! is_include_path_check($co_include_tail, 1) ){ if ($co_include_tail && !is_include_path_check($co_include_tail, 1)) {
$co_include_tail = ''; $co_include_tail = '';
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.'; $error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.';
} }
if( function_exists('filter_input_include_path') ){ if (function_exists('filter_input_include_path')) {
$co_include_head = filter_input_include_path($co_include_head); $co_include_head = filter_input_include_path($co_include_head);
$co_include_tail = filter_input_include_path($co_include_tail); $co_include_tail = filter_input_include_path($co_include_tail);
} }
@@ -98,60 +103,52 @@ $sql_common = " co_include_head = '$co_include_head',
co_skin = '$co_skin', co_skin = '$co_skin',
co_mobile_skin = '$co_mobile_skin' "; co_mobile_skin = '$co_mobile_skin' ";
if ($w == "") if ($w == "") {
{
$row = $co_row; $row = $co_row;
if (isset($row['co_id']) && $row['co_id']) if (isset($row['co_id']) && $row['co_id']) {
alert("이미 같은 ID로 등록된 내용이 있습니다."); alert("이미 같은 ID로 등록된 내용이 있습니다.");
}
$sql = " insert {$g5['content_table']} $sql = " insert {$g5['content_table']}
set co_id = '$co_id', set co_id = '$co_id',
$sql_common "; $sql_common ";
sql_query($sql); sql_query($sql);
} } elseif ($w == "u") {
else if ($w == "u")
{
$sql = " update {$g5['content_table']} $sql = " update {$g5['content_table']}
set $sql_common set $sql_common
where co_id = '$co_id' "; where co_id = '$co_id' ";
sql_query($sql); sql_query($sql);
} } elseif ($w == "d") {
else if ($w == "d") @unlink(G5_DATA_PATH . "/content/{$co_id}_h");
{ @unlink(G5_DATA_PATH . "/content/{$co_id}_t");
@unlink(G5_DATA_PATH."/content/{$co_id}_h");
@unlink(G5_DATA_PATH."/content/{$co_id}_t");
$sql = " delete from {$g5['content_table']} where co_id = '$co_id' "; $sql = " delete from {$g5['content_table']} where co_id = '$co_id' ";
sql_query($sql); sql_query($sql);
} }
if(function_exists('get_admin_captcha_by')) if (function_exists('get_admin_captcha_by')) {
get_admin_captcha_by('remove'); get_admin_captcha_by('remove');
}
g5_delete_cache_by_prefix('content-'.$co_id.'-'); g5_delete_cache_by_prefix('content-' . $co_id . '-');
if ($w == "" || $w == "u") if ($w == "" || $w == "u") {
{ if ($_FILES['co_himg']['name']) {
if ($_FILES['co_himg']['name']) $dest_path = G5_DATA_PATH . "/content/" . $co_id . "_h";
{
$dest_path = G5_DATA_PATH."/content/".$co_id."_h";
@move_uploaded_file($_FILES['co_himg']['tmp_name'], $dest_path); @move_uploaded_file($_FILES['co_himg']['tmp_name'], $dest_path);
@chmod($dest_path, G5_FILE_PERMISSION); @chmod($dest_path, G5_FILE_PERMISSION);
} }
if ($_FILES['co_timg']['name']) if ($_FILES['co_timg']['name']) {
{ $dest_path = G5_DATA_PATH . "/content/" . $co_id . "_t";
$dest_path = G5_DATA_PATH."/content/".$co_id."_t";
@move_uploaded_file($_FILES['co_timg']['tmp_name'], $dest_path); @move_uploaded_file($_FILES['co_timg']['tmp_name'], $dest_path);
@chmod($dest_path, G5_FILE_PERMISSION); @chmod($dest_path, G5_FILE_PERMISSION);
} }
if( $error_msg ){ if ($error_msg) {
alert($error_msg, "./contentform.php?w=u&amp;co_id=$co_id"); alert($error_msg, "./contentform.php?w=u&amp;co_id=$co_id");
} else { } else {
goto_url("./contentform.php?w=u&amp;co_id=$co_id"); goto_url("./contentform.php?w=u&amp;co_id=$co_id");
} }
} } else {
else
{
goto_url("./contentlist.php"); goto_url("./contentlist.php");
} }
+46 -41
View File
@@ -1,18 +1,19 @@
<?php <?php
$sub_menu = '300600'; $sub_menu = '300600';
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, "r"); auth_check_menu($auth, $sub_menu, "r");
if( !isset($g5['content_table']) ){ if (!isset($g5['content_table'])) {
die('<meta charset="utf-8">/data/dbconfig.php 파일에 <strong>$g5[\'content_table\'] = G5_TABLE_PREFIX.\'content\';</strong> 를 추가해 주세요.'); die('<meta charset="utf-8">/data/dbconfig.php 파일에 <strong>$g5[\'content_table\'] = G5_TABLE_PREFIX.\'content\';</strong> 를 추가해 주세요.');
} }
//내용(컨텐츠)정보 테이블이 있는지 검사한다. //내용(컨텐츠)정보 테이블이 있는지 검사한다.
if(!sql_query(" DESCRIBE {$g5['content_table']} ", false)) { if (!sql_query(" DESCRIBE {$g5['content_table']} ", false)) {
if(sql_query(" DESCRIBE {$g5['g5_shop_content_table']} ", false)) { if (sql_query(" DESCRIBE {$g5['g5_shop_content_table']} ", false)) {
sql_query(" ALTER TABLE {$g5['g5_shop_content_table']} RENAME TO `{$g5['content_table']}` ;", false); sql_query(" ALTER TABLE {$g5['g5_shop_content_table']} RENAME TO `{$g5['content_table']}` ;", false);
} else { } else {
$query_cp = sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['content_table']}` ( $query_cp = sql_query(
" CREATE TABLE IF NOT EXISTS `{$g5['content_table']}` (
`co_id` varchar(20) NOT NULL DEFAULT '', `co_id` varchar(20) NOT NULL DEFAULT '',
`co_html` tinyint(4) NOT NULL DEFAULT '0', `co_html` tinyint(4) NOT NULL DEFAULT '0',
`co_subject` varchar(255) NOT NULL DEFAULT '', `co_subject` varchar(255) NOT NULL DEFAULT '',
@@ -21,17 +22,19 @@ if(!sql_query(" DESCRIBE {$g5['content_table']} ", false)) {
`co_include_head` varchar(255) NOT NULL, `co_include_head` varchar(255) NOT NULL,
`co_include_tail` varchar(255) NOT NULL, `co_include_tail` varchar(255) NOT NULL,
PRIMARY KEY (`co_id`) PRIMARY KEY (`co_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ", true); ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ",
true
);
// 내용관리 생성 // 내용관리 생성
sql_query(" insert into `{$g5['content_table']}` set co_id = 'company', co_html = '1', co_subject = '회사소개', co_content= '<p align=center><b>회사소개에 대한 내용을 입력하십시오.</b></p>' ", false ); sql_query(" insert into `{$g5['content_table']}` set co_id = 'company', co_html = '1', co_subject = '회사소개', co_content= '<p align=center><b>회사소개에 대한 내용을 입력하십시오.</b></p>' ", false);
sql_query(" insert into `{$g5['content_table']}` set co_id = 'privacy', co_html = '1', co_subject = '개인정보 처리방침', co_content= '<p align=center><b>개인정보 처리방침에 대한 내용을 입력하십시오.</b></p>' ", false ); sql_query(" insert into `{$g5['content_table']}` set co_id = 'privacy', co_html = '1', co_subject = '개인정보 처리방침', co_content= '<p align=center><b>개인정보 처리방침에 대한 내용을 입력하십시오.</b></p>' ", false);
sql_query(" insert into `{$g5['content_table']}` set co_id = 'provision', co_html = '1', co_subject = '서비스 이용약관', co_content= '<p align=center><b>서비스 이용약관에 대한 내용을 입력하십시오.</b></p>' ", false ); sql_query(" insert into `{$g5['content_table']}` set co_id = 'provision', co_html = '1', co_subject = '서비스 이용약관', co_content= '<p align=center><b>서비스 이용약관에 대한 내용을 입력하십시오.</b></p>' ", false);
} }
} }
$g5['title'] = '내용관리'; $g5['title'] = '내용관리';
include_once (G5_ADMIN_PATH.'/admin.head.php'); require_once G5_ADMIN_PATH . '/admin.head.php';
$sql_common = " from {$g5['content_table']} "; $sql_common = " from {$g5['content_table']} ";
@@ -42,7 +45,9 @@ $total_count = $row['cnt'];
$rows = $config['cf_page_rows']; $rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산 $total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지) if ($page < 1) {
$page = 1;
} // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함 $from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = "select * $sql_common order by co_id limit $from_record, {$config['cf_page_rows']} "; $sql = "select * $sql_common order by co_id limit $from_record, {$config['cf_page_rows']} ";
@@ -50,7 +55,7 @@ $result = sql_query($sql);
?> ?>
<div class="local_ov01 local_ov"> <div class="local_ov01 local_ov">
<?php if ($page > 1) {?><a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>">처음으로</a><?php } ?> <?php if ($page > 1) { ?><a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>">처음으로</a><?php } ?>
<span class="btn_ov01"><span class="ov_txt">전체 내용</span><span class="ov_num"> <?php echo $total_count; ?>건</span></span> <span class="btn_ov01"><span class="ov_txt">전체 내용</span><span class="ov_num"> <?php echo $total_count; ?>건</span></span>
</div> </div>
@@ -60,38 +65,38 @@ $result = sql_query($sql);
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col">ID</th> <th scope="col">ID</th>
<th scope="col">제목</th> <th scope="col">제목</th>
<th scope="col">관리</th> <th scope="col">관리</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php for ($i=0; $row=sql_fetch_array($result); $i++) { <?php for ($i = 0; $row = sql_fetch_array($result); $i++) {
$bg = 'bg'.($i%2); $bg = 'bg' . ($i % 2);
?> ?>
<tr class="<?php echo $bg; ?>"> <tr class="<?php echo $bg; ?>">
<td class="td_id"><?php echo $row['co_id']; ?></td> <td class="td_id"><?php echo $row['co_id']; ?></td>
<td class="td_left"><?php echo htmlspecialchars2($row['co_subject']); ?></td> <td class="td_left"><?php echo htmlspecialchars2($row['co_subject']); ?></td>
<td class="td_mng td_mng_l"> <td class="td_mng td_mng_l">
<a href="./contentform.php?w=u&amp;co_id=<?php echo $row['co_id']; ?>" class="btn btn_03"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span>수정</a> <a href="./contentform.php?w=u&amp;co_id=<?php echo $row['co_id']; ?>" class="btn btn_03"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span>수정</a>
<a href="<?php echo get_pretty_url('content', $row['co_id']); ?>" class="btn btn_02"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span> 보기</a> <a href="<?php echo get_pretty_url('content', $row['co_id']); ?>" class="btn btn_02"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span> 보기</a>
<a href="./contentformupdate.php?w=d&amp;co_id=<?php echo $row['co_id']; ?>" onclick="return delete_confirm(this);" class="btn btn_02"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span>삭제</a> <a href="./contentformupdate.php?w=d&amp;co_id=<?php echo $row['co_id']; ?>" onclick="return delete_confirm(this);" class="btn btn_02"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span>삭제</a>
</td> </td>
</tr> </tr>
<?php <?php
} }
if ($i == 0) { if ($i == 0) {
echo '<tr><td colspan="3" class="empty_table">자료가 한건도 없습니다.</td></tr>'; echo '<tr><td colspan="3" class="empty_table">자료가 한건도 없습니다.</td></tr>';
} }
?> ?>
</tbody> </tbody>
</table> </table>
</div> </div>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?> <?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?>
<?php <?php
include_once (G5_ADMIN_PATH.'/admin.tail.php'); require_once G5_ADMIN_PATH . '/admin.tail.php';
+7 -8
View File
@@ -178,7 +178,7 @@ a.btn_submit{background:#ff4081;color:#fff}
.btn_add01 {text-align:right} .btn_add01 {text-align:right}
.btn_add01 a, .btn_add01 button {padding:10px;border:1px solid #ccc;background:#f0f0f0;text-decoration:none;cursor:pointer} .btn_add01 a, .btn_add01 button {padding:10px;border:1px solid #ccc;background:#f0f0f0;text-decoration:none;cursor:pointer}
.btn_add01 a {display:inline-block;vertical-align:middle}btn_confirm .btn_add01 a {display:inline-block;vertical-align:middle}
.btn_add01 button {margin:0} .btn_add01 button {margin:0}
@@ -208,7 +208,7 @@ a.btn_ov02:hover,a.ov_listall:hover{background:#3f51b5}
/*form*/ /*form*/
.sound_only {display:inline-block !important;position:absolute;top:0;left:0;margin:0 !important;padding:0 !important;width:1px !important;height:1px !important;font-size:0;line-height:0;border:0 !important;overflow:hidden !important} .sound_only {display:inline-block !important;position:absolute;top:0;left:0;margin:0 !important;padding:0 !important;width:1px !important;height:1px !important;font-size:0;line-height:0;border:0 !important;overflow:hidden !important}
.frm_input{height:35px;line-height:32px;border:1px solid #d5d5d5;} .frm_input{padding:0 5px;height:35px;line-height:32px;border:1px solid #d5d5d5;}
.frm_input_full{width:100%} .frm_input_full{width:100%}
.required{background:url('../img/wrest.gif') top right no-repeat #fff !important} .required{background:url('../img/wrest.gif') top right no-repeat #fff !important}
select{height:35px;line-height:32px;border:1px solid #d5d5d5;} select{height:35px;line-height:32px;border:1px solid #d5d5d5;}
@@ -218,7 +218,7 @@ legend {position:absolute;width:0;height:0;font-size:0;line-height:0;text-indent
/* 외부서비스 사이트코드 */ /* 외부서비스 사이트코드 */
.sitecode {display:inline-block;font:bold 15px 'Verdana';vertical-align:middle} .sitecode {display:inline-block;font:bold 15px 'Verdana';vertical-align:middle}
.sitecode.title {width:80px}
.readonly {} .readonly {}
@@ -905,10 +905,8 @@ strong.sodr_nonpay {display:block;padding:5px 0;text-align:right}
.new_win_ul {margin:-20px 0 20px 0;padding:0 0 0 20px;border-bottom:1px solid #515151;background:#484848;list-style:none;zoom:1} .new_win_ul {margin:-20px 0 20px 0;padding:0 0 0 20px;border-bottom:1px solid #515151;background:#484848;list-style:none;zoom:1}
.new_win_ul:after {display:block;visibility:hidden;clear:both;content:""} .new_win_ul:after {display:block;visibility:hidden;clear:both;content:""}
.new_win_ul li {float:left;margin-left:-1px} .new_win_ul li {float:left;margin-left:-1px}
.new_win_ul a {display:block;padding:10px 10px 8px;border-right:1px solid #595959;border-left:1px solid #595959;color:#fff;font-family:dotum;font-weight:bold;text-decoration:none} .new_win_ul a {display:block;padding:10px 10px 8px;border-right:1px solid #595959;border-left:1px solid #595959;color:#fff;font-family:dotum;font-weight:bold;text-decoration:none}
.new_win_desc {margin:0 } .new_win_desc {margin:0 }
.new_win .anchor {margin:0 0 5px} .new_win .anchor {margin:0 0 5px}
@@ -918,12 +916,13 @@ strong.sodr_nonpay {display:block;padding:5px 0;text-align:right}
.new_win .win_btn a {display:inline-block;padding:0 10px;height:30px;background:#4b545e;color:#fff;vertical-align:middle;line-height:2.4em} .new_win .win_btn a {display:inline-block;padding:0 10px;height:30px;background:#4b545e;color:#fff;vertical-align:middle;line-height:2.4em}
.new_win .win_btn a:focus, .new_win .win_btn a:hover {text-decoration:none} .new_win .win_btn a:focus, .new_win .win_btn a:hover {text-decoration:none}
.new_win .local_sch, .new_win .local_cmd, .new_win .local_desc01, .new_win .local_desc02, .new_win .local_ov {margin:10px} .new_win .local_sch, .new_win .local_cmd, .new_win .local_desc01, .new_win .local_desc02, .new_win .local_ov {margin:10px}
.new_win_con{margin: 10px; background:#fff;padding:20px} .new_win_con{margin: 10px; background:#fff;padding:20px}
.new_win_con .table_form table th{width:120px} .new_win_con .table_form table th{width:120px}
.new_win .btn_confirm {text-align:center;}
/* 자바스크립트 alert 대안 */ /* 자바스크립트 alert 대안 */
#validation_check {margin:100px auto;width:500px} #validation_check {margin:100px auto;width:500px}
#validation_check h1 {margin-bottom:20px;font-size:1.3em} #validation_check h1 {margin-bottom:20px;font-size:1.3em}
@@ -1001,7 +1000,7 @@ box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);}
.service_wrap{ width:965px;margin:0 0 10px;overflow:hidden} .service_wrap{ width:965px;margin:0 0 10px;overflow:hidden}
.sevice_1{border:1px solid #ebe8e8;width:310px;float:left;border-radius:5px;text-align:center;margin-right:6px;} .sevice_1{border:1px solid #ebe8e8;width:310px;float:left;border-radius:5px;text-align:center;margin-right:6px;}
.sevice_1 .svc_img{padding:30px 0 0;} .sevice_1 .svc_img{padding:30px 0 0;}
.sevice_1 h3{font-size:16px;margin:185px 0 10px;color:#525252} .sevice_1 h3{font-size:16px;margin:190px 0 10px;min-height:45px;color:#525252}
.sevice_1 p{padding:20px;background:#f8f8f8;font-size:12px;text-align:left;color:#898989;line-height:18px} .sevice_1 p{padding:20px;background:#f8f8f8;font-size:12px;text-align:left;color:#898989;line-height:18px}
.sevice_1 ul {width:100%;padding:0; margin:0;border-top:1px solid #ebe8e8;} .sevice_1 ul {width:100%;padding:0; margin:0;border-top:1px solid #ebe8e8;}
.sevice_1 ul li{list-style:none;float:left;border-right:1px solid #ebe8e8;} .sevice_1 ul li{list-style:none;float:left;border-right:1px solid #ebe8e8;}
@@ -1014,7 +1013,7 @@ box-shadow: 2px 2px 3px 0px rgba(0,0,0,0.2);}
.svc_card{background:url('../img/service_img1.jpg') no-repeat top center;margin-right:13px;} .svc_card{background:url('../img/service_img1.jpg') no-repeat top center;margin-right:13px;}
.svc_card ul li{width:33%;} .svc_card ul li{width:33%;}
.svc_phone {background:url('../img/service_img2.jpg') no-repeat top center;margin-right:13px;} .svc_phone {background:url('../img/service_img2.jpg') no-repeat top center;margin-right:13px;}
.svc_phone ul li{width:33%;} .svc_phone ul li{width:50%;}
.svc_ipin {background:url('../img/service_img3.jpg') no-repeat top center;} .svc_ipin {background:url('../img/service_img3.jpg') no-repeat top center;}
.service_2{padding-top:15px;clear:both} .service_2{padding-top:15px;clear:both}
+25 -23
View File
@@ -177,31 +177,33 @@ if( !$row ) {
$is_check = true; $is_check = true;
} }
// 임시저장 테이블이 없을 경우 생성 if (defined('G5_USE_SHOP') && G5_USE_SHOP) {
if(!sql_query(" DESC {$g5['g5_shop_post_log_table']} ", false)) { // 임시저장 테이블이 없을 경우 생성
sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['g5_shop_post_log_table']}` ( if(!sql_query(" DESC {$g5['g5_shop_post_log_table']} ", false)) {
`log_id` int(11) NOT NULL AUTO_INCREMENT, sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['g5_shop_post_log_table']}` (
`oid` bigint(20) unsigned NOT NULL, `log_id` int(11) NOT NULL AUTO_INCREMENT,
`mb_id` varchar(255) NOT NULL DEFAULT '', `oid` bigint(20) unsigned NOT NULL,
`post_data` text NOT NULL, `mb_id` varchar(255) NOT NULL DEFAULT '',
`ol_code` varchar(255) NOT NULL DEFAULT '', `post_data` text NOT NULL,
`ol_msg` text NOT NULL, `ol_code` varchar(255) NOT NULL DEFAULT '',
`ol_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00', `ol_msg` text NOT NULL,
`ol_ip` varchar(25) NOT NULL DEFAULT '', `ol_datetime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
PRIMARY KEY (`log_id`) `ol_ip` varchar(25) NOT NULL DEFAULT '',
) ENGINE=MyISAM DEFAULT CHARSET=utf8; ", true); PRIMARY KEY (`log_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8; ", true);
$is_check = true;
}
$result = sql_query("describe `{$g5['g5_shop_post_log_table']}`");
while ($row = sql_fetch_array($result)){
if( $row['Field'] === 'ol_msg' && $row['Type'] === 'varchar(255)' ){
sql_query("ALTER TABLE `{$g5['g5_shop_post_log_table']}` MODIFY ol_msg TEXT NOT NULL;", false);
sql_query("ALTER TABLE `{$g5['g5_shop_post_log_table']}` DROP PRIMARY KEY;", false);
sql_query("ALTER TABLE `{$g5['g5_shop_post_log_table']}` ADD `log_id` int(11) NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (`log_id`);", false);
$is_check = true; $is_check = true;
break; }
$result = sql_query("describe `{$g5['g5_shop_post_log_table']}`");
while ($row = sql_fetch_array($result)){
if( isset($row['Field']) && $row['Field'] === 'ol_msg' && $row['Type'] === 'varchar(255)' ){
sql_query("ALTER TABLE `{$g5['g5_shop_post_log_table']}` MODIFY ol_msg TEXT NOT NULL;", false);
sql_query("ALTER TABLE `{$g5['g5_shop_post_log_table']}` DROP PRIMARY KEY;", false);
sql_query("ALTER TABLE `{$g5['g5_shop_post_log_table']}` ADD `log_id` int(11) NOT NULL AUTO_INCREMENT, ADD PRIMARY KEY (`log_id`);", false);
$is_check = true;
break;
}
} }
} }
+43 -45
View File
@@ -1,18 +1,18 @@
<?php <?php
$sub_menu = '300700'; $sub_menu = '300700';
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, "r"); auth_check_menu($auth, $sub_menu, "r");
$g5['title'] = 'FAQ 상세관리'; $g5['title'] = 'FAQ 상세관리';
if (isset($_REQUEST['fm_subject'])){ if (isset($_REQUEST['fm_subject'])) {
$fm_subject = clean_xss_tags($_REQUEST['fm_subject'], 1, 1, 255); $fm_subject = clean_xss_tags($_REQUEST['fm_subject'], 1, 1, 255);
$g5['title'] .= ' : '.$fm_subject; $g5['title'] .= ' : ' . $fm_subject;
} }
$fm_id = (int) $fm_id; $fm_id = isset($fm_id) ? (int) $fm_id : 0;
include_once (G5_ADMIN_PATH.'/admin.head.php'); require_once G5_ADMIN_PATH . '/admin.head.php';
$sql = " select * from {$g5['faq_master_table']} where fm_id = '$fm_id' "; $sql = " select * from {$g5['faq_master_table']} where fm_id = '$fm_id' ";
$fm = sql_fetch($sql); $fm = sql_fetch($sql);
@@ -29,7 +29,7 @@ $result = sql_query($sql);
?> ?>
<div class="local_ov01 local_ov"> <div class="local_ov01 local_ov">
<span class="btn_ov01"><span class="ov_txt"> 등록된 FAQ 상세내용</span><span class="ov_num"> <?php echo $total_count; ?>건</span></span> <span class="btn_ov01"><span class="ov_txt"> 등록된 FAQ 상세내용</span><span class="ov_num"> <?php echo $total_count; ?>건</span></span>
</div> </div>
<div class="local_desc01 local_desc"> <div class="local_desc01 local_desc">
@@ -46,54 +46,52 @@ $result = sql_query($sql);
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col">번호</th> <th scope="col">번호</th>
<th scope="col">제목</th> <th scope="col">제목</th>
<th scope="col">순서</th> <th scope="col">순서</th>
<th scope="col">관리</th> <th scope="col">관리</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) for ($i = 0; $row = sql_fetch_array($result); $i++) {
{ $row1 = sql_fetch(" select COUNT(*) as cnt from {$g5['faq_table']} where fm_id = '{$row['fm_id']}' ");
$row1 = sql_fetch(" select COUNT(*) as cnt from {$g5['faq_table']} where fm_id = '{$row['fm_id']}' "); $cnt = $row1['cnt'];
$cnt = $row1['cnt'];
$s_mod = icon("수정", ""); $s_mod = icon("수정", "");
$s_del = icon("삭제", ""); $s_del = icon("삭제", "");
$num = $i + 1; $num = $i + 1;
$bg = 'bg'.($i%2); $bg = 'bg' . ($i % 2);
$fa_subject = conv_content($row['fa_subject'], 1); $fa_subject = conv_content($row['fa_subject'], 1);
?> ?>
<tr class="<?php echo $bg; ?>"> <tr class="<?php echo $bg; ?>">
<td class="td_num"><?php echo $num; ?></td> <td class="td_num"><?php echo $num; ?></td>
<td class="td_left"><?php echo $fa_subject; ?></td> <td class="td_left"><?php echo $fa_subject; ?></td>
<td class="td_num"><?php echo $row['fa_order']; ?></td> <td class="td_num"><?php echo $row['fa_order']; ?></td>
<td class="td_mng td_mng_m"> <td class="td_mng td_mng_m">
<a href="./faqform.php?w=u&amp;fm_id=<?php echo $row['fm_id']; ?>&amp;fa_id=<?php echo $row['fa_id']; ?>" class="btn btn_03"><span class="sound_only"><?php echo $fa_subject; ?> </span>수정</a> <a href="./faqform.php?w=u&amp;fm_id=<?php echo $row['fm_id']; ?>&amp;fa_id=<?php echo $row['fa_id']; ?>" class="btn btn_03"><span class="sound_only"><?php echo $fa_subject; ?> </span>수정</a>
<a href="./faqformupdate.php?w=d&amp;fm_id=<?php echo $row['fm_id']; ?>&amp;fa_id=<?php echo $row['fa_id']; ?>" onclick="return delete_confirm(this);" class="btn btn_02"><span class="sound_only"><?php echo $fa_subject; ?> </span>삭제</a> <a href="./faqformupdate.php?w=d&amp;fm_id=<?php echo $row['fm_id']; ?>&amp;fa_id=<?php echo $row['fa_id']; ?>" onclick="return delete_confirm(this);" class="btn btn_02"><span class="sound_only"><?php echo $fa_subject; ?> </span>삭제</a>
</td> </td>
</tr> </tr>
<?php
}
<?php if ($i == 0) {
} echo '<tr><td colspan="4" class="empty_table">자료가 없습니다.</td></tr>';
}
if ($i == 0) { ?>
echo '<tr><td colspan="4" class="empty_table">자료가 없습니다.</td></tr>'; </tbody>
}
?>
</tbody>
</table> </table>
</div> </div>
<?php <?php
include_once (G5_ADMIN_PATH.'/admin.tail.php'); require_once G5_ADMIN_PATH . '/admin.tail.php';
+140 -132
View File
@@ -1,167 +1,175 @@
<?php <?php
$sub_menu = '300700'; $sub_menu = '300700';
include_once('./_common.php'); require_once './_common.php';
include_once(G5_EDITOR_LIB); require_once G5_EDITOR_LIB;
auth_check_menu($auth, $sub_menu, "w"); auth_check_menu($auth, $sub_menu, "w");
$html_title = 'FAQ'; $html_title = 'FAQ';
$fm_id = isset($_GET['fm_id']) ? preg_replace('/[^0-9]/', '', $_GET['fm_id']) : 0; $fm_id = isset($_GET['fm_id']) ? strval(preg_replace('/[^0-9]/', '', $_GET['fm_id'])) : 0;
if ($w == "u") if ($w == "u") {
{
$html_title .= ' 수정'; $html_title .= ' 수정';
$readonly = ' readonly'; $readonly = ' readonly';
$sql = " select * from {$g5['faq_master_table']} where fm_id = '$fm_id' "; $sql = " select * from {$g5['faq_master_table']} where fm_id = '$fm_id' ";
$fm = sql_fetch($sql); $fm = sql_fetch($sql);
if (!$fm['fm_id']) alert('등록된 자료가 없습니다.'); if (!$fm['fm_id']) {
} alert('등록된 자료가 없습니다.');
else }
{ } else {
$html_title .= ' 입력'; $html_title .= ' 입력';
$fm = array('fm_order'=>'', 'fm_subject'=>'', 'fm_id'=>0, 'fm_head_html'=> '', 'fm_tail_html'=> '', 'fm_mobile_head_html' => '', 'fm_mobile_tail_html' => ''); $fm = array('fm_order' => '', 'fm_subject' => '', 'fm_id' => 0, 'fm_head_html' => '', 'fm_tail_html' => '', 'fm_mobile_head_html' => '', 'fm_mobile_tail_html' => '');
} }
$g5['title'] = $html_title.' 관리'; $g5['title'] = $html_title . ' 관리';
// 모바일 상하단 내용 필드추가 // 모바일 상하단 내용 필드추가
if(!sql_query(" select fm_mobile_head_html from {$g5['faq_master_table']} limit 1 ", false)) { if (!sql_query(" select fm_mobile_head_html from {$g5['faq_master_table']} limit 1 ", false)) {
sql_query(" ALTER TABLE `{$g5['faq_master_table']}` sql_query(
" ALTER TABLE `{$g5['faq_master_table']}`
ADD `fm_mobile_head_html` text NOT NULL AFTER `fm_tail_html`, ADD `fm_mobile_head_html` text NOT NULL AFTER `fm_tail_html`,
ADD `fm_mobile_tail_html` text NOT NULL AFTER `fm_mobile_head_html` ", true); ADD `fm_mobile_tail_html` text NOT NULL AFTER `fm_mobile_head_html` ",
true
);
} }
include_once (G5_ADMIN_PATH.'/admin.head.php'); require_once G5_ADMIN_PATH . '/admin.head.php';
?> ?>
<form name="frmfaqmasterform" action="./faqmasterformupdate.php" onsubmit="return frmfaqmasterform_check(this);" method="post" enctype="MULTIPART/FORM-DATA"> <form name="frmfaqmasterform" action="./faqmasterformupdate.php" onsubmit="return frmfaqmasterform_check(this);" method="post" enctype="MULTIPART/FORM-DATA">
<input type="hidden" name="w" value="<?php echo $w; ?>"> <input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="fm_id" value="<?php echo $fm_id; ?>"> <input type="hidden" name="fm_id" value="<?php echo $fm_id; ?>">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?></caption> <caption><?php echo $g5['title']; ?></caption>
<colgroup> <colgroup>
<col class="grid_4"> <col class="grid_4">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="fm_order">출력순서</label></th> <th scope="row"><label for="fm_order">출력순서</label></th>
<td> <td>
<?php echo help('숫자가 작을수록 FAQ 분류에서 먼저 출력됩니다.'); ?> <?php echo help('숫자가 작을수록 FAQ 분류에서 먼저 출력됩니다.'); ?>
<input type="text" name="fm_order" value="<?php echo $fm['fm_order']; ?>" id="fm_order" class="frm_input" maxlength="10" size="10"> <input type="text" name="fm_order" value="<?php echo $fm['fm_order']; ?>" id="fm_order" class="frm_input" maxlength="10" size="10">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="fm_subject">제목</label></th> <th scope="row"><label for="fm_subject">제목</label></th>
<td> <td>
<input type="text" value="<?php echo get_text($fm['fm_subject']); ?>" name="fm_subject" id="fm_subject" required class="frm_input required" size="70"> <input type="text" value="<?php echo get_text($fm['fm_subject']); ?>" name="fm_subject" id="fm_subject" required class="frm_input required" size="70">
<?php if ($w == 'u') { ?> <?php if ($w == 'u') { ?>
<a href="<?php echo G5_BBS_URL; ?>/faq.php?fm_id=<?php echo $fm_id; ?>" class="btn_frmline">보기</a> <a href="<?php echo G5_BBS_URL; ?>/faq.php?fm_id=<?php echo $fm_id; ?>" class="btn_frmline">보기</a>
<a href="./faqlist.php?fm_id=<?php echo $fm_id; ?>" class="btn_frmline">상세보기</a> <a href="./faqlist.php?fm_id=<?php echo $fm_id; ?>" class="btn_frmline">상세보기</a>
<?php } ?> <?php } ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="fm_himg">상단이미지</label></th> <th scope="row"><label for="fm_himg">상단이미지</label></th>
<td> <td>
<input type="file" name="fm_himg" id="fm_himg"> <input type="file" name="fm_himg" id="fm_himg">
<?php <?php
$himg = G5_DATA_PATH.'/faq/'.$fm['fm_id'].'_h'; $himg = G5_DATA_PATH . '/faq/' . $fm['fm_id'] . '_h';
$himg_str = ''; $himg_str = '';
if (file_exists($himg)) { $width = 0;
$size = @getimagesize($himg); if (file_exists($himg)) {
if($size[0] && $size[0] > 750) $size = @getimagesize($himg);
$width = 750; if ($size) {
else if ($size[0] && $size[0] > 750) {
$width = $size[0]; $width = 750;
} else {
$width = $size[0];
}
}
echo '<input type="checkbox" name="fm_himg_del" value="1" id="fm_himg_del"> <label for="fm_himg_del">삭제</label>';
$himg_str = '<img src="' . G5_DATA_URL . '/faq/' . $fm['fm_id'] . '_h" width="' . $width . '" alt="">';
}
if ($himg_str) {
echo '<div class="banner_or_img">';
echo $himg_str;
echo '</div>';
}
?>
</td>
</tr>
<tr>
<th scope="row"><label for="fm_timg">하단이미지</label></th>
<td>
<input type="file" name="fm_timg" id="fm_timg">
<?php
$timg = G5_DATA_PATH . '/faq/' . $fm['fm_id'] . '_t';
$timg_str = '';
$width = 0;
if (file_exists($timg)) {
$size = @getimagesize($timg);
if ($size) {
if ($size[0] && $size[0] > 750) {
$width = 750;
} else {
$width = $size[0];
}
}
echo '<input type="checkbox" name="fm_himg_del" value="1" id="fm_himg_del"> <label for="fm_himg_del">삭제</label>'; echo '<input type="checkbox" name="fm_timg_del" value="1" id="fm_timg_del"><label for="fm_timg_del">삭제</label>';
$himg_str = '<img src="'.G5_DATA_URL.'/faq/'.$fm['fm_id'].'_h" width="'.$width.'" alt="">'; $timg_str = '<img src="' . G5_DATA_URL . '/faq/' . $fm['fm_id'] . '_t" width="' . $width . '" alt="">';
} }
if ($himg_str) { if ($timg_str) {
echo '<div class="banner_or_img">'; echo '<div class="banner_or_img">';
echo $himg_str; echo $timg_str;
echo '</div>'; echo '</div>';
} }
?> ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="fm_timg">하단이미지</label></th> <th scope="row">상단 내용</th>
<td> <td>
<input type="file" name="fm_timg" id="fm_timg"> <?php echo editor_html('fm_head_html', get_text(html_purifier($fm['fm_head_html']), 0)); ?>
<?php </td>
$timg = G5_DATA_PATH.'/faq/'.$fm['fm_id'].'_t'; </tr>
$timg_str = ''; <tr>
if (file_exists($timg)) { <th scope="row">하단 내용</th>
$size = @getimagesize($timg); <td>
if($size[0] && $size[0] > 750) <?php echo editor_html('fm_tail_html', get_text(html_purifier($fm['fm_tail_html']), 0)); ?>
$width = 750; </td>
else </tr>
$width = $size[0]; <tr>
<th scope="row">모바일상단 내용</th>
<td>
<?php echo editor_html('fm_mobile_head_html', get_text(html_purifier($fm['fm_mobile_head_html']), 0)); ?>
</td>
</tr>
<tr>
<th scope="row">모바일하단 내용</th>
<td>
<?php echo editor_html('fm_mobile_tail_html', get_text(html_purifier($fm['fm_mobile_tail_html']), 0)); ?>
</td>
</tr>
</tbody>
</table>
</div>
echo '<input type="checkbox" name="fm_timg_del" value="1" id="fm_timg_del"><label for="fm_timg_del">삭제</label>'; <div class="btn_fixed_top">
$timg_str = '<img src="'.G5_DATA_URL.'/faq/'.$fm['fm_id'].'_t" width="'.$width.'" alt="">'; <a href="./faqmasterlist.php" class="btn btn_02">목록</a>
} <input type="submit" value="확인" class="btn_submit btn" accesskey="s">
if ($timg_str) { </div>
echo '<div class="banner_or_img">';
echo $timg_str;
echo '</div>';
}
?>
</td>
</tr>
<tr>
<th scope="row">상단 내용</th>
<td>
<?php echo editor_html('fm_head_html', get_text(html_purifier($fm['fm_head_html']), 0)); ?>
</td>
</tr>
<tr>
<th scope="row">하단 내용</th>
<td>
<?php echo editor_html('fm_tail_html', get_text(html_purifier($fm['fm_tail_html']), 0)); ?>
</td>
</tr>
<tr>
<th scope="row">모바일상단 내용</th>
<td>
<?php echo editor_html('fm_mobile_head_html', get_text(html_purifier($fm['fm_mobile_head_html']), 0)); ?>
</td>
</tr>
<tr>
<th scope="row">모바일하단 내용</th>
<td>
<?php echo editor_html('fm_mobile_tail_html', get_text(html_purifier($fm['fm_mobile_tail_html']), 0)); ?>
</td>
</tr>
</tbody>
</table>
</div>
<div class="btn_fixed_top">
<a href="./faqmasterlist.php" class="btn btn_02">목록</a>
<input type="submit" value="확인" class="btn_submit btn" accesskey="s">
</div>
</form> </form>
<script> <script>
function frmfaqmasterform_check(f) function frmfaqmasterform_check(f) {
{ <?php echo get_editor_js('fm_head_html'); ?>
<?php echo get_editor_js('fm_head_html'); ?> <?php echo get_editor_js('fm_tail_html'); ?>
<?php echo get_editor_js('fm_tail_html'); ?> <?php echo get_editor_js('fm_mobile_head_html'); ?>
<?php echo get_editor_js('fm_mobile_head_html'); ?> <?php echo get_editor_js('fm_mobile_tail_html'); ?>
<?php echo get_editor_js('fm_mobile_tail_html'); ?> }
}
// document.frmfaqmasterform.fm_subject.focus(); // document.frmfaqmasterform.fm_subject.focus();
</script> </script>
<?php <?php
include_once (G5_ADMIN_PATH.'/admin.tail.php'); require_once G5_ADMIN_PATH . '/admin.tail.php';
+28 -28
View File
@@ -1,19 +1,21 @@
<?php <?php
$sub_menu = '300700'; $sub_menu = '300700';
include_once('./_common.php'); require_once './_common.php';
if ($w == "u" || $w == "d") if ($w == "u" || $w == "d") {
check_demo(); check_demo();
}
if ($w == 'd') if ($w == 'd') {
auth_check_menu($auth, $sub_menu, "d"); auth_check_menu($auth, $sub_menu, "d");
else } else {
auth_check_menu($auth, $sub_menu, "w"); auth_check_menu($auth, $sub_menu, "w");
}
check_admin_token(); check_admin_token();
@mkdir(G5_DATA_PATH."/faq", G5_DIR_PERMISSION); @mkdir(G5_DATA_PATH . "/faq", G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH."/faq", G5_DIR_PERMISSION); @chmod(G5_DATA_PATH . "/faq", G5_DIR_PERMISSION);
$fm_id = isset($_REQUEST['fm_id']) ? (int) $_REQUEST['fm_id'] : 0; $fm_id = isset($_REQUEST['fm_id']) ? (int) $_REQUEST['fm_id'] : 0;
$fm_himg_del = isset($_POST['fm_himg_del']) ? (int) $_POST['fm_himg_del'] : 0; $fm_himg_del = isset($_POST['fm_himg_del']) ? (int) $_POST['fm_himg_del'] : 0;
@@ -25,8 +27,12 @@ $fm_mobile_head_html = isset($_POST['fm_mobile_head_html']) ? $_POST['fm_mobile_
$fm_mobile_tail_html = isset($_POST['fm_mobile_tail_html']) ? $_POST['fm_mobile_tail_html'] : ''; $fm_mobile_tail_html = isset($_POST['fm_mobile_tail_html']) ? $_POST['fm_mobile_tail_html'] : '';
$fm_order = isset($_POST['fm_order']) ? (int) $_POST['fm_order'] : 0; $fm_order = isset($_POST['fm_order']) ? (int) $_POST['fm_order'] : 0;
if ($fm_himg_del) @unlink(G5_DATA_PATH."/faq/{$fm_id}_h"); if ($fm_himg_del) {
if ($fm_timg_del) @unlink(G5_DATA_PATH."/faq/{$fm_id}_t"); @unlink(G5_DATA_PATH . "/faq/{$fm_id}_h");
}
if ($fm_timg_del) {
@unlink(G5_DATA_PATH . "/faq/{$fm_id}_t");
}
$sql_common = " set fm_subject = '$fm_subject', $sql_common = " set fm_subject = '$fm_subject',
fm_head_html = '$fm_head_html', fm_head_html = '$fm_head_html',
@@ -35,8 +41,7 @@ $sql_common = " set fm_subject = '$fm_subject',
fm_mobile_tail_html = '$fm_mobile_tail_html', fm_mobile_tail_html = '$fm_mobile_tail_html',
fm_order = '$fm_order' "; fm_order = '$fm_order' ";
if ($w == "") if ($w == "") {
{
$sql = " alter table {$g5['faq_master_table']} auto_increment=1 "; $sql = " alter table {$g5['faq_master_table']} auto_increment=1 ";
sql_query($sql); sql_query($sql);
@@ -44,40 +49,35 @@ if ($w == "")
sql_query($sql); sql_query($sql);
$fm_id = sql_insert_id(); $fm_id = sql_insert_id();
} } elseif ($w == "u") {
else if ($w == "u")
{
$sql = " update {$g5['faq_master_table']} $sql_common where fm_id = '$fm_id' "; $sql = " update {$g5['faq_master_table']} $sql_common where fm_id = '$fm_id' ";
sql_query($sql); sql_query($sql);
} } elseif ($w == "d") {
else if ($w == "d") @unlink(G5_DATA_PATH . "/faq/{$fm_id}_h");
{ @unlink(G5_DATA_PATH . "/faq/{$fm_id}_t");
@unlink(G5_DATA_PATH."/faq/{$fm_id}_h");
@unlink(G5_DATA_PATH."/faq/{$fm_id}_t");
// FAQ삭제 // FAQ삭제
$sql = " delete from {$g5['faq_master_table']} where fm_id = '$fm_id' "; $sql = " delete from {$g5['faq_master_table']} where fm_id = '$fm_id' ";
sql_query($sql); sql_query($sql);
// FAQ상세삭제 // FAQ상세삭제
$sql = " delete from {$g5['faq_table']} where fm_id = '$fm_id' "; $sql = " delete from {$g5['faq_table']} where fm_id = '$fm_id' ";
sql_query($sql); sql_query($sql);
} }
if ($w == "" || $w == "u") if ($w == "" || $w == "u") {
{ if ($_FILES['fm_himg']['name']) {
if ($_FILES['fm_himg']['name']){ $dest_path = G5_DATA_PATH . "/faq/" . $fm_id . "_h";
$dest_path = G5_DATA_PATH."/faq/".$fm_id."_h";
@move_uploaded_file($_FILES['fm_himg']['tmp_name'], $dest_path); @move_uploaded_file($_FILES['fm_himg']['tmp_name'], $dest_path);
@chmod($dest_path, G5_FILE_PERMISSION); @chmod($dest_path, G5_FILE_PERMISSION);
} }
if ($_FILES['fm_timg']['name']){ if ($_FILES['fm_timg']['name']) {
$dest_path = G5_DATA_PATH."/faq/".$fm_id."_t"; $dest_path = G5_DATA_PATH . "/faq/" . $fm_id . "_t";
@move_uploaded_file($_FILES['fm_timg']['tmp_name'], $dest_path); @move_uploaded_file($_FILES['fm_timg']['tmp_name'], $dest_path);
@chmod($dest_path, G5_FILE_PERMISSION); @chmod($dest_path, G5_FILE_PERMISSION);
} }
goto_url("./faqmasterform.php?w=u&amp;fm_id=$fm_id"); goto_url("./faqmasterform.php?w=u&amp;fm_id=$fm_id");
} } else {
else
goto_url("./faqmasterlist.php"); goto_url("./faqmasterlist.php");
}
+59 -49
View File
@@ -1,38 +1,42 @@
<?php <?php
$sub_menu = '300700'; $sub_menu = '300700';
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, "r"); auth_check_menu($auth, $sub_menu, "r");
//dbconfig파일에 $g5['faq_table'] , $g5['faq_master_table'] 배열변수가 있는지 체크 //dbconfig파일에 $g5['faq_table'] , $g5['faq_master_table'] 배열변수가 있는지 체크
if( !isset($g5['faq_table']) || !isset($g5['faq_master_table']) ){ if (!isset($g5['faq_table']) || !isset($g5['faq_master_table'])) {
die('<meta charset="utf-8">/data/dbconfig.php 파일에 <br ><strong>$g5[\'faq_table\'] = G5_TABLE_PREFIX.\'faq\';</strong><br ><strong>$g5[\'faq_master_table\'] = G5_TABLE_PREFIX.\'faq_master\';</strong><br > 를 추가해 주세요.'); die('<meta charset="utf-8">/data/dbconfig.php 파일에 <br ><strong>$g5[\'faq_table\'] = G5_TABLE_PREFIX.\'faq\';</strong><br ><strong>$g5[\'faq_master_table\'] = G5_TABLE_PREFIX.\'faq_master\';</strong><br > 를 추가해 주세요.');
} }
//자주하시는 질문 마스터 테이블이 있는지 검사한다. //자주하시는 질문 마스터 테이블이 있는지 검사한다.
if(!sql_query(" DESCRIBE {$g5['faq_master_table']} ", false)) { if (!sql_query(" DESCRIBE {$g5['faq_master_table']} ", false)) {
if(sql_query(" DESCRIBE {$g5['g5_shop_faq_master_table']} ", false)) { if (sql_query(" DESCRIBE {$g5['g5_shop_faq_master_table']} ", false)) {
sql_query(" ALTER TABLE {$g5['g5_shop_faq_master_table']} RENAME TO `{$g5['faq_master_table']}` ;", false); sql_query(" ALTER TABLE {$g5['g5_shop_faq_master_table']} RENAME TO `{$g5['faq_master_table']}` ;", false);
} else { } else {
$query_cp = sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['faq_master_table']}` ( $query_cp = sql_query(
" CREATE TABLE IF NOT EXISTS `{$g5['faq_master_table']}` (
`fm_id` int(11) NOT NULL AUTO_INCREMENT, `fm_id` int(11) NOT NULL AUTO_INCREMENT,
`fm_subject` varchar(255) NOT NULL DEFAULT '', `fm_subject` varchar(255) NOT NULL DEFAULT '',
`fm_head_html` text NOT NULL, `fm_head_html` text NOT NULL,
`fm_tail_html` text NOT NULL, `fm_tail_html` text NOT NULL,
`fm_order` int(11) NOT NULL DEFAULT '0', `fm_order` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`fm_id`) PRIMARY KEY (`fm_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ", true); ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ",
true
);
} }
// FAQ Master // FAQ Master
sql_query(" insert into `{$g5['faq_master_table']}` set fm_id = '1', fm_subject = '자주하시는 질문' ", false); sql_query(" insert into `{$g5['faq_master_table']}` set fm_id = '1', fm_subject = '자주하시는 질문' ", false);
} }
//자주하시는 질문 테이블이 있는지 검사한다. //자주하시는 질문 테이블이 있는지 검사한다.
if(!sql_query(" DESCRIBE {$g5['faq_table']} ", false)) { if (!sql_query(" DESCRIBE {$g5['faq_table']} ", false)) {
if(sql_query(" DESCRIBE {$g5['g5_shop_faq_table']} ", false)) { if (sql_query(" DESCRIBE {$g5['g5_shop_faq_table']} ", false)) {
sql_query(" ALTER TABLE {$g5['g5_shop_faq_table']} RENAME TO `{$g5['faq_table']}` ;", false); sql_query(" ALTER TABLE {$g5['g5_shop_faq_table']} RENAME TO `{$g5['faq_table']}` ;", false);
} else { } else {
$query_cp = sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['faq_table']}` ( $query_cp = sql_query(
" CREATE TABLE IF NOT EXISTS `{$g5['faq_table']}` (
`fa_id` int(11) NOT NULL AUTO_INCREMENT, `fa_id` int(11) NOT NULL AUTO_INCREMENT,
`fm_id` int(11) NOT NULL DEFAULT '0', `fm_id` int(11) NOT NULL DEFAULT '0',
`fa_subject` text NOT NULL, `fa_subject` text NOT NULL,
@@ -40,12 +44,14 @@ if(!sql_query(" DESCRIBE {$g5['faq_table']} ", false)) {
`fa_order` int(11) NOT NULL DEFAULT '0', `fa_order` int(11) NOT NULL DEFAULT '0',
PRIMARY KEY (`fa_id`), PRIMARY KEY (`fa_id`),
KEY `fm_id` (`fm_id`) KEY `fm_id` (`fm_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ", true); ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ",
true
);
} }
} }
$g5['title'] = 'FAQ관리'; $g5['title'] = 'FAQ관리';
include_once (G5_ADMIN_PATH.'/admin.head.php'); require_once G5_ADMIN_PATH . '/admin.head.php';
$sql_common = " from {$g5['faq_master_table']} "; $sql_common = " from {$g5['faq_master_table']} ";
@@ -56,7 +62,9 @@ $total_count = $row['cnt'];
$rows = $config['cf_page_rows']; $rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산 $total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지) if ($page < 1) {
$page = 1;
} // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함 $from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = "select * $sql_common order by fm_order, fm_id limit $from_record, {$config['cf_page_rows']} "; $sql = "select * $sql_common order by fm_order, fm_id limit $from_record, {$config['cf_page_rows']} ";
@@ -64,7 +72,9 @@ $result = sql_query($sql);
?> ?>
<div class="local_ov01 local_ov"> <div class="local_ov01 local_ov">
<?php if ($page > 1) {?><a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>">처음으로</a><?php } ?> <?php if ($page > 1) { ?>
<a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>">처음으로</a>
<?php } ?>
<span class="btn_ov01"><span class="ov_txt"> 전체 FAQ </span><span class="ov_num"> <?php echo $total_count; ?>건</span></span> <span class="btn_ov01"><span class="ov_txt"> 전체 FAQ </span><span class="ov_num"> <?php echo $total_count; ?>건</span></span>
</div> </div>
@@ -82,46 +92,46 @@ $result = sql_query($sql);
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col">ID</th> <th scope="col">ID</th>
<th scope="col">제목</th> <th scope="col">제목</th>
<th scope="col">FAQ수</th> <th scope="col">FAQ수</th>
<th scope="col">순서</th> <th scope="col">순서</th>
<th scope="col">관리</th> <th scope="col">관리</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php for ($i=0; $row=sql_fetch_array($result); $i++) { <?php for ($i = 0; $row = sql_fetch_array($result); $i++) {
$sql1 = " select COUNT(*) as cnt from {$g5['faq_table']} where fm_id = '{$row['fm_id']}' "; $sql1 = " select COUNT(*) as cnt from {$g5['faq_table']} where fm_id = '{$row['fm_id']}' ";
$row1 = sql_fetch($sql1); $row1 = sql_fetch($sql1);
$cnt = $row1['cnt']; $cnt = $row1['cnt'];
$bg = 'bg'.($i%2); $bg = 'bg' . ($i % 2);
?> ?>
<tr class="<?php echo $bg; ?>"> <tr class="<?php echo $bg; ?>">
<td class="td_num"><?php echo $row['fm_id']; ?></td> <td class="td_num"><?php echo $row['fm_id']; ?></td>
<td class="td_left"><a href="./faqlist.php?fm_id=<?php echo $row['fm_id']; ?>&amp;fm_subject=<?php echo $row['fm_subject']; ?>"><?php echo stripslashes($row['fm_subject']); ?></a></td> <td class="td_left"><a href="./faqlist.php?fm_id=<?php echo $row['fm_id']; ?>&amp;fm_subject=<?php echo $row['fm_subject']; ?>"><?php echo stripslashes($row['fm_subject']); ?></a></td>
<td class="td_num"><?php echo $cnt; ?></td> <td class="td_num"><?php echo $cnt; ?></td>
<td class="td_num"><?php echo $row['fm_order']?></td> <td class="td_num"><?php echo $row['fm_order'] ?></td>
<td class="td_mng td_mng_l"> <td class="td_mng td_mng_l">
<a href="./faqmasterform.php?w=u&amp;fm_id=<?php echo $row['fm_id']; ?>" class="btn btn_03"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>수정</a> <a href="./faqmasterform.php?w=u&amp;fm_id=<?php echo $row['fm_id']; ?>" class="btn btn_03"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>수정</a>
<a href="<?php echo G5_BBS_URL; ?>/faq.php?fm_id=<?php echo $row['fm_id']; ?>" class="btn btn_02"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>보기</a> <a href="<?php echo G5_BBS_URL; ?>/faq.php?fm_id=<?php echo $row['fm_id']; ?>" class="btn btn_02"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>보기</a>
<a href="./faqmasterformupdate.php?w=d&amp;fm_id=<?php echo $row['fm_id']; ?>" onclick="return delete_confirm(this);" class="btn btn_02"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>삭제</a> <a href="./faqmasterformupdate.php?w=d&amp;fm_id=<?php echo $row['fm_id']; ?>" onclick="return delete_confirm(this);" class="btn btn_02"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>삭제</a>
</td> </td>
</tr> </tr>
<?php <?php
} }
if ($i == 0){ if ($i == 0) {
echo '<tr><td colspan="5" class="empty_table"><span>자료가 한건도 없습니다.</span></td></tr>'; echo '<tr><td colspan="5" class="empty_table"><span>자료가 한건도 없습니다.</span></td></tr>';
} }
?> ?>
</tbody> </tbody>
</table> </table>
</div> </div>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?> <?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?>
<?php <?php
include_once (G5_ADMIN_PATH.'/admin.tail.php'); require_once G5_ADMIN_PATH . '/admin.tail.php';
+179 -174
View File
@@ -1,14 +1,14 @@
<?php <?php
$sub_menu = '100000'; $sub_menu = '100000';
include_once('./_common.php'); require_once './_common.php';
@include_once('./safe_check.php'); @require_once './safe_check.php';
if(function_exists('social_log_file_delete')){ if (function_exists('social_log_file_delete')) {
social_log_file_delete(86400); //소셜로그인 디버그 파일 24시간 지난것은 삭제 social_log_file_delete(86400); //소셜로그인 디버그 파일 24시간 지난것은 삭제
} }
$g5['title'] = '관리자메인'; $g5['title'] = '관리자메인';
include_once ('./admin.head.php'); require_once './admin.head.php';
$new_member_rows = 5; $new_member_rows = 5;
$new_point_rows = 5; $new_point_rows = 5;
@@ -18,8 +18,9 @@ $sql_common = " from {$g5['member_table']} ";
$sql_search = " where (1) "; $sql_search = " where (1) ";
if ($is_admin != 'super') if ($is_admin != 'super') {
$sql_search .= " and mb_level <= '{$member['mb_level']}' "; $sql_search .= " and mb_level <= '{$member['mb_level']}' ";
}
if (!$sst) { if (!$sst) {
$sst = "mb_datetime"; $sst = "mb_datetime";
@@ -56,69 +57,69 @@ $colspan = 12;
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption>신규가입회원</caption> <caption>신규가입회원</caption>
<thead> <thead>
<tr> <tr>
<th scope="col">회원아이디</th> <th scope="col">회원아이디</th>
<th scope="col">이름</th> <th scope="col">이름</th>
<th scope="col">닉네임</th> <th scope="col">닉네임</th>
<th scope="col">권한</th> <th scope="col">권한</th>
<th scope="col">포인트</th> <th scope="col">포인트</th>
<th scope="col">수신</th> <th scope="col">수신</th>
<th scope="col">공개</th> <th scope="col">공개</th>
<th scope="col">인증</th> <th scope="col">인증</th>
<th scope="col">차단</th> <th scope="col">차단</th>
<th scope="col">그룹</th> <th scope="col">그룹</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) for ($i = 0; $row = sql_fetch_array($result); $i++) {
{ // 접근가능한 그룹수
// 접근가능한 그룹수 $sql2 = " select count(*) as cnt from {$g5['group_member_table']} where mb_id = '{$row['mb_id']}' ";
$sql2 = " select count(*) as cnt from {$g5['group_member_table']} where mb_id = '{$row['mb_id']}' "; $row2 = sql_fetch($sql2);
$row2 = sql_fetch($sql2); $group = "";
$group = ""; if ($row2['cnt']) {
if ($row2['cnt']) $group = '<a href="./boardgroupmember_form.php?mb_id=' . $row['mb_id'] . '">' . $row2['cnt'] . '</a>';
$group = '<a href="./boardgroupmember_form.php?mb_id='.$row['mb_id'].'">'.$row2['cnt'].'</a>'; }
if ($is_admin == 'group') if ($is_admin == 'group') {
{ $s_mod = '';
$s_mod = ''; $s_del = '';
$s_del = ''; } else {
} $s_mod = '<a href="./member_form.php?$qstr&amp;w=u&amp;mb_id=' . $row['mb_id'] . '">수정</a>';
else $s_del = '<a href="./member_delete.php?' . $qstr . '&amp;w=d&amp;mb_id=' . $row['mb_id'] . '&amp;url=' . $_SERVER['SCRIPT_NAME'] . '" onclick="return delete_confirm(this);">삭제</a>';
{ }
$s_mod = '<a href="./member_form.php?$qstr&amp;w=u&amp;mb_id='.$row['mb_id'].'">수정</a>'; $s_grp = '<a href="./boardgroupmember_form.php?mb_id=' . $row['mb_id'] . '">그룹</a>';
$s_del = '<a href="./member_delete.php?'.$qstr.'&amp;w=d&amp;mb_id='.$row['mb_id'].'&amp;url='.$_SERVER['SCRIPT_NAME'].'" onclick="return delete_confirm(this);">삭제</a>';
}
$s_grp = '<a href="./boardgroupmember_form.php?mb_id='.$row['mb_id'].'">그룹</a>';
$leave_date = $row['mb_leave_date'] ? $row['mb_leave_date'] : date("Ymd", G5_SERVER_TIME); $leave_date = $row['mb_leave_date'] ? $row['mb_leave_date'] : date("Ymd", G5_SERVER_TIME);
$intercept_date = $row['mb_intercept_date'] ? $row['mb_intercept_date'] : date("Ymd", G5_SERVER_TIME); $intercept_date = $row['mb_intercept_date'] ? $row['mb_intercept_date'] : date("Ymd", G5_SERVER_TIME);
$mb_nick = get_sideview($row['mb_id'], get_text($row['mb_nick']), $row['mb_email'], $row['mb_homepage']); $mb_nick = get_sideview($row['mb_id'], get_text($row['mb_nick']), $row['mb_email'], $row['mb_homepage']);
$mb_id = $row['mb_id']; $mb_id = $row['mb_id'];
?> ?>
<tr> <tr>
<td class="td_mbid"><?php echo $mb_id ?></td> <td class="td_mbid"><?php echo $mb_id ?></td>
<td class="td_mbname"><?php echo get_text($row['mb_name']); ?></td> <td class="td_mbname"><?php echo get_text($row['mb_name']); ?></td>
<td class="td_mbname sv_use"><div><?php echo $mb_nick ?></div></td> <td class="td_mbname sv_use">
<td class="td_num"><?php echo $row['mb_level'] ?></td> <div><?php echo $mb_nick ?></div>
<td><a href="./point_list.php?sfl=mb_id&amp;stx=<?php echo $row['mb_id'] ?>"><?php echo number_format($row['mb_point']) ?></a></td> </td>
<td class="td_boolean"><?php echo $row['mb_mailling']?'예':'아니오'; ?></td> <td class="td_num"><?php echo $row['mb_level'] ?></td>
<td class="td_boolean"><?php echo $row['mb_open']?'예':'아니오'; ?></td> <td><a href="./point_list.php?sfl=mb_id&amp;stx=<?php echo $row['mb_id'] ?>"><?php echo number_format($row['mb_point']) ?></a></td>
<td class="td_boolean"><?php echo preg_match('/[1-9]/', $row['mb_email_certify'])?'예':'아니오'; ?></td> <td class="td_boolean"><?php echo $row['mb_mailling'] ? '예' : '아니오'; ?></td>
<td class="td_boolean"><?php echo $row['mb_intercept_date']?'예':'아니오'; ?></td> <td class="td_boolean"><?php echo $row['mb_open'] ? '예' : '아니오'; ?></td>
<td class="td_category"><?php echo $group ?></td> <td class="td_boolean"><?php echo preg_match('/[1-9]/', $row['mb_email_certify']) ? '예' : '아니오'; ?></td>
</tr> <td class="td_boolean"><?php echo $row['mb_intercept_date'] ? '예' : '아니오'; ?></td>
<?php <td class="td_category"><?php echo $group ?></td>
} </tr>
if ($i == 0) <?php
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>'; }
?> if ($i == 0) {
</tbody> echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</tbody>
</table> </table>
</div> </div>
@@ -131,13 +132,15 @@ $colspan = 12;
<?php <?php
$sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id "; $sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id ";
if ($gr_id) if ($gr_id) {
$sql_common .= " and b.gr_id = '$gr_id' "; $sql_common .= " and b.gr_id = '$gr_id' ";
}
if (isset($view) && $view) { if (isset($view) && $view) {
if ($view == 'w') if ($view == 'w') {
$sql_common .= " and a.wr_id = a.wr_parent "; $sql_common .= " and a.wr_id = a.wr_parent ";
else if ($view == 'c') } elseif ($view == 'c') {
$sql_common .= " and a.wr_id <> a.wr_parent "; $sql_common .= " and a.wr_id <> a.wr_parent ";
}
} }
$sql_order = " order by a.bn_id desc "; $sql_order = " order by a.bn_id desc ";
@@ -153,72 +156,74 @@ $colspan = 5;
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption>최근게시물</caption> <caption>최근게시물</caption>
<thead> <thead>
<tr> <tr>
<th scope="col">그룹</th> <th scope="col">그룹</th>
<th scope="col">게시판</th> <th scope="col">게시판</th>
<th scope="col">제목</th> <th scope="col">제목</th>
<th scope="col">이름</th> <th scope="col">이름</th>
<th scope="col">일시</th> <th scope="col">일시</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
$sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id {$sql_common} {$sql_order} limit {$new_write_rows} "; $sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id {$sql_common} {$sql_order} limit {$new_write_rows} ";
$result = sql_query($sql); $result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) for ($i = 0; $row = sql_fetch_array($result); $i++) {
{ $tmp_write_table = $g5['write_prefix'] . $row['bo_table'];
$tmp_write_table = $g5['write_prefix'] . $row['bo_table'];
if ($row['wr_id'] == $row['wr_parent']) // 원글 // 원글
{ if ($row['wr_id'] == $row['wr_parent']) {
$comment = ""; $comment = "";
$comment_link = ""; $comment_link = "";
$row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '{$row['wr_id']}' "); $row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '{$row['wr_id']}' ");
$name = get_sideview($row2['mb_id'], get_text(cut_str($row2['wr_name'], $config['cf_cut_name'])), $row2['wr_email'], $row2['wr_homepage']); $name = get_sideview($row2['mb_id'], get_text(cut_str($row2['wr_name'], $config['cf_cut_name'])), $row2['wr_email'], $row2['wr_homepage']);
// 당일인 경우 시간으로 표시함 // 당일인 경우 시간으로 표시함
$datetime = substr($row2['wr_datetime'],0,10); $datetime = substr($row2['wr_datetime'], 0, 10);
$datetime2 = $row2['wr_datetime']; $datetime2 = $row2['wr_datetime'];
if ($datetime == G5_TIME_YMD) if ($datetime == G5_TIME_YMD) {
$datetime2 = substr($datetime2,11,5); $datetime2 = substr($datetime2, 11, 5);
else } else {
$datetime2 = substr($datetime2,5,5); $datetime2 = substr($datetime2, 5, 5);
}
} else // 코멘트
{
$comment = '댓글. ';
$comment_link = '#c_' . $row['wr_id'];
$row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_parent']}' ");
$row3 = sql_fetch(" select mb_id, wr_name, wr_email, wr_homepage, wr_datetime from {$tmp_write_table} where wr_id = '{$row['wr_id']}' ");
} $name = get_sideview($row3['mb_id'], get_text(cut_str($row3['wr_name'], $config['cf_cut_name'])), $row3['wr_email'], $row3['wr_homepage']);
else // 코멘트 // 당일인 경우 시간으로 표시함
{ $datetime = substr($row3['wr_datetime'], 0, 10);
$comment = '댓글. '; $datetime2 = $row3['wr_datetime'];
$comment_link = '#c_'.$row['wr_id']; if ($datetime == G5_TIME_YMD) {
$row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_parent']}' "); $datetime2 = substr($datetime2, 11, 5);
$row3 = sql_fetch(" select mb_id, wr_name, wr_email, wr_homepage, wr_datetime from {$tmp_write_table} where wr_id = '{$row['wr_id']}' "); } else {
$datetime2 = substr($datetime2, 5, 5);
}
}
?>
$name = get_sideview($row3['mb_id'], get_text(cut_str($row3['wr_name'], $config['cf_cut_name'])), $row3['wr_email'], $row3['wr_homepage']); <tr>
// 당일인 경우 시간으로 표시함 <td class="td_category"><a href="<?php echo G5_BBS_URL ?>/new.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo cut_str($row['gr_subject'], 10) ?></a></td>
$datetime = substr($row3['wr_datetime'],0,10); <td class="td_category"><a href="<?php echo get_pretty_url($row['bo_table']) ?>"><?php echo cut_str($row['bo_subject'], 20) ?></a></td>
$datetime2 = $row3['wr_datetime']; <td><a href="<?php echo get_pretty_url($row['bo_table'], $row2['wr_id']); ?><?php echo $comment_link ?>"><?php echo $comment ?><?php echo conv_subject($row2['wr_subject'], 100) ?></a></td>
if ($datetime == G5_TIME_YMD) <td class="td_mbname">
$datetime2 = substr($datetime2,11,5); <div><?php echo $name ?></div>
else </td>
$datetime2 = substr($datetime2,5,5); <td class="td_datetime"><?php echo $datetime ?></td>
} </tr>
?>
<tr> <?php
<td class="td_category"><a href="<?php echo G5_BBS_URL ?>/new.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo cut_str($row['gr_subject'],10) ?></a></td> }
<td class="td_category"><a href="<?php echo get_pretty_url($row['bo_table']) ?>"><?php echo cut_str($row['bo_subject'],20) ?></a></td> if ($i == 0) {
<td><a href="<?php echo get_pretty_url($row['bo_table'], $row2['wr_id']); ?><?php echo $comment_link ?>"><?php echo $comment ?><?php echo conv_subject($row2['wr_subject'], 100) ?></a></td> echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
<td class="td_mbname"><div><?php echo $name ?></div></td> }
<td class="td_datetime"><?php echo $datetime ?></td> ?>
</tr> </tbody>
<?php
}
if ($i == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table> </table>
</div> </div>
@@ -250,56 +255,56 @@ $colspan = 7;
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption>최근 포인트 발생내역</caption> <caption>최근 포인트 발생내역</caption>
<thead> <thead>
<tr> <tr>
<th scope="col">회원아이디</th> <th scope="col">회원아이디</th>
<th scope="col">이름</th> <th scope="col">이름</th>
<th scope="col">닉네임</th> <th scope="col">닉네임</th>
<th scope="col">일시</th> <th scope="col">일시</th>
<th scope="col">포인트 내용</th> <th scope="col">포인트 내용</th>
<th scope="col">포인트</th> <th scope="col">포인트</th>
<th scope="col">포인트합</th> <th scope="col">포인트합</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
$row2['mb_id'] = ''; $row2['mb_id'] = '';
for ($i=0; $row=sql_fetch_array($result); $i++) for ($i = 0; $row = sql_fetch_array($result); $i++) {
{ if ($row2['mb_id'] != $row['mb_id']) {
if ($row2['mb_id'] != $row['mb_id']) $sql2 = " select mb_id, mb_name, mb_nick, mb_email, mb_homepage, mb_point from {$g5['member_table']} where mb_id = '{$row['mb_id']}' ";
{ $row2 = sql_fetch($sql2);
$sql2 = " select mb_id, mb_name, mb_nick, mb_email, mb_homepage, mb_point from {$g5['member_table']} where mb_id = '{$row['mb_id']}' "; }
$row2 = sql_fetch($sql2);
}
$mb_nick = get_sideview($row['mb_id'], $row2['mb_nick'], $row2['mb_email'], $row2['mb_homepage']); $mb_nick = get_sideview($row['mb_id'], $row2['mb_nick'], $row2['mb_email'], $row2['mb_homepage']);
$link1 = $link2 = ""; $link1 = $link2 = "";
if (!preg_match("/^\@/", $row['po_rel_table']) && $row['po_rel_table']) if (!preg_match("/^\@/", $row['po_rel_table']) && $row['po_rel_table']) {
{ $link1 = '<a href="' . get_pretty_url($row['po_rel_table'], $row['po_rel_id']) . '" target="_blank">';
$link1 = '<a href="'.get_pretty_url($row['po_rel_table'], $row['po_rel_id']).'" target="_blank">'; $link2 = '</a>';
$link2 = '</a>'; }
} ?>
?>
<tr> <tr>
<td class="td_mbid"><a href="./point_list.php?sfl=mb_id&amp;stx=<?php echo $row['mb_id'] ?>"><?php echo $row['mb_id'] ?></a></td> <td class="td_mbid"><a href="./point_list.php?sfl=mb_id&amp;stx=<?php echo $row['mb_id'] ?>"><?php echo $row['mb_id'] ?></a></td>
<td class="td_mbname"><?php echo get_text($row2['mb_name']); ?></td> <td class="td_mbname"><?php echo get_text($row2['mb_name']); ?></td>
<td class="td_name sv_use"><div><?php echo $mb_nick ?></div></td> <td class="td_name sv_use">
<td class="td_datetime"><?php echo $row['po_datetime'] ?></td> <div><?php echo $mb_nick ?></div>
<td><?php echo $link1.$row['po_content'].$link2 ?></td> </td>
<td class="td_numbig"><?php echo number_format($row['po_point']) ?></td> <td class="td_datetime"><?php echo $row['po_datetime'] ?></td>
<td class="td_numbig"><?php echo number_format($row['po_mb_point']) ?></td> <td><?php echo $link1 . $row['po_content'] . $link2 ?></td>
</tr> <td class="td_numbig"><?php echo number_format($row['po_point']) ?></td>
<td class="td_numbig"><?php echo number_format($row['po_mb_point']) ?></td>
</tr>
<?php <?php
} }
if ($i == 0) if ($i == 0) {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>'; echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
?> }
</tbody> ?>
</tbody>
</table> </table>
</div> </div>
@@ -309,4 +314,4 @@ $colspan = 7;
</section> </section>
<?php <?php
include_once ('./admin.tail.php'); require_once './admin.tail.php';
+4 -3
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = '200300'; $sub_menu = '200300';
include_once('./_common.php'); require_once './_common.php';
check_demo(); check_demo();
@@ -10,10 +10,11 @@ check_admin_token();
$post_count_chk = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0; $post_count_chk = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0;
if(! $post_count_chk) if (!$post_count_chk) {
alert('삭제할 메일목록을 1개이상 선택해 주세요.'); alert('삭제할 메일목록을 1개이상 선택해 주세요.');
}
for($i=0; $i<$post_count_chk; $i++) { for ($i = 0; $i < $post_count_chk; $i++) {
$ma_id = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0; $ma_id = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0;
$sql = " delete from {$g5['mail_table']} where ma_id = '$ma_id' "; $sql = " delete from {$g5['mail_table']} where ma_id = '$ma_id' ";
+51 -49
View File
@@ -1,14 +1,14 @@
<?php <?php
$sub_menu = "200300"; $sub_menu = "200300";
include_once('./_common.php'); require_once './_common.php';
include_once(G5_EDITOR_LIB); require_once G5_EDITOR_LIB;
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
$html_title = '회원메일'; $html_title = '회원메일';
$ma_id = isset($_GET['ma_id']) ? (int) $_GET['ma_id'] : 0; $ma_id = isset($_GET['ma_id']) ? (int) $_GET['ma_id'] : 0;
$ma = array('ma_id'=>0, 'ma_subject'=>'', 'ma_content'=>''); $ma = array('ma_id' => 0, 'ma_subject' => '', 'ma_content' => '');
if ($w == 'u') { if ($w == 'u') {
$html_title .= '수정'; $html_title .= '수정';
@@ -16,71 +16,73 @@ if ($w == 'u') {
$sql = " select * from {$g5['mail_table']} where ma_id = '{$ma_id}' "; $sql = " select * from {$g5['mail_table']} where ma_id = '{$ma_id}' ";
$ma = sql_fetch($sql); $ma = sql_fetch($sql);
if (!$ma['ma_id']) if (!$ma['ma_id']) {
alert('등록된 자료가 없습니다.'); alert('등록된 자료가 없습니다.');
}
} else { } else {
$html_title .= '입력'; $html_title .= '입력';
} }
$g5['title'] = $html_title; $g5['title'] = $html_title;
include_once('./admin.head.php'); require_once './admin.head.php';
?> ?>
<div class="local_desc"><p>메일 내용에 {이름} , {닉네임} , {회원아이디} , {이메일} 처럼 내용에 삽입하면 해당 내용에 맞게 변환하여 메일을 발송합니다.</p></div> <div class="local_desc">
<p>메일 내용에 {이름} , {닉네임} , {회원아이디} , {이메일} 처럼 내용에 삽입하면 해당 내용에 맞게 변환하여 메일을 발송합니다.</p>
</div>
<form name="fmailform" id="fmailform" action="./mail_update.php" onsubmit="return fmailform_check(this);" method="post"> <form name="fmailform" id="fmailform" action="./mail_update.php" onsubmit="return fmailform_check(this);" method="post">
<input type="hidden" name="w" value="<?php echo $w ?>" id="w"> <input type="hidden" name="w" value="<?php echo $w ?>" id="w">
<input type="hidden" name="ma_id" value="<?php echo $ma['ma_id'] ?>" id="ma_id"> <input type="hidden" name="ma_id" value="<?php echo $ma['ma_id'] ?>" id="ma_id">
<input type="hidden" name="token" value="" id="token"> <input type="hidden" name="token" value="" id="token">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?></caption> <caption><?php echo $g5['title']; ?></caption>
<colgroup> <colgroup>
<col class="grid_4"> <col class="grid_4">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="ma_subject">메일 제목<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="ma_subject">메일 제목<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="ma_subject" value="<?php echo get_sanitize_input($ma['ma_subject']); ?>" id="ma_subject" required class="required frm_input" size="100"></td> <td><input type="text" name="ma_subject" value="<?php echo get_sanitize_input($ma['ma_subject']); ?>" id="ma_subject" required class="required frm_input" size="100"></td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="ma_content">메일 내용<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="ma_content">메일 내용<strong class="sound_only">필수</strong></label></th>
<td><?php echo editor_html("ma_content", get_text(html_purifier($ma['ma_content']), 0)); ?></td> <td><?php echo editor_html("ma_content", get_text(html_purifier($ma['ma_content']), 0)); ?></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="btn_fixed_top "> <div class="btn_fixed_top ">
<input type="submit" class="btn_submit btn" accesskey="s" value="확인"> <input type="submit" class="btn_submit btn" accesskey="s" value="확인">
</div> </div>
</form> </form>
<script> <script>
function fmailform_check(f) function fmailform_check(f) {
{ errmsg = "";
errmsg = ""; errfld = "";
errfld = "";
check_field(f.ma_subject, "제목을 입력하세요."); check_field(f.ma_subject, "제목을 입력하세요.");
//check_field(f.ma_content, "내용을 입력하세요."); //check_field(f.ma_content, "내용을 입력하세요.");
if (errmsg != "") { if (errmsg != "") {
alert(errmsg); alert(errmsg);
errfld.focus(); errfld.focus();
return false; return false;
}
<?php echo get_editor_js("ma_content"); ?>
<?php echo chk_editor_js("ma_content"); ?>
return true;
} }
<?php echo get_editor_js("ma_content"); ?> document.fmailform.ma_subject.focus();
<?php echo chk_editor_js("ma_content"); ?>
return true;
}
document.fmailform.ma_subject.focus();
</script> </script>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+60 -59
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = '200300'; $sub_menu = '200300';
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
@@ -17,7 +17,7 @@ $sql = " select * {$sql_common} order by ma_id desc ";
$result = sql_query($sql); $result = sql_query($sql);
$g5['title'] = '회원메일발송'; $g5['title'] = '회원메일발송';
include_once('./admin.head.php'); require_once './admin.head.php';
$colspan = 7; $colspan = 7;
?> ?>
@@ -32,73 +32,74 @@ $colspan = 7;
<form name="fmaillist" id="fmaillist" action="./mail_delete.php" method="post"> <form name="fmaillist" id="fmaillist" action="./mail_delete.php" method="post">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col"><input type="checkbox" name="chkall" value="1" id="chkall" title="현재 페이지 목록 전체선택" onclick="check_all(this.form)"></th> <th scope="col"><input type="checkbox" name="chkall" value="1" id="chkall" title="현재 페이지 목록 전체선택" onclick="check_all(this.form)"></th>
<th scope="col">번호</th> <th scope="col">번호</th>
<th scope="col">제목</th> <th scope="col">제목</th>
<th scope="col">작성일시</th> <th scope="col">작성일시</th>
<th scope="col">테스트</th> <th scope="col">테스트</th>
<th scope="col">보내기</th> <th scope="col">보내기</th>
<th scope="col">미리보기</th> <th scope="col">미리보기</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i = 0; $row = sql_fetch_array($result); $i++) {
$s_vie = '<a href="./mail_preview.php?ma_id='.$row['ma_id'].'" target="_blank" class="btn btn_03">미리보기</a>'; $s_vie = '<a href="./mail_preview.php?ma_id=' . $row['ma_id'] . '" target="_blank" class="btn btn_03">미리보기</a>';
$num = number_format($total_count - ($page - 1) * $config['cf_page_rows'] - $i); $num = number_format($total_count - ($page - 1) * $config['cf_page_rows'] - $i);
$bg = 'bg'.($i%2); $bg = 'bg' . ($i % 2);
?> ?>
<tr class="<?php echo $bg; ?>"> <tr class="<?php echo $bg; ?>">
<td class="td_chk"> <td class="td_chk">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['ma_subject']; ?> 메일</label> <label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['ma_subject']; ?> 메일</label>
<input type="checkbox" id="chk_<?php echo $i ?>" name="chk[]" value="<?php echo $row['ma_id'] ?>"> <input type="checkbox" id="chk_<?php echo $i ?>" name="chk[]" value="<?php echo $row['ma_id'] ?>">
</td> </td>
<td class="td_num_c"><?php echo $num ?></td> <td class="td_num_c"><?php echo $num ?></td>
<td class="td_left"><a href="./mail_form.php?w=u&amp;ma_id=<?php echo $row['ma_id'] ?>"><?php echo $row['ma_subject'] ?></a></td> <td class="td_left"><a href="./mail_form.php?w=u&amp;ma_id=<?php echo $row['ma_id'] ?>"><?php echo $row['ma_subject'] ?></a></td>
<td class="td_datetime"><?php echo $row['ma_time'] ?></td> <td class="td_datetime"><?php echo $row['ma_time'] ?></td>
<td class="td_test"><a href="./mail_test.php?ma_id=<?php echo $row['ma_id'] ?>">테스트</a></td> <td class="td_test"><a href="./mail_test.php?ma_id=<?php echo $row['ma_id'] ?>">테스트</a></td>
<td class="td_send"><a href="./mail_select_form.php?ma_id=<?php echo $row['ma_id'] ?>">보내기</a></td> <td class="td_send"><a href="./mail_select_form.php?ma_id=<?php echo $row['ma_id'] ?>">보내기</a></td>
<td class="td_mng"><?php echo $s_vie ?></td> <td class="td_mng"><?php echo $s_vie ?></td>
</tr> </tr>
<?php <?php
} }
if (!$i) if (!$i) {
echo "<tr><td colspan=\"".$colspan."\" class=\"empty_table\">자료가 없습니다.</td></tr>"; echo "<tr><td colspan=\"" . $colspan . "\" class=\"empty_table\">자료가 없습니다.</td></tr>";
?> }
</tbody> ?>
</table> </tbody>
</div> </table>
<div class="btn_fixed_top"> </div>
<input type="submit" value="선택삭제" class="btn btn_02"> <div class="btn_fixed_top">
<a href="./mail_form.php" id="mail_add" class="btn btn_01">메일내용추가</a> <input type="submit" value="선택삭제" class="btn btn_02">
</div> <a href="./mail_form.php" id="mail_add" class="btn btn_01">메일내용추가</a>
</div>
</form> </form>
<script> <script>
$(function() { $(function() {
$('#fmaillist').submit(function() { $('#fmaillist').submit(function() {
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) { if (confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
if (!is_checked("chk[]")) { if (!is_checked("chk[]")) {
alert("선택삭제 하실 항목을 하나 이상 선택하세요."); alert("선택삭제 하실 항목을 하나 이상 선택하세요.");
return false;
}
return true;
} else {
return false; return false;
} }
});
return true;
} else {
return false;
}
}); });
});
</script> </script>
<?php <?php
include_once ('./admin.tail.php'); require_once './admin.tail.php';
+12 -16
View File
@@ -1,7 +1,7 @@
<?php <?php
$sub_menu = "200300"; $sub_menu = "200300";
include_once('./_common.php'); require_once './_common.php';
include_once(G5_LIB_PATH.'/mailer.lib.php'); require_once G5_LIB_PATH . '/mailer.lib.php';
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
@@ -10,27 +10,23 @@ $ma_id = isset($_REQUEST['ma_id']) ? (int) $_REQUEST['ma_id'] : 0;
$se = sql_fetch("select ma_subject, ma_content from {$g5['mail_table']} where ma_id = '{$ma_id}' "); $se = sql_fetch("select ma_subject, ma_content from {$g5['mail_table']} where ma_id = '{$ma_id}' ");
$subject = $se['ma_subject']; $subject = $se['ma_subject'];
$content = conv_content($se['ma_content'], 1) . "<hr size=0><p><span style='font-size:9pt; font-family:굴림'>▶ 더 이상 정보 수신을 원치 않으시면 [<a href='".G5_BBS_URL."/email_stop.php?mb_id=***&amp;mb_md5=***' target='_blank'>수신거부</a>] 해 주십시오.</span></p>"; $content = conv_content($se['ma_content'], 1) . "<hr size=0><p><span style='font-size:9pt; font-family:굴림'>▶ 더 이상 정보 수신을 원치 않으시면 [<a href='" . G5_BBS_URL . "/email_stop.php?mb_id=***&amp;mb_md5=***' target='_blank'>수신거부</a>] 해 주십시오.</span></p>";
?> ?>
<!doctype html> <!doctype html>
<html lang="ko"> <html lang="ko">
<head> <head>
<meta charset="utf-8"> <meta charset="utf-8">
<title><?php echo G5_VERSION ?> 메일발송 테스트</title> <title><?php echo G5_VERSION ?> 메일발송 테스트</title>
</head> </head>
<body> <body>
<h1><?php echo $subject; ?></h1>
<h1><?php echo $subject; ?></h1> <p><?php echo $content; ?></p>
<p>
<p> <strong>주의!</strong> 이 화면에 보여지는 디자인은 실제 내용이 발송되었을 때 디자인과 다를 수 있습니다.
<?php echo $content; ?> </p>
</p>
<p>
<strong>주의!</strong> 이 화면에 보여지는 디자인은 실제 내용이 발송되었을 때 디자인과 다를 수 있습니다.
</p>
</body> </body>
</html> </html>
+92 -80
View File
@@ -1,9 +1,10 @@
<?php <?php
$sub_menu = "200300"; $sub_menu = "200300";
include_once('./_common.php'); require_once './_common.php';
if (!$config['cf_email_use']) if (!$config['cf_email_use']) {
alert('환경설정에서 \'메일발송 사용\'에 체크하셔야 메일을 발송할 수 있습니다.'); alert('환경설정에서 \'메일발송 사용\'에 체크하셔야 메일을 발송할 수 있습니다.');
}
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
@@ -11,8 +12,9 @@ $ma_id = isset($_GET['ma_id']) ? (int) $_GET['ma_id'] : 0;
$sql = " select * from {$g5['mail_table']} where ma_id = '$ma_id' "; $sql = " select * from {$g5['mail_table']} where ma_id = '$ma_id' ";
$ma = sql_fetch($sql); $ma = sql_fetch($sql);
if (!$ma['ma_id']) if (!$ma['ma_id']) {
alert('보내실 내용을 선택하여 주십시오.'); alert('보내실 내용을 선택하여 주십시오.');
}
// 전체회원수 // 전체회원수
$sql = " select COUNT(*) as cnt from {$g5['member_table']} "; $sql = " select COUNT(*) as cnt from {$g5['member_table']} ";
@@ -25,24 +27,34 @@ $row = sql_fetch($sql);
$finish_cnt = $row['cnt']; $finish_cnt = $row['cnt'];
$last_option = explode('||', $ma['ma_last_option']); $last_option = explode('||', $ma['ma_last_option']);
for ($i=0; $i<count($last_option); $i++) { for ($i = 0; $i < count($last_option); $i++) {
$option = explode('=', $last_option[$i]); $option = explode('=', $last_option[$i]);
// 동적변수 // 동적변수
$var = isset($option[0]) ? $option[0] : ''; $var = isset($option[0]) ? $option[0] : '';
if( isset($option[1]) ) $$var = $option[1]; if (isset($option[1])) {
$$var = $option[1];
}
} }
if (!isset($mb_id1)) $mb_id1 = 1; if (!isset($mb_id1)) {
if (!isset($mb_level_from)) $mb_level_from = 1; $mb_id1 = 1;
if (!isset($mb_level_to)) $mb_level_to = 10; }
if (!isset($mb_mailling)) $mb_mailling = 1; if (!isset($mb_level_from)) {
$mb_level_from = 1;
}
if (!isset($mb_level_to)) {
$mb_level_to = 10;
}
if (!isset($mb_mailling)) {
$mb_mailling = 1;
}
$mb_id1_from = isset($mb_id1_from) ? clean_xss_tags($mb_id1_from, 1, 1, 30) : ''; $mb_id1_from = isset($mb_id1_from) ? clean_xss_tags($mb_id1_from, 1, 1, 30) : '';
$mb_id1_to = isset($mb_id1_to) ? clean_xss_tags($mb_id1_to, 1, 1, 30) : ''; $mb_id1_to = isset($mb_id1_to) ? clean_xss_tags($mb_id1_to, 1, 1, 30) : '';
$mb_email = isset($mb_email) ? clean_xss_tags($mb_email, 1, 1, 100) : ''; $mb_email = isset($mb_email) ? clean_xss_tags($mb_email, 1, 1, 100) : '';
$g5['title'] = '회원메일발송'; $g5['title'] = '회원메일발송';
include_once('./admin.head.php'); require_once './admin.head.php';
?> ?>
<div class="local_ov01 local_ov"> <div class="local_ov01 local_ov">
@@ -50,78 +62,78 @@ include_once('./admin.head.php');
</div> </div>
<form name="frmsendmailselectform" id="frmsendmailselectform" action="./mail_select_list.php" method="post" autocomplete="off"> <form name="frmsendmailselectform" id="frmsendmailselectform" action="./mail_select_list.php" method="post" autocomplete="off">
<input type="hidden" name="ma_id" value="<?php echo $ma_id ?>"> <input type="hidden" name="ma_id" value="<?php echo $ma_id ?>">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 대상선택</caption> <caption><?php echo $g5['title']; ?> 대상선택</caption>
<tbody> <tbody>
<tr> <tr>
<th scope="row">회원 ID</th> <th scope="row">회원 ID</th>
<td> <td>
<input type="radio" name="mb_id1" value="1" id="mb_id1_all" <?php echo $mb_id1?"checked":""; ?>> <label for="mb_id1_all">전체</label> <input type="radio" name="mb_id1" value="1" id="mb_id1_all" <?php echo $mb_id1 ? "checked" : ""; ?>> <label for="mb_id1_all">전체</label>
<input type="radio" name="mb_id1" value="0" id="mb_id1_section" <?php echo !$mb_id1?"checked":""; ?>> <label for="mb_id1_section">구간</label> <input type="radio" name="mb_id1" value="0" id="mb_id1_section" <?php echo !$mb_id1 ? "checked" : ""; ?>> <label for="mb_id1_section">구간</label>
<input type="text" name="mb_id1_from" value="<?php echo get_sanitize_input($mb_id1_from); ?>" id="mb_id1_from" title="시작구간" class="frm_input"> 에서 <input type="text" name="mb_id1_from" value="<?php echo get_sanitize_input($mb_id1_from); ?>" id="mb_id1_from" title="시작구간" class="frm_input"> 에서
<input type="text" name="mb_id1_to" value="<?php echo get_sanitize_input($mb_id1_to); ?>" id="mb_id1_to" title="종료구간" class="frm_input"> 까지 <input type="text" name="mb_id1_to" value="<?php echo get_sanitize_input($mb_id1_to); ?>" id="mb_id1_to" title="종료구간" class="frm_input"> 까지
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="mb_email">E-mail</label></th> <th scope="row"><label for="mb_email">E-mail</label></th>
<td> <td>
<?php echo help("메일 주소에 단어 포함 (예 : @".preg_replace('#^(www[^\.]*\.){1}#', '', $_SERVER['HTTP_HOST']).")") ?> <?php echo help("메일 주소에 단어 포함 (예 : @" . preg_replace('#^(www[^\.]*\.){1}#', '', $_SERVER['HTTP_HOST']) . ")") ?>
<input type="text" name="mb_email" value="<?php echo get_sanitize_input($mb_email); ?>" id="mb_email" class="frm_input" size="50"> <input type="text" name="mb_email" value="<?php echo get_sanitize_input($mb_email); ?>" id="mb_email" class="frm_input" size="50">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="mb_mailling">메일링</label></th> <th scope="row"><label for="mb_mailling">메일링</label></th>
<td> <td>
<select name="mb_mailling" id="mb_mailling"> <select name="mb_mailling" id="mb_mailling">
<option value="1">수신동의한 회원만 <option value="1">수신동의한 회원만
<option value="">전체 <option value="">전체
</select> </select>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row">권한</th> <th scope="row">권한</th>
<td> <td>
<label for="mb_level_from" class="sound_only">최소권한</label> <label for="mb_level_from" class="sound_only">최소권한</label>
<select name="mb_level_from" id="mb_level_from"> <select name="mb_level_from" id="mb_level_from">
<?php for ($i=1; $i<=10; $i++) { ?> <?php for ($i = 1; $i <= 10; $i++) { ?>
<option value="<?php echo $i ?>"><?php echo $i ?></option> <option value="<?php echo $i ?>"><?php echo $i ?></option>
<?php } ?> <?php } ?>
</select> 에서 </select> 에서
<label for="mb_level_to" class="sound_only">최대권한</label> <label for="mb_level_to" class="sound_only">최대권한</label>
<select name="mb_level_to" id="mb_level_to"> <select name="mb_level_to" id="mb_level_to">
<?php for ($i=1; $i<=10; $i++) { ?> <?php for ($i = 1; $i <= 10; $i++) { ?>
<option value="<?php echo $i ?>"<?php echo $i==10 ? " selected" : ""; ?>><?php echo $i ?></option> <option value="<?php echo $i ?>" <?php echo $i == 10 ? " selected" : ""; ?>><?php echo $i ?></option>
<?php } ?> <?php } ?>
</select> 까지 </select> 까지
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="gr_id">게시판그룹회원</label></th> <th scope="row"><label for="gr_id">게시판그룹회원</label></th>
<td> <td>
<select name="gr_id" id="gr_id"> <select name="gr_id" id="gr_id">
<option value=''>전체</option> <option value=''>전체</option>
<?php <?php
$sql = " select gr_id, gr_subject from {$g5['group_table']} order by gr_subject "; $sql = " select gr_id, gr_subject from {$g5['group_table']} order by gr_subject ";
$result = sql_query($sql); $result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i = 0; $row = sql_fetch_array($result); $i++) {
echo '<option value="'.$row['gr_id'].'">'.$row['gr_subject'].'</option>'; echo '<option value="' . $row['gr_id'] . '">' . $row['gr_subject'] . '</option>';
} }
?> ?>
</select> </select>
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="btn_confirm01 btn_confirm"> <div class="btn_confirm01 btn_confirm">
<input type="submit" value="확인" class="btn_submit"> <input type="submit" value="확인" class="btn_submit">
<a href="./mail_list.php">목록 </a> <a href="./mail_list.php">목록 </a>
</div> </div>
</form> </form>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+65 -52
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = "200300"; $sub_menu = "200300";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
@@ -9,17 +9,28 @@ $ma_last_option = "";
$sql_common = " from {$g5['member_table']} "; $sql_common = " from {$g5['member_table']} ";
$sql_where = " where (1) "; $sql_where = " where (1) ";
$mb_id1 = isset($_POST['mb_id1']) ? $_POST['mb_id1'] : 1;
$mb_id1_from = isset($_POST['mb_id1_from']) ? clean_xss_tags($_POST['mb_id1_from'], 1, 1, 30) : '';
$mb_id1_to = isset($_POST['mb_id1_to']) ? clean_xss_tags($_POST['mb_id1_to'], 1, 1, 30) : '';
$mb_email = isset($_POST['mb_email']) ? clean_xss_tags($_POST['mb_email'], 1, 1, 100) : '';
$mb_mailling = isset($_POST['mb_mailling']) ? clean_xss_tags($_POST['mb_mailling'], 1, 1, 100) : '';
$mb_level_from = isset($_POST['mb_level_from'])? $_POST['mb_level_from'] : 1;
$mb_level_to = isset($_POST['mb_level_to']) ? $_POST['mb_level_to'] : 10;
// 회원ID ..에서 ..까지 // 회원ID ..에서 ..까지
if ($mb_id1 != 1) if ($mb_id1 != 1) {
$sql_where .= " and mb_id between '{$mb_id1_from}' and '{$mb_id1_to}' "; $sql_where .= " and mb_id between '{$mb_id1_from}' and '{$mb_id1_to}' ";
}
// E-mail에 특정 단어 포함 // E-mail에 특정 단어 포함
if ($mb_email != "") if ($mb_email != "") {
$sql_where .= " and mb_email like '%{$mb_email}%' "; $sql_where .= " and mb_email like '%{$mb_email}%' ";
}
// 메일링 // 메일링
if ($mb_mailling != "") if ($mb_mailling != "") {
$sql_where .= " and mb_mailling = '{$mb_mailling}' "; $sql_where .= " and mb_mailling = '{$mb_mailling}' ";
}
// 권한 // 권한
$sql_where .= " and mb_level between '{$mb_level_from}' and '{$mb_level_to}' "; $sql_where .= " and mb_level between '{$mb_level_from}' and '{$mb_level_to}' ";
@@ -30,13 +41,14 @@ if ($gr_id) {
$comma = ""; $comma = "";
$sql2 = " select mb_id from {$g5['group_member_table']} where gr_id = '{$gr_id}' order by mb_id "; $sql2 = " select mb_id from {$g5['group_member_table']} where gr_id = '{$gr_id}' order by mb_id ";
$result2 = sql_query($sql2); $result2 = sql_query($sql2);
for ($k=0; $row2=sql_fetch_array($result2); $k++) { for ($k = 0; $row2 = sql_fetch_array($result2); $k++) {
$group_member .= "{$comma}'{$row2['mb_id']}'"; $group_member .= "{$comma}'{$row2['mb_id']}'";
$comma = ","; $comma = ",";
} }
if (!$group_member) if (!$group_member) {
alert('선택하신 게시판 그룹회원이 한명도 없습니다.'); alert('선택하신 게시판 그룹회원이 한명도 없습니다.');
}
$sql_where .= " and mb_id in ($group_member) "; $sql_where .= " and mb_id in ($group_member) ";
} }
@@ -47,8 +59,9 @@ $sql_where .= " and mb_leave_date = '' and mb_intercept_date = '' ";
$sql = " select COUNT(*) as cnt {$sql_common} {$sql_where} "; $sql = " select COUNT(*) as cnt {$sql_common} {$sql_where} ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
$cnt = $row['cnt']; $cnt = $row['cnt'];
if ($cnt == 0) if ($cnt == 0) {
alert('선택하신 내용으로는 해당되는 회원자료가 없습니다.'); alert('선택하신 내용으로는 해당되는 회원자료가 없습니다.');
}
// 마지막 옵션을 저장합니다. // 마지막 옵션을 저장합니다.
$ma_last_option .= "mb_id1={$mb_id1}"; $ma_last_option .= "mb_id1={$mb_id1}";
@@ -63,58 +76,58 @@ $ma_last_option .= "||gr_id={$gr_id}";
sql_query(" update {$g5['mail_table']} set ma_last_option = '{$ma_last_option}' where ma_id = '{$ma_id}' "); sql_query(" update {$g5['mail_table']} set ma_last_option = '{$ma_last_option}' where ma_id = '{$ma_id}' ");
$g5['title'] = "메일발송 대상 회원"; $g5['title'] = "메일발송 대상 회원";
include_once('./admin.head.php'); require_once './admin.head.php';
?> ?>
<form name="fmailselectlist" id="fmailselectlist" method="post" action="./mail_select_update.php"> <form name="fmailselectlist" id="fmailselectlist" method="post" action="./mail_select_update.php">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<input type="hidden" name="ma_id" value="<?php echo $ma_id ?>"> <input type="hidden" name="ma_id" value="<?php echo $ma_id ?>">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col">번호</th> <th scope="col">번호</th>
<th scope="col">회원아이디</th> <th scope="col">회원아이디</th>
<th scope="col">이름</th> <th scope="col">이름</th>
<th scope="col">닉네임</th> <th scope="col">닉네임</th>
<th scope="col">E-mail</th> <th scope="col">E-mail</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
$sql = " select mb_id, mb_name, mb_nick, mb_email, mb_datetime $sql_common $sql_where order by mb_id "; $sql = " select mb_id, mb_name, mb_nick, mb_email, mb_datetime $sql_common $sql_where order by mb_id ";
$result = sql_query($sql); $result = sql_query($sql);
$i=0; $i = 0;
$ma_list = ""; $ma_list = "";
$cr = ""; $cr = "";
while ($row=sql_fetch_array($result)) { while ($row = sql_fetch_array($result)) {
$i++; $i++;
$ma_list .= $cr . $row['mb_email'] . "||" . $row['mb_id'] . "||" . get_text($row['mb_name']) . "||" . $row['mb_nick'] . "||" . $row['mb_datetime']; $ma_list .= $cr . $row['mb_email'] . "||" . $row['mb_id'] . "||" . get_text($row['mb_name']) . "||" . $row['mb_nick'] . "||" . $row['mb_datetime'];
$cr = "\n"; $cr = "\n";
$bg = 'bg'.($i%2); $bg = 'bg' . ($i % 2);
?> ?>
<tr class="<?php echo $bg; ?>"> <tr class="<?php echo $bg; ?>">
<td class="td_num"><?php echo $i ?></td> <td class="td_num"><?php echo $i ?></td>
<td class="td_mbid"><?php echo $row['mb_id'] ?></td> <td class="td_mbid"><?php echo $row['mb_id'] ?></td>
<td class="td_mbname"><?php echo get_text($row['mb_name']); ?></td> <td class="td_mbname"><?php echo get_text($row['mb_name']); ?></td>
<td class="td_mbname"><?php echo $row['mb_nick'] ?></td> <td class="td_mbname"><?php echo $row['mb_nick'] ?></td>
<td><?php echo $row['mb_email'] ?></td> <td><?php echo $row['mb_email'] ?></td>
</tr> </tr>
<?php } ?> <?php } ?>
</tbody> </tbody>
</table> </table>
<textarea name="ma_list" style="display:none"><?php echo $ma_list?></textarea> <textarea name="ma_list" style="display:none"><?php echo $ma_list ?></textarea>
</div> </div>
<div class="btn_confirm01 btn_confirm"> <div class="btn_confirm01 btn_confirm">
<input type="submit" value="메일보내기" class="btn_submit"> <input type="submit" value="메일보내기" class="btn_submit">
<a href="./mail_select_form.php?ma_id=<?php echo $ma_id ?>">뒤로</a> <a href="./mail_select_form.php?ma_id=<?php echo $ma_id ?>">뒤로</a>
</div> </div>
</form> </form>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+19 -18
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = "200300"; $sub_menu = "200300";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
@@ -10,8 +10,8 @@ check_demo();
check_admin_token(); check_admin_token();
include_once('./admin.head.php'); require_once './admin.head.php';
include_once(G5_LIB_PATH.'/mailer.lib.php'); require_once G5_LIB_PATH . '/mailer.lib.php';
$countgap = 10; // 몇건씩 보낼지 설정 $countgap = 10; // 몇건씩 보낼지 설정
$maxscreen = 500; // 몇건씩 화면에 보여줄건지? $maxscreen = 500; // 몇건씩 화면에 보여줄건지?
@@ -25,7 +25,7 @@ echo "</span>";
<span id="cont"></span> <span id="cont"></span>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
flush(); flush();
ob_flush(); ob_flush();
@@ -43,25 +43,23 @@ $ma = sql_fetch($sql);
$subject = $ma['ma_subject']; $subject = $ma['ma_subject'];
$cnt = 0; $cnt = 0;
for ($i=0; $i<count($member_list); $i++) for ($i = 0; $i < count($member_list); $i++) {
{
list($to_email, $mb_id, $name, $nick, $datetime) = explode("||", trim($member_list[$i])); list($to_email, $mb_id, $name, $nick, $datetime) = explode("||", trim($member_list[$i]));
$sw = preg_match("/[0-9a-zA-Z_]+(\.[0-9a-zA-Z_]+)*@[0-9a-zA-Z_]+(\.[0-9a-zA-Z_]+)*/", $to_email); $sw = preg_match("/[0-9a-zA-Z_]+(\.[0-9a-zA-Z_]+)*@[0-9a-zA-Z_]+(\.[0-9a-zA-Z_]+)*/", $to_email);
// 올바른 메일 주소만 // 올바른 메일 주소만
if ($sw == true) if ($sw == true) {
{
$cnt++; $cnt++;
$mb_md5 = md5($mb_id.$to_email.$datetime); $mb_md5 = md5($mb_id . $to_email . $datetime);
$content = $ma['ma_content']; $content = $ma['ma_content'];
$content = preg_replace("/{이름}/", $name, $content); $content = preg_replace("/{이름}/", $name, (string)$content);
$content = preg_replace("/{닉네임}/", $nick, $content); $content = preg_replace("/{닉네임}/", $nick, (string)$content);
$content = preg_replace("/{회원아이디}/", $mb_id, $content); $content = preg_replace("/{회원아이디}/", $mb_id, (string)$content);
$content = preg_replace("/{이메일}/", $to_email, $content); $content = preg_replace("/{이메일}/", $to_email, (string)$content);
$content = $content . "<hr size=0><p><span style='font-size:9pt; font-family:굴림'>▶ 더 이상 정보 수신을 원치 않으시면 [<a href='".G5_BBS_URL."/email_stop.php?mb_id={$mb_id}&amp;mb_md5={$mb_md5}' target='_blank'>수신거부</a>] 해 주십시오.</span></p>"; $content = $content . "<hr size=0><p><span style='font-size:9pt; font-family:굴림'>▶ 더 이상 정보 수신을 원치 않으시면 [<a href='" . G5_BBS_URL . "/email_stop.php?mb_id={$mb_id}&amp;mb_md5={$mb_md5}' target='_blank'>수신거부</a>] 해 주십시오.</span></p>";
mailer($config['cf_admin_email_name'], $config['cf_admin_email'], $to_email, $subject, $content, 1); mailer($config['cf_admin_email_name'], $config['cf_admin_email'], $to_email, $subject, $content, 1);
@@ -71,15 +69,18 @@ for ($i=0; $i<count($member_list); $i++)
ob_flush(); ob_flush();
ob_end_flush(); ob_end_flush();
usleep($sleepsec); usleep($sleepsec);
if ($cnt % $countgap == 0) if ($cnt % $countgap == 0) {
{
echo "<script> document.all.cont.innerHTML += '<br>'; document.body.scrollTop += 1000; </script>\n"; echo "<script> document.all.cont.innerHTML += '<br>'; document.body.scrollTop += 1000; </script>\n";
} }
// 화면을 지운다... 부하를 줄임 // 화면을 지운다... 부하를 줄임
if ($cnt % $maxscreen == 0) if ($cnt % $maxscreen == 0) {
echo "<script> document.all.cont.innerHTML = ''; document.body.scrollTop += 1000; </script>\n"; echo "<script> document.all.cont.innerHTML = ''; document.body.scrollTop += 1000; </script>\n";
}
} }
} }
?> ?>
<script> document.all.cont.innerHTML += "<br><br>총 <?php echo number_format($cnt) ?>건 발송<br><br><font color=crimson><b>[끝]</b></font>"; document.body.scrollTop += 1000; </script> <script>
document.all.cont.innerHTML += "<br><br>총 <?php echo number_format($cnt) ?>건 발송<br><br><font color=crimson><b>[끝]</b></font>";
document.body.scrollTop += 1000;
</script>
+11 -10
View File
@@ -1,11 +1,12 @@
<?php <?php
$sub_menu = "200300"; $sub_menu = "200300";
include_once('./_common.php'); require_once './_common.php';
if (!$config['cf_email_use']) if (!$config['cf_email_use']) {
alert('환경설정에서 \'메일발송 사용\'에 체크하셔야 메일을 발송할 수 있습니다.'); alert('환경설정에서 \'메일발송 사용\'에 체크하셔야 메일을 발송할 수 있습니다.');
}
include_once(G5_LIB_PATH.'/mailer.lib.php'); require_once G5_LIB_PATH . '/mailer.lib.php';
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
@@ -25,15 +26,15 @@ $ma = sql_fetch($sql);
$subject = $ma['ma_subject']; $subject = $ma['ma_subject'];
$content = $ma['ma_content']; $content = $ma['ma_content'];
$content = preg_replace("/{이름}/", $name, $content); $content = preg_replace("/{이름}/", $name, (string)$content);
$content = preg_replace("/{닉네임}/", $nick, $content); $content = preg_replace("/{닉네임}/", $nick, (string)$content);
$content = preg_replace("/{회원아이디}/", $mb_id, $content); $content = preg_replace("/{회원아이디}/", $mb_id, (string)$content);
$content = preg_replace("/{이메일}/", $email, $content); $content = preg_replace("/{이메일}/", $email, (string)$content);
$mb_md5 = md5($member['mb_id'].$member['mb_email'].$member['mb_datetime']); $mb_md5 = md5($member['mb_id'] . $member['mb_email'] . $member['mb_datetime']);
$content = $content . '<p>더 이상 정보 수신을 원치 않으시면 [<a href="'.G5_BBS_URL.'/email_stop.php?mb_id='.$mb_id.'&amp;mb_md5='.$mb_md5.'" target="_blank">수신거부</a>] 해 주십시오.</p>'; $content = $content . '<p>더 이상 정보 수신을 원치 않으시면 [<a href="' . G5_BBS_URL . '/email_stop.php?mb_id=' . $mb_id . '&amp;mb_md5=' . $mb_md5 . '" target="_blank">수신거부</a>] 해 주십시오.</p>';
mailer($config['cf_title'], $member['mb_email'], $member['mb_email'], $subject, $content, 1); mailer($config['cf_title'], $member['mb_email'], $member['mb_email'], $subject, $content, 1);
alert($member['mb_nick'].'('.$member['mb_email'].')님께 테스트 메일을 발송하였습니다. 확인하여 주십시오.'); alert($member['mb_nick'] . '(' . $member['mb_email'] . ')님께 테스트 메일을 발송하였습니다. 확인하여 주십시오.');
+9 -13
View File
@@ -1,9 +1,10 @@
<?php <?php
$sub_menu = "200300"; $sub_menu = "200300";
include_once('./_common.php'); require_once './_common.php';
if ($w == 'u' || $w == 'd') if ($w == 'u' || $w == 'd') {
check_demo(); check_demo();
}
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
@@ -13,28 +14,23 @@ $ma_id = isset($_POST['ma_id']) ? (int) $_POST['ma_id'] : 0;
$ma_subject = isset($_POST['ma_subject']) ? strip_tags(clean_xss_attributes($_POST['ma_subject'])) : ''; $ma_subject = isset($_POST['ma_subject']) ? strip_tags(clean_xss_attributes($_POST['ma_subject'])) : '';
$ma_content = isset($_POST['ma_content']) ? $_POST['ma_content'] : ''; $ma_content = isset($_POST['ma_content']) ? $_POST['ma_content'] : '';
if ($w == '') if ($w == '') {
{
$sql = " insert {$g5['mail_table']} $sql = " insert {$g5['mail_table']}
set ma_subject = '{$ma_subject}', set ma_subject = '{$ma_subject}',
ma_content = '{$ma_content}', ma_content = '{$ma_content}',
ma_time = '".G5_TIME_YMDHIS."', ma_time = '" . G5_TIME_YMDHIS . "',
ma_ip = '{$_SERVER['REMOTE_ADDR']}' "; ma_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($sql); sql_query($sql);
} } elseif ($w == 'u') {
else if ($w == 'u')
{
$sql = " update {$g5['mail_table']} $sql = " update {$g5['mail_table']}
set ma_subject = '{$ma_subject}', set ma_subject = '{$ma_subject}',
ma_content = '{$ma_content}', ma_content = '{$ma_content}',
ma_time = '".G5_TIME_YMDHIS."', ma_time = '" . G5_TIME_YMDHIS . "',
ma_ip = '{$_SERVER['REMOTE_ADDR']}' ma_ip = '{$_SERVER['REMOTE_ADDR']}'
where ma_id = '{$ma_id}' "; where ma_id = '{$ma_id}' ";
sql_query($sql); sql_query($sql);
} } elseif ($w == 'd') {
else if ($w == 'd') $sql = " delete from {$g5['mail_table']} where ma_id = '{$ma_id}' ";
{
$sql = " delete from {$g5['mail_table']} where ma_id = '{$ma_id}' ";
sql_query($sql); sql_query($sql);
} }
+10 -8
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = "200100"; $sub_menu = "200100";
include_once("./_common.php"); require_once "./_common.php";
check_demo(); check_demo();
@@ -8,21 +8,23 @@ auth_check_menu($auth, $sub_menu, "d");
$mb = isset($_POST['mb_id']) ? get_member($_POST['mb_id']) : array(); $mb = isset($_POST['mb_id']) ? get_member($_POST['mb_id']) : array();
if (! (isset($mb['mb_id']) && $mb['mb_id'])) if (!(isset($mb['mb_id']) && $mb['mb_id'])) {
alert("회원자료가 존재하지 않습니다."); alert("회원자료가 존재하지 않습니다.");
else if ($member['mb_id'] == $mb['mb_id']) } elseif ($member['mb_id'] == $mb['mb_id']) {
alert("로그인 중인 관리자는 삭제 할 수 없습니다."); alert("로그인 중인 관리자는 삭제 할 수 없습니다.");
else if (is_admin($mb['mb_id']) == "super") } elseif (is_admin($mb['mb_id']) == "super") {
alert("최고 관리자는 삭제할 수 없습니다."); alert("최고 관리자는 삭제할 수 없습니다.");
else if ($mb['mb_level'] >= $member['mb_level']) } elseif ($mb['mb_level'] >= $member['mb_level']) {
alert("자신보다 권한이 높거나 같은 회원은 삭제할 수 없습니다."); alert("자신보다 권한이 높거나 같은 회원은 삭제할 수 없습니다.");
}
check_admin_token(); check_admin_token();
// 회원자료 삭제 // 회원자료 삭제
member_delete($mb['mb_id']); member_delete($mb['mb_id']);
if ($url) if (isset($url)) {
goto_url("{$url}?$qstr&amp;w=u&amp;mb_id=$mb_id"); goto_url("{$url}?$qstr&amp;w=u&amp;mb_id=" . $mb['mb_id']);
else } else {
goto_url("./member_list.php?$qstr"); goto_url("./member_list.php?$qstr");
}
+444 -375
View File
@@ -1,50 +1,51 @@
<?php <?php
$sub_menu = "200100"; $sub_menu = "200100";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
$mb = array( $mb = array(
'mb_certify' => null, 'mb_certify' => null,
'mb_adult' => null, 'mb_adult' => null,
'mb_sms' => null, 'mb_sms' => null,
'mb_intercept_date' => null, 'mb_intercept_date' => null,
'mb_id' => null, 'mb_id' => null,
'mb_name' => null, 'mb_name' => null,
'mb_nick' => null, 'mb_nick' => null,
'mb_point' => null, 'mb_point' => null,
'mb_email' => null, 'mb_email' => null,
'mb_homepage' => null, 'mb_homepage' => null,
'mb_hp' => null, 'mb_hp' => null,
'mb_tel' => null, 'mb_tel' => null,
'mb_zip1' => null, 'mb_zip1' => null,
'mb_zip2' => null, 'mb_zip2' => null,
'mb_addr1' => null, 'mb_addr1' => null,
'mb_addr2' => null, 'mb_addr2' => null,
'mb_addr3' => null, 'mb_addr3' => null,
'mb_addr_jibeon' => null, 'mb_addr_jibeon' => null,
'mb_signature' => null, 'mb_signature' => null,
'mb_profile' => null, 'mb_profile' => null,
'mb_memo' => null, 'mb_memo' => null,
'mb_leave_date' => null, 'mb_leave_date' => null,
'mb_1' => null, 'mb_1' => null,
'mb_2' => null, 'mb_2' => null,
'mb_3' => null, 'mb_3' => null,
'mb_4' => null, 'mb_4' => null,
'mb_5' => null, 'mb_5' => null,
'mb_6' => null, 'mb_6' => null,
'mb_7' => null, 'mb_7' => null,
'mb_8' => null, 'mb_8' => null,
'mb_9' => null, 'mb_9' => null,
'mb_10' => null, 'mb_10' => null,
); );
$sound_only = ''; $sound_only = '';
$required_mb_id = '';
$required_mb_id_class = ''; $required_mb_id_class = '';
$required_mb_password = ''; $required_mb_password = '';
$html_title = '';
if ($w == '') if ($w == '') {
{
$required_mb_id = 'required'; $required_mb_id = 'required';
$required_mb_id_class = 'required alnum_'; $required_mb_id_class = 'required alnum_';
$required_mb_password = 'required'; $required_mb_password = 'required';
@@ -54,15 +55,15 @@ if ($w == '')
$mb['mb_open'] = 1; $mb['mb_open'] = 1;
$mb['mb_level'] = $config['cf_register_level']; $mb['mb_level'] = $config['cf_register_level'];
$html_title = '추가'; $html_title = '추가';
} } elseif ($w == 'u') {
else if ($w == 'u')
{
$mb = get_member($mb_id); $mb = get_member($mb_id);
if (!$mb['mb_id']) if (!$mb['mb_id']) {
alert('존재하지 않는 회원자료입니다.'); alert('존재하지 않는 회원자료입니다.');
}
if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level']) if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level']) {
alert('자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.'); alert('자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.');
}
$required_mb_id = 'readonly'; $required_mb_id = 'readonly';
$html_title = '수정'; $html_title = '수정';
@@ -90,12 +91,16 @@ else if ($w == 'u')
$mb['mb_8'] = get_text($mb['mb_8']); $mb['mb_8'] = get_text($mb['mb_8']);
$mb['mb_9'] = get_text($mb['mb_9']); $mb['mb_9'] = get_text($mb['mb_9']);
$mb['mb_10'] = get_text($mb['mb_10']); $mb['mb_10'] = get_text($mb['mb_10']);
} } else {
else
alert('제대로 된 값이 넘어오지 않았습니다.'); alert('제대로 된 값이 넘어오지 않았습니다.');
}
// 본인확인방법 // 본인확인방법
switch($mb['mb_certify']) { switch ($mb['mb_certify']) {
case 'simple':
$mb_certify_case = '간편인증';
$mb_certify_val = 'simple';
break;
case 'hp': case 'hp':
$mb_certify_case = '휴대폰'; $mb_certify_case = '휴대폰';
$mb_certify_val = 'hp'; $mb_certify_val = 'hp';
@@ -143,380 +148,444 @@ if (isset($mb['mb_certify'])) {
sql_query(" ALTER TABLE `{$g5['member_table']}` ADD `mb_certify` TINYINT(4) NOT NULL DEFAULT '0' AFTER `mb_hp` ", false); sql_query(" ALTER TABLE `{$g5['member_table']}` ADD `mb_certify` TINYINT(4) NOT NULL DEFAULT '0' AFTER `mb_hp` ", false);
} }
if(isset($mb['mb_adult'])) { if (isset($mb['mb_adult'])) {
sql_query(" ALTER TABLE `{$g5['member_table']}` CHANGE `mb_adult` `mb_adult` TINYINT(4) NOT NULL DEFAULT '0' ", false); sql_query(" ALTER TABLE `{$g5['member_table']}` CHANGE `mb_adult` `mb_adult` TINYINT(4) NOT NULL DEFAULT '0' ", false);
} else { } else {
sql_query(" ALTER TABLE `{$g5['member_table']}` ADD `mb_adult` TINYINT NOT NULL DEFAULT '0' AFTER `mb_certify` ", false); sql_query(" ALTER TABLE `{$g5['member_table']}` ADD `mb_adult` TINYINT NOT NULL DEFAULT '0' AFTER `mb_certify` ", false);
} }
// 지번주소 필드추가 // 지번주소 필드추가
if(!isset($mb['mb_addr_jibeon'])) { if (!isset($mb['mb_addr_jibeon'])) {
sql_query(" ALTER TABLE {$g5['member_table']} ADD `mb_addr_jibeon` varchar(255) NOT NULL DEFAULT '' AFTER `mb_addr2` ", false); sql_query(" ALTER TABLE {$g5['member_table']} ADD `mb_addr_jibeon` varchar(255) NOT NULL DEFAULT '' AFTER `mb_addr2` ", false);
} }
// 건물명필드추가 // 건물명필드추가
if(!isset($mb['mb_addr3'])) { if (!isset($mb['mb_addr3'])) {
sql_query(" ALTER TABLE {$g5['member_table']} ADD `mb_addr3` varchar(255) NOT NULL DEFAULT '' AFTER `mb_addr2` ", false); sql_query(" ALTER TABLE {$g5['member_table']} ADD `mb_addr3` varchar(255) NOT NULL DEFAULT '' AFTER `mb_addr2` ", false);
} }
// 중복가입 확인필드 추가 // 중복가입 확인필드 추가
if(!isset($mb['mb_dupinfo'])) { if (!isset($mb['mb_dupinfo'])) {
sql_query(" ALTER TABLE {$g5['member_table']} ADD `mb_dupinfo` varchar(255) NOT NULL DEFAULT '' AFTER `mb_adult` ", false); sql_query(" ALTER TABLE {$g5['member_table']} ADD `mb_dupinfo` varchar(255) NOT NULL DEFAULT '' AFTER `mb_adult` ", false);
} }
// 이메일인증 체크 필드추가 // 이메일인증 체크 필드추가
if(!isset($mb['mb_email_certify2'])) { if (!isset($mb['mb_email_certify2'])) {
sql_query(" ALTER TABLE {$g5['member_table']} ADD `mb_email_certify2` varchar(255) NOT NULL DEFAULT '' AFTER `mb_email_certify` ", false); sql_query(" ALTER TABLE {$g5['member_table']} ADD `mb_email_certify2` varchar(255) NOT NULL DEFAULT '' AFTER `mb_email_certify` ", false);
} }
if ($mb['mb_intercept_date']) $g5['title'] = "차단된 "; // 본인인증 내역 테이블 정보가 dbconfig에 없으면 소셜 테이블 정의
else $g5['title'] .= ""; if (!isset($g5['member_cert_history'])) {
$g5['title'] .= '회원 '.$html_title; $g5['member_cert_history_table'] = G5_TABLE_PREFIX . 'member_cert_history';
include_once('./admin.head.php'); }
// 멤버 본인인증 정보 변경 내역 테이블 없을 경우 생성
if (isset($g5['member_cert_history_table']) && !sql_query(" DESC {$g5['member_cert_history_table']} ", false)) {
sql_query(
" CREATE TABLE IF NOT EXISTS `{$g5['member_cert_history_table']}` (
`ch_id` int(11) NOT NULL auto_increment,
`mb_id` varchar(20) NOT NULL DEFAULT '',
`ch_name` varchar(255) NOT NULL DEFAULT '',
`ch_hp` varchar(255) NOT NULL DEFAULT '',
`ch_birth` varchar(255) NOT NULL DEFAULT '',
`ch_type` varchar(20) NOT NULL DEFAULT '',
`ch_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (`ch_id`),
KEY `mb_id` (`mb_id`)
) ",
true
);
}
$mb_cert_history = '';
if (isset($mb_id) && $mb_id) {
$sql = "select * from {$g5['member_cert_history_table']} where mb_id = '{$mb_id}' order by ch_id asc";
$mb_cert_history = sql_query($sql);
}
if ($mb['mb_intercept_date']) {
$g5['title'] = "차단된 ";
} else {
$g5['title'] .= "";
}
$g5['title'] .= '회원 ' . $html_title;
require_once './admin.head.php';
// add_javascript('js 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨 // add_javascript('js 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
?> ?>
<form name="fmember" id="fmember" action="./member_form_update.php" onsubmit="return fmember_submit(this);" method="post" enctype="multipart/form-data"> <form name="fmember" id="fmember" action="./member_form_update.php" onsubmit="return fmember_submit(this);" method="post" enctype="multipart/form-data">
<input type="hidden" name="w" value="<?php echo $w ?>"> <input type="hidden" name="w" value="<?php echo $w ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?></caption> <caption><?php echo $g5['title']; ?></caption>
<colgroup> <colgroup>
<col class="grid_4"> <col class="grid_4">
<col> <col>
<col class="grid_4"> <col class="grid_4">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="mb_id">아이디<?php echo $sound_only ?></label></th> <th scope="row"><label for="mb_id">아이디<?php echo $sound_only ?></label></th>
<td> <td>
<input type="text" name="mb_id" value="<?php echo $mb['mb_id'] ?>" id="mb_id" <?php echo $required_mb_id ?> class="frm_input <?php echo $required_mb_id_class ?>" size="15" maxlength="20"> <input type="text" name="mb_id" value="<?php echo $mb['mb_id'] ?>" id="mb_id" <?php echo $required_mb_id ?> class="frm_input <?php echo $required_mb_id_class ?>" size="15" maxlength="20">
<?php if ($w=='u'){ ?><a href="./boardgroupmember_form.php?mb_id=<?php echo $mb['mb_id'] ?>" class="btn_frmline">접근가능그룹보기</a><?php } ?> <?php if ($w == 'u') { ?><a href="./boardgroupmember_form.php?mb_id=<?php echo $mb['mb_id'] ?>" class="btn_frmline">접근가능그룹보기</a><?php } ?>
</td> </td>
<th scope="row"><label for="mb_password">비밀번호<?php echo $sound_only ?></label></th> <th scope="row"><label for="mb_password">비밀번호<?php echo $sound_only ?></label></th>
<td><input type="password" name="mb_password" id="mb_password" <?php echo $required_mb_password ?> class="frm_input <?php echo $required_mb_password ?>" size="15" maxlength="20"></td> <td><input type="password" name="mb_password" id="mb_password" <?php echo $required_mb_password ?> class="frm_input <?php echo $required_mb_password ?>" size="15" maxlength="20"></td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="mb_name">이름(실명)<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="mb_name">이름(실명)<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="mb_name" value="<?php echo $mb['mb_name'] ?>" id="mb_name" required class="required frm_input" size="15" maxlength="20"></td> <td><input type="text" name="mb_name" value="<?php echo $mb['mb_name'] ?>" id="mb_name" required class="required frm_input" size="15" maxlength="20"></td>
<th scope="row"><label for="mb_nick">닉네임<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="mb_nick">닉네임<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="mb_nick" value="<?php echo $mb['mb_nick'] ?>" id="mb_nick" required class="required frm_input" size="15" maxlength="20"></td> <td><input type="text" name="mb_nick" value="<?php echo $mb['mb_nick'] ?>" id="mb_nick" required class="required frm_input" size="15" maxlength="20"></td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="mb_level">회원 권한</label></th> <th scope="row"><label for="mb_level">회원 권한</label></th>
<td><?php echo get_member_level_select('mb_level', 1, $member['mb_level'], $mb['mb_level']) ?></td> <td><?php echo get_member_level_select('mb_level', 1, $member['mb_level'], $mb['mb_level']) ?></td>
<th scope="row">포인트</th> <th scope="row">포인트</th>
<td><a href="./point_list.php?sfl=mb_id&amp;stx=<?php echo $mb['mb_id'] ?>" target="_blank"><?php echo number_format($mb['mb_point']) ?></a> 점</td> <td><a href="./point_list.php?sfl=mb_id&amp;stx=<?php echo $mb['mb_id'] ?>" target="_blank"><?php echo number_format($mb['mb_point']) ?></a> 점</td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="mb_email">E-mail<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="mb_email" value="<?php echo $mb['mb_email'] ?>" id="mb_email" maxlength="100" required class="required frm_input email" size="30"></td> <td><input type="text" name="mb_email" value="<?php echo $mb['mb_email'] ?>" id="mb_email" maxlength="100" required class="required frm_input email" size="30"></td>
<th scope="row"><label for="mb_homepage">홈페이지</label></th> <th scope="row"><label for="mb_homepage">홈페이지</label></th>
<td><input type="text" name="mb_homepage" value="<?php echo $mb['mb_homepage'] ?>" id="mb_homepage" class="frm_input" maxlength="255" size="15"></td> <td><input type="text" name="mb_homepage" value="<?php echo $mb['mb_homepage'] ?>" id="mb_homepage" class="frm_input" maxlength="255" size="15"></td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="mb_hp">휴대폰번호</label></th> <th scope="row"><label for="mb_hp">휴대폰번호</label></th>
<td><input type="text" name="mb_hp" value="<?php echo $mb['mb_hp'] ?>" id="mb_hp" class="frm_input" size="15" maxlength="20"></td> <td><input type="text" name="mb_hp" value="<?php echo $mb['mb_hp'] ?>" id="mb_hp" class="frm_input" size="15" maxlength="20"></td>
<th scope="row"><label for="mb_tel">전화번호</label></th> <th scope="row"><label for="mb_tel">전화번호</label></th>
<td><input type="text" name="mb_tel" value="<?php echo $mb['mb_tel'] ?>" id="mb_tel" class="frm_input" size="15" maxlength="20"></td> <td><input type="text" name="mb_tel" value="<?php echo $mb['mb_tel'] ?>" id="mb_tel" class="frm_input" size="15" maxlength="20"></td>
</tr> </tr>
<tr> <tr>
<th scope="row">본인확인방법</th> <th scope="row">본인확인방법</th>
<td colspan="3"> <td colspan="3">
<input type="radio" name="mb_certify_case" value="ipin" id="mb_certify_ipin" <?php if($mb['mb_certify'] == 'ipin') echo 'checked="checked"'; ?>> <input type="radio" name="mb_certify_case" value="simple" id="mb_certify_sa" <?php if ($mb['mb_certify'] == 'simple') { echo 'checked="checked"'; } ?>>
<label for="mb_certify_ipin">아이핀</label> <label for="mb_certify_sa">간편인증</label>
<input type="radio" name="mb_certify_case" value="hp" id="mb_certify_hp" <?php if($mb['mb_certify'] == 'hp') echo 'checked="checked"'; ?>> <input type="radio" name="mb_certify_case" value="hp" id="mb_certify_hp" <?php if ($mb['mb_certify'] == 'hp') { echo 'checked="checked"'; } ?>>
<label for="mb_certify_hp">휴대폰</label> <label for="mb_certify_hp">휴대폰</label>
</td> <input type="radio" name="mb_certify_case" value="ipin" id="mb_certify_ipin" <?php if ($mb['mb_certify'] == 'ipin') { echo 'checked="checked"'; } ?>>
</tr> <label for="mb_certify_ipin">아이핀</label>
<tr> </td>
<th scope="row">본인확인</th> </tr>
<td> <tr>
<input type="radio" name="mb_certify" value="1" id="mb_certify_yes" <?php echo $mb_certify_yes; ?>> <th scope="row">본인확인</th>
<label for="mb_certify_yes">예</label> <td>
<input type="radio" name="mb_certify" value="" id="mb_certify_no" <?php echo $mb_certify_no; ?>> <input type="radio" name="mb_certify" value="1" id="mb_certify_yes" <?php echo $mb_certify_yes; ?>>
<label for="mb_certify_no">아니오</label> <label for="mb_certify_yes">예</label>
</td> <input type="radio" name="mb_certify" value="0" id="mb_certify_no" <?php echo $mb_certify_no; ?>>
<th scope="row">성인인증</th> <label for="mb_certify_no">아니오</label>
<td> </td>
<input type="radio" name="mb_adult" value="1" id="mb_adult_yes" <?php echo $mb_adult_yes; ?>> <th scope="row">성인인증</th>
<label for="mb_adult_yes">예</label> <td>
<input type="radio" name="mb_adult" value="0" id="mb_adult_no" <?php echo $mb_adult_no; ?>> <input type="radio" name="mb_adult" value="1" id="mb_adult_yes" <?php echo $mb_adult_yes; ?>>
<label for="mb_adult_no">아니오</label> <label for="mb_adult_yes">예</label>
</td> <input type="radio" name="mb_adult" value="0" id="mb_adult_no" <?php echo $mb_adult_no; ?>>
</tr> <label for="mb_adult_no">아니오</label>
<tr> </td>
<th scope="row">주소</th> </tr>
<td colspan="3" class="td_addr_line"> <tr>
<label for="mb_zip" class="sound_only">우편번호</label> <th scope="row">주소</th>
<input type="text" name="mb_zip" value="<?php echo $mb['mb_zip1'].$mb['mb_zip2']; ?>" id="mb_zip" class="frm_input readonly" size="5" maxlength="6"> <td colspan="3" class="td_addr_line">
<button type="button" class="btn_frmline" onclick="win_zip('fmember', 'mb_zip', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');">주소 검색</button><br> <label for="mb_zip" class="sound_only">우편번호</label>
<input type="text" name="mb_addr1" value="<?php echo $mb['mb_addr1'] ?>" id="mb_addr1" class="frm_input readonly" size="60"> <input type="text" name="mb_zip" value="<?php echo $mb['mb_zip1'] . $mb['mb_zip2']; ?>" id="mb_zip" class="frm_input readonly" size="5" maxlength="6">
<label for="mb_addr1">기본주소</label><br> <button type="button" class="btn_frmline" onclick="win_zip('fmember', 'mb_zip', 'mb_addr1', 'mb_addr2', 'mb_addr3', 'mb_addr_jibeon');">주소 검색</button><br>
<input type="text" name="mb_addr2" value="<?php echo $mb['mb_addr2'] ?>" id="mb_addr2" class="frm_input" size="60"> <input type="text" name="mb_addr1" value="<?php echo $mb['mb_addr1'] ?>" id="mb_addr1" class="frm_input readonly" size="60">
<label for="mb_addr2">상세주소</label> <label for="mb_addr1">기본주소</label><br>
<br> <input type="text" name="mb_addr2" value="<?php echo $mb['mb_addr2'] ?>" id="mb_addr2" class="frm_input" size="60">
<input type="text" name="mb_addr3" value="<?php echo $mb['mb_addr3'] ?>" id="mb_addr3" class="frm_input" size="60"> <label for="mb_addr2">상세주소</label>
<label for="mb_addr3">참고항목</label> <br>
<input type="hidden" name="mb_addr_jibeon" value="<?php echo $mb['mb_addr_jibeon']; ?>"><br> <input type="text" name="mb_addr3" value="<?php echo $mb['mb_addr3'] ?>" id="mb_addr3" class="frm_input" size="60">
</td> <label for="mb_addr3">참고항목</label>
</tr> <input type="hidden" name="mb_addr_jibeon" value="<?php echo $mb['mb_addr_jibeon']; ?>"><br>
<tr> </td>
<th scope="row"><label for="mb_icon">회원아이콘</label></th> </tr>
<td colspan="3"> <tr>
<?php echo help('이미지 크기는 <strong>넓이 '.$config['cf_member_icon_width'].'픽셀 높이 '.$config['cf_member_icon_height'].'픽셀</strong>로 해주세요.') ?> <th scope="row"><label for="mb_icon">회원아이콘</label></th>
<input type="file" name="mb_icon" id="mb_icon"> <td colspan="3">
<?php <?php echo help('이미지 크기는 <strong>넓이 ' . $config['cf_member_icon_width'] . '픽셀 높이 ' . $config['cf_member_icon_height'] . '픽셀</strong>로 해주세요.') ?>
$mb_dir = substr($mb['mb_id'],0,2); <input type="file" name="mb_icon" id="mb_icon">
$icon_file = G5_DATA_PATH.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb['mb_id']).'.gif'; <?php
if (file_exists($icon_file)) { $mb_dir = substr($mb['mb_id'], 0, 2);
$icon_url = str_replace(G5_DATA_PATH, G5_DATA_URL, $icon_file); $icon_file = G5_DATA_PATH . '/member/' . $mb_dir . '/' . get_mb_icon_name($mb['mb_id']) . '.gif';
$icon_filemtile = (defined('G5_USE_MEMBER_IMAGE_FILETIME') && G5_USE_MEMBER_IMAGE_FILETIME) ? '?'.filemtime($icon_file) : ''; if (file_exists($icon_file)) {
echo '<img src="'.$icon_url.$icon_filemtile.'" alt="">'; $icon_url = str_replace(G5_DATA_PATH, G5_DATA_URL, $icon_file);
echo '<input type="checkbox" id="del_mb_icon" name="del_mb_icon" value="1">삭제'; $icon_filemtile = (defined('G5_USE_MEMBER_IMAGE_FILETIME') && G5_USE_MEMBER_IMAGE_FILETIME) ? '?' . filemtime($icon_file) : '';
} echo '<img src="' . $icon_url . $icon_filemtile . '" alt="">';
?> echo '<input type="checkbox" id="del_mb_icon" name="del_mb_icon" value="1">삭제';
</td>
</tr>
<tr>
<th scope="row"><label for="mb_img">회원이미지</label></th>
<td colspan="3">
<?php echo help('이미지 크기는 <strong>넓이 '.$config['cf_member_img_width'].'픽셀 높이 '.$config['cf_member_img_height'].'픽셀</strong>로 해주세요.') ?>
<input type="file" name="mb_img" id="mb_img">
<?php
$mb_dir = substr($mb['mb_id'],0,2);
$icon_file = G5_DATA_PATH.'/member_image/'.$mb_dir.'/'.get_mb_icon_name($mb['mb_id']).'.gif';
if (file_exists($icon_file)) {
echo get_member_profile_img($mb['mb_id']);
echo '<input type="checkbox" id="del_mb_img" name="del_mb_img" value="1">삭제';
}
?>
</td>
</tr>
<tr>
<th scope="row">메일 수신</th>
<td>
<input type="radio" name="mb_mailling" value="1" id="mb_mailling_yes" <?php echo $mb_mailling_yes; ?>>
<label for="mb_mailling_yes">예</label>
<input type="radio" name="mb_mailling" value="0" id="mb_mailling_no" <?php echo $mb_mailling_no; ?>>
<label for="mb_mailling_no">아니오</label>
</td>
<th scope="row"><label for="mb_sms_yes">SMS 수신</label></th>
<td>
<input type="radio" name="mb_sms" value="1" id="mb_sms_yes" <?php echo $mb_sms_yes; ?>>
<label for="mb_sms_yes">예</label>
<input type="radio" name="mb_sms" value="0" id="mb_sms_no" <?php echo $mb_sms_no; ?>>
<label for="mb_sms_no">아니오</label>
</td>
</tr>
<tr>
<th scope="row">정보 공개</th>
<td colspan="3">
<input type="radio" name="mb_open" value="1" id="mb_open_yes" <?php echo $mb_open_yes; ?>>
<label for="mb_open_yes">예</label>
<input type="radio" name="mb_open" value="0" id="mb_open_no" <?php echo $mb_open_no; ?>>
<label for="mb_open_no">아니오</label>
</td>
</tr>
<tr>
<th scope="row"><label for="mb_signature">서명</label></th>
<td colspan="3"><textarea name="mb_signature" id="mb_signature"><?php echo $mb['mb_signature'] ?></textarea></td>
</tr>
<tr>
<th scope="row"><label for="mb_profile">자기 소개</label></th>
<td colspan="3"><textarea name="mb_profile" id="mb_profile"><?php echo $mb['mb_profile'] ?></textarea></td>
</tr>
<tr>
<th scope="row"><label for="mb_memo">메모</label></th>
<td colspan="3"><textarea name="mb_memo" id="mb_memo"><?php echo $mb['mb_memo'] ?></textarea></td>
</tr>
<?php if ($w == 'u') { ?>
<tr>
<th scope="row">회원가입일</th>
<td><?php echo $mb['mb_datetime'] ?></td>
<th scope="row">최근접속일</th>
<td><?php echo $mb['mb_today_login'] ?></td>
</tr>
<tr>
<th scope="row">IP</th>
<td colspan="3"><?php echo $mb['mb_ip'] ?></td>
</tr>
<?php if ($config['cf_use_email_certify']) { ?>
<tr>
<th scope="row">인증일시</th>
<td colspan="3">
<?php if ($mb['mb_email_certify'] == '0000-00-00 00:00:00') { ?>
<?php echo help('회원님이 메일을 수신할 수 없는 경우 등에 직접 인증처리를 하실 수 있습니다.') ?>
<input type="checkbox" name="passive_certify" id="passive_certify">
<label for="passive_certify">수동인증</label>
<?php } else { ?>
<?php echo $mb['mb_email_certify'] ?>
<?php } ?>
</td>
</tr>
<?php } ?>
<?php } ?>
<?php if ($config['cf_use_recommend']) { // 추천인 사용 ?>
<tr>
<th scope="row">추천인</th>
<td colspan="3"><?php echo ($mb['mb_recommend'] ? get_text($mb['mb_recommend']) : '없음'); // 081022 : CSRF 보안 결함으로 인한 코드 수정 ?></td>
</tr>
<?php } ?>
<tr>
<th scope="row"><label for="mb_leave_date">탈퇴일자</label></th>
<td>
<input type="text" name="mb_leave_date" value="<?php echo $mb['mb_leave_date'] ?>" id="mb_leave_date" class="frm_input" maxlength="8">
<input type="checkbox" value="<?php echo date("Ymd"); ?>" id="mb_leave_date_set_today" onclick="if (this.form.mb_leave_date.value==this.form.mb_leave_date.defaultValue) {
this.form.mb_leave_date.value=this.value; } else { this.form.mb_leave_date.value=this.form.mb_leave_date.defaultValue; }">
<label for="mb_leave_date_set_today">탈퇴일을 오늘로 지정</label>
</td>
<th scope="row">접근차단일자</th>
<td>
<input type="text" name="mb_intercept_date" value="<?php echo $mb['mb_intercept_date'] ?>" id="mb_intercept_date" class="frm_input" maxlength="8">
<input type="checkbox" value="<?php echo date("Ymd"); ?>" id="mb_intercept_date_set_today" onclick="if
(this.form.mb_intercept_date.value==this.form.mb_intercept_date.defaultValue) { this.form.mb_intercept_date.value=this.value; } else {
this.form.mb_intercept_date.value=this.form.mb_intercept_date.defaultValue; }">
<label for="mb_intercept_date_set_today">접근차단일을 오늘로 지정</label>
</td>
</tr>
<?php
//소셜계정이 있다면
if(function_exists('social_login_link_account') && $mb['mb_id'] ){
if( $my_social_accounts = social_login_link_account($mb['mb_id'], false, 'get_data') ){ ?>
<tr>
<th>소셜계정목록</th>
<td colspan="3">
<ul class="social_link_box">
<li class="social_login_container">
<h4>연결된 소셜 계정 목록</h4>
<?php foreach($my_social_accounts as $account){ //반복문
if( empty($account) ) continue;
$provider = strtolower($account['provider']);
$provider_name = social_get_provider_service_name($provider);
?>
<div class="account_provider" data-mpno="social_<?php echo $account['mp_no'];?>" >
<div class="sns-wrap-32 sns-wrap-over">
<span class="sns-icon sns-<?php echo $provider; ?>" title="<?php echo $provider_name; ?>">
<span class="ico"></span>
<span class="txt"><?php echo $provider_name; ?></span>
</span>
<span class="provider_name"><?php echo $provider_name; //서비스이름?> ( <?php echo $account['displayname']; ?> )</span>
<span class="account_hidden" style="display:none"><?php echo $account['mb_id']; ?></span>
</div>
<div class="btn_info"><a href="<?php echo G5_SOCIAL_LOGIN_URL.'/unlink.php?mp_no='.$account['mp_no'] ?>" class="social_unlink" data-provider="<?php echo $account['mp_no'];?>" >연동해제</a> <span class="sound_only"><?php echo substr($account['mp_register_day'], 2, 14); ?></span></div>
</div>
<?php } //end foreach ?>
</li>
</ul>
<script>
jQuery(function($){
$(".account_provider").on("click", ".social_unlink", function(e){
e.preventDefault();
if (!confirm('정말 이 계정 연결을 삭제하시겠습니까?')) {
return false;
}
var ajax_url = "<?php echo G5_SOCIAL_LOGIN_URL.'/unlink.php' ?>";
var mb_id = '',
mp_no = $(this).attr("data-provider"),
$mp_el = $(this).parents(".account_provider");
mb_id = $mp_el.find(".account_hidden").text();
if( ! mp_no ){
alert('잘못된 요청! mp_no 값이 없습니다.');
return;
}
$.ajax({
url: ajax_url,
type: 'POST',
data: {
'mp_no': mp_no,
'mb_id': mb_id
},
dataType: 'json',
async: false,
success: function(data, textStatus) {
if (data.error) {
alert(data.error);
return false;
} else {
alert("연결이 해제 되었습니다.");
$mp_el.fadeOut("normal", function() {
$(this).remove();
});
} }
} ?>
}); </td>
</tr>
<tr>
<th scope="row"><label for="mb_img">회원이미지</label></th>
<td colspan="3">
<?php echo help('이미지 크기는 <strong>넓이 ' . $config['cf_member_img_width'] . '픽셀 높이 ' . $config['cf_member_img_height'] . '픽셀</strong>로 해주세요.') ?>
<input type="file" name="mb_img" id="mb_img">
<?php
$mb_dir = substr($mb['mb_id'], 0, 2);
$icon_file = G5_DATA_PATH . '/member_image/' . $mb_dir . '/' . get_mb_icon_name($mb['mb_id']) . '.gif';
if (file_exists($icon_file)) {
echo get_member_profile_img($mb['mb_id']);
echo '<input type="checkbox" id="del_mb_img" name="del_mb_img" value="1">삭제';
}
?>
</td>
</tr>
<tr>
<th scope="row">메일 수신</th>
<td>
<input type="radio" name="mb_mailling" value="1" id="mb_mailling_yes" <?php echo $mb_mailling_yes; ?>>
<label for="mb_mailling_yes">예</label>
<input type="radio" name="mb_mailling" value="0" id="mb_mailling_no" <?php echo $mb_mailling_no; ?>>
<label for="mb_mailling_no">아니오</label>
</td>
<th scope="row"><label for="mb_sms_yes">SMS 수신</label></th>
<td>
<input type="radio" name="mb_sms" value="1" id="mb_sms_yes" <?php echo $mb_sms_yes; ?>>
<label for="mb_sms_yes">예</label>
<input type="radio" name="mb_sms" value="0" id="mb_sms_no" <?php echo $mb_sms_no; ?>>
<label for="mb_sms_no">아니오</label>
</td>
</tr>
<tr>
<th scope="row">정보 공개</th>
<td colspan="3">
<input type="radio" name="mb_open" value="1" id="mb_open_yes" <?php echo $mb_open_yes; ?>>
<label for="mb_open_yes">예</label>
<input type="radio" name="mb_open" value="0" id="mb_open_no" <?php echo $mb_open_no; ?>>
<label for="mb_open_no">아니오</label>
</td>
</tr>
<tr>
<th scope="row"><label for="mb_signature">서명</label></th>
<td colspan="3"><textarea name="mb_signature" id="mb_signature"><?php echo $mb['mb_signature'] ?></textarea></td>
</tr>
<tr>
<th scope="row"><label for="mb_profile">자기 소개</label></th>
<td colspan="3"><textarea name="mb_profile" id="mb_profile"><?php echo $mb['mb_profile'] ?></textarea></td>
</tr>
<tr>
<th scope="row"><label for="mb_memo">메모</label></th>
<td colspan="3"><textarea name="mb_memo" id="mb_memo"><?php echo $mb['mb_memo'] ?></textarea></td>
</tr>
<tr>
<th scope="row"><label for="mb_cert_history">본인인증 내역</label></th>
<td colspan="3">
<?php
$cnt = 0;
while ($row = sql_fetch_array($mb_cert_history)) {
$cnt++;
$cert_type = '';
switch ($row['ch_type']) {
case 'simple':
$cert_type = '간편인증';
break;
case 'hp':
$cert_type = '휴대폰';
break;
case 'ipin':
$cert_type = '아이핀';
break;
}
?>
<div>
[<?php echo $row['ch_datetime']; ?>]
<?php echo $row['mb_id']; ?> /
<?php echo $row['ch_name']; ?> /
<?php echo $row['ch_hp']; ?> /
<?php echo $cert_type; ?>
</div>
<?php } ?>
return; <?php if ($cnt == 0) { ?>
}); 본인인증 내역이 없습니다.
}); <?php } ?>
</script> </td>
</tr>
</td> <?php if ($w == 'u') { ?>
</tr> <tr>
<th scope="row">회원가입일</th>
<td><?php echo $mb['mb_datetime'] ?></td>
<th scope="row">최근접속일</th>
<td><?php echo $mb['mb_today_login'] ?></td>
</tr>
<tr>
<th scope="row">IP</th>
<td colspan="3"><?php echo $mb['mb_ip'] ?></td>
</tr>
<?php if ($config['cf_use_email_certify']) { ?>
<tr>
<th scope="row">인증일시</th>
<td colspan="3">
<?php if ($mb['mb_email_certify'] == '0000-00-00 00:00:00') { ?>
<?php echo help('회원님이 메일을 수신할 수 없는 경우 등에 직접 인증처리를 하실 수 있습니다.') ?>
<input type="checkbox" name="passive_certify" id="passive_certify">
<label for="passive_certify">수동인증</label>
<?php } else { ?>
<?php echo $mb['mb_email_certify'] ?>
<?php } ?>
</td>
</tr>
<?php } ?>
<?php } ?>
<?php <?php if ($config['cf_use_recommend']) { // 추천인 사용 ?>
} //end if <tr>
} //end if <th scope="row">추천인</th>
<td colspan="3"><?php echo ($mb['mb_recommend'] ? get_text($mb['mb_recommend']) : '없음'); // 081022 : CSRF 보안 결함으로 인한 코드 수정 ?></td>
</tr>
<?php } ?>
run_event('admin_member_form_add', $mb, $w, 'table'); <tr>
?> <th scope="row"><label for="mb_leave_date">탈퇴일자</label></th>
<td>
<input type="text" name="mb_leave_date" value="<?php echo $mb['mb_leave_date'] ?>" id="mb_leave_date" class="frm_input" maxlength="8">
<input type="checkbox" value="<?php echo date("Ymd"); ?>" id="mb_leave_date_set_today" onclick="if (this.form.mb_leave_date.value==this.form.mb_leave_date.defaultValue) { this.form.mb_leave_date.value=this.value; } else { this.form.mb_leave_date.value=this.form.mb_leave_date.defaultValue; }">
<label for="mb_leave_date_set_today">탈퇴일을 오늘로 지정</label>
</td>
<th scope="row">접근차단일자</th>
<td>
<input type="text" name="mb_intercept_date" value="<?php echo $mb['mb_intercept_date'] ?>" id="mb_intercept_date" class="frm_input" maxlength="8">
<input type="checkbox" value="<?php echo date("Ymd"); ?>" id="mb_intercept_date_set_today" onclick="if (this.form.mb_intercept_date.value==this.form.mb_intercept_date.defaultValue) { this.form.mb_intercept_date.value=this.value; } else { this.form.mb_intercept_date.value=this.form.mb_intercept_date.defaultValue; }">
<label for="mb_intercept_date_set_today">접근차단일을 오늘로 지정</label>
</td>
</tr>
<?php for ($i=1; $i<=10; $i++) { ?> <?php
<tr> //소셜계정이 있다면
<th scope="row"><label for="mb_<?php echo $i ?>">여분 필드 <?php echo $i ?></label></th> if (function_exists('social_login_link_account') && $mb['mb_id']) {
<td colspan="3"><input type="text" name="mb_<?php echo $i ?>" value="<?php echo $mb['mb_'.$i] ?>" id="mb_<?php echo $i ?>" class="frm_input" size="30" maxlength="255"></td> if ($my_social_accounts = social_login_link_account($mb['mb_id'], false, 'get_data')) { ?>
</tr> <tr>
<?php } ?> <th>소셜계정목록</th>
<td colspan="3">
<ul class="social_link_box">
<li class="social_login_container">
<h4>연결된 소셜 계정 목록</h4>
<?php foreach ($my_social_accounts as $account) { //반복문
if (empty($account)) {
continue;
}
</tbody> $provider = strtolower($account['provider']);
</table> $provider_name = social_get_provider_service_name($provider);
</div> ?>
<div class="account_provider" data-mpno="social_<?php echo $account['mp_no']; ?>">
<div class="sns-wrap-32 sns-wrap-over">
<span class="sns-icon sns-<?php echo $provider; ?>" title="<?php echo $provider_name; ?>">
<span class="ico"></span>
<span class="txt"><?php echo $provider_name; ?></span>
</span>
<div class="btn_fixed_top"> <span class="provider_name"><?php echo $provider_name; //서비스이름 ?> ( <?php echo $account['displayname']; ?> )</span>
<a href="./member_list.php?<?php echo $qstr ?>" class="btn btn_02">목록</a> <span class="account_hidden" style="display:none"><?php echo $account['mb_id']; ?></span>
<input type="submit" value="확인" class="btn_submit btn" accesskey='s'> </div>
</div> <div class="btn_info"><a href="<?php echo G5_SOCIAL_LOGIN_URL . '/unlink.php?mp_no=' . $account['mp_no'] ?>" class="social_unlink" data-provider="<?php echo $account['mp_no']; ?>">연동해제</a> <span class="sound_only"><?php echo substr($account['mp_register_day'], 2, 14); ?></span></div>
</div>
<?php } //end foreach ?>
</li>
</ul>
<script>
jQuery(function($) {
$(".account_provider").on("click", ".social_unlink", function(e) {
e.preventDefault();
if (!confirm('정말 이 계정 연결을 삭제하시겠습니까?')) {
return false;
}
var ajax_url = "<?php echo G5_SOCIAL_LOGIN_URL . '/unlink.php' ?>";
var mb_id = '',
mp_no = $(this).attr("data-provider"),
$mp_el = $(this).parents(".account_provider");
mb_id = $mp_el.find(".account_hidden").text();
if (!mp_no) {
alert('잘못된 요청! mp_no 값이 없습니다.');
return;
}
$.ajax({
url: ajax_url,
type: 'POST',
data: {
'mp_no': mp_no,
'mb_id': mb_id
},
dataType: 'json',
async: false,
success: function(data, textStatus) {
if (data.error) {
alert(data.error);
return false;
} else {
alert("연결이 해제 되었습니다.");
$mp_el.fadeOut("normal", function() {
$(this).remove();
});
}
}
});
return;
});
});
</script>
</td>
</tr>
<?php
} //end if
} //end if
run_event('admin_member_form_add', $mb, $w, 'table');
?>
<?php for ($i = 1; $i <= 10; $i++) { ?>
<tr>
<th scope="row"><label for="mb_<?php echo $i ?>">여분 필드 <?php echo $i ?></label></th>
<td colspan="3"><input type="text" name="mb_<?php echo $i ?>" value="<?php echo $mb['mb_' . $i] ?>" id="mb_<?php echo $i ?>" class="frm_input" size="30" maxlength="255"></td>
</tr>
<?php } ?>
</tbody>
</table>
</div>
<div class="btn_fixed_top">
<a href="./member_list.php?<?php echo $qstr ?>" class="btn btn_02">목록</a>
<input type="submit" value="확인" class="btn_submit btn" accesskey='s'>
</div>
</form> </form>
<script> <script>
function fmember_submit(f) function fmember_submit(f) {
{ if (!f.mb_icon.value.match(/\.(gif|jpe?g|png)$/i) && f.mb_icon.value) {
if (!f.mb_icon.value.match(/\.(gif|jpe?g|png)$/i) && f.mb_icon.value) { alert('아이콘은 이미지 파일만 가능합니다.');
alert('아이콘은 이미지 파일만 가능합니다.'); return false;
return false; }
}
if (!f.mb_img.value.match(/\.(gif|jpe?g|png)$/i) && f.mb_img.value) { if (!f.mb_img.value.match(/\.(gif|jpe?g|png)$/i) && f.mb_img.value) {
alert('회원이미지는 이미지 파일만 가능합니다.'); alert('회원이미지는 이미지 파일만 가능합니다.');
return false; return false;
} }
return true; return true;
} }
</script> </script>
<?php <?php
run_event('admin_member_form_after', $mb, $w); run_event('admin_member_form_after', $mb, $w);
include_once('./admin.tail.php'); require_once './admin.tail.php';
+119 -98
View File
@@ -1,33 +1,36 @@
<?php <?php
$sub_menu = "200100"; $sub_menu = "200100";
include_once("./_common.php"); require_once "./_common.php";
include_once(G5_LIB_PATH."/register.lib.php"); require_once G5_LIB_PATH . "/register.lib.php";
include_once(G5_LIB_PATH.'/thumbnail.lib.php'); require_once G5_LIB_PATH . '/thumbnail.lib.php';
if ($w == 'u') if ($w == 'u') {
check_demo(); check_demo();
}
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
check_admin_token(); check_admin_token();
$mb_id = isset($_POST['mb_id']) ? trim($_POST['mb_id']) : ''; $mb_id = isset($_POST['mb_id']) ? trim($_POST['mb_id']) : '';
$mb_password = isset($_POST['mb_password']) ? trim($_POST['mb_password']) : '';
$mb_certify_case = isset($_POST['mb_certify_case']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['mb_certify_case']) : ''; $mb_certify_case = isset($_POST['mb_certify_case']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['mb_certify_case']) : '';
$mb_certify = isset($_POST['mb_certify']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['mb_certify']) : ''; $mb_certify = isset($_POST['mb_certify']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['mb_certify']) : '';
$mb_zip = isset($_POST['mb_zip']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['mb_zip']) : ''; $mb_zip = isset($_POST['mb_zip']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['mb_zip']) : '';
// 휴대폰번호 체크 // 휴대폰번호 체크
$mb_hp = hyphen_hp_number($_POST['mb_hp']); $mb_hp = hyphen_hp_number($_POST['mb_hp']);
if($mb_hp) { if ($mb_hp) {
$result = exist_mb_hp($mb_hp, $mb_id); $result = exist_mb_hp($mb_hp, $mb_id);
if ($result) if ($result) {
alert($result); alert($result);
}
} }
// 인증정보처리 // 인증정보처리
if($mb_certify_case && $mb_certify) { if ($mb_certify_case && $mb_certify) {
$mb_certify = isset($_POST['mb_certify_case']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['mb_certify_case']) : ''; $mb_certify = isset($_POST['mb_certify_case']) ? preg_replace('/[^0-9a-z_]/i', '', (string)$_POST['mb_certify_case']) : '';
$mb_adult = isset($_POST['mb_adult']) ? preg_replace('/[^0-9a-z_]/i', '', $_POST['mb_adult']) : ''; $mb_adult = isset($_POST['mb_adult']) ? preg_replace('/[^0-9a-z_]/i', '', (string)$_POST['mb_adult']) : '';
} else { } else {
$mb_certify = ''; $mb_certify = '';
$mb_adult = 0; $mb_adult = 0;
@@ -39,33 +42,39 @@ $mb_zip2 = substr($mb_zip, 3);
$mb_email = isset($_POST['mb_email']) ? get_email_address(trim($_POST['mb_email'])) : ''; $mb_email = isset($_POST['mb_email']) ? get_email_address(trim($_POST['mb_email'])) : '';
$mb_nick = isset($_POST['mb_nick']) ? trim(strip_tags($_POST['mb_nick'])) : ''; $mb_nick = isset($_POST['mb_nick']) ? trim(strip_tags($_POST['mb_nick'])) : '';
if ($msg = valid_mb_nick($mb_nick)) alert($msg, "", true, true); if ($msg = valid_mb_nick($mb_nick)) {
alert($msg, "", true, true);
}
$posts = array(); $posts = array();
$check_keys = array( $check_keys = array(
'mb_name', 'mb_name',
'mb_homepage', 'mb_homepage',
'mb_tel', 'mb_tel',
'mb_addr1', 'mb_addr1',
'mb_addr2', 'mb_addr2',
'mb_addr3', 'mb_addr3',
'mb_addr_jibeon', 'mb_addr_jibeon',
'mb_signature', 'mb_signature',
'mb_leave_date', 'mb_leave_date',
'mb_intercept_date', 'mb_intercept_date',
'mb_mailling', 'mb_mailling',
'mb_sms', 'mb_sms',
'mb_open', 'mb_open',
'mb_profile', 'mb_profile',
'mb_level' 'mb_level'
); );
for($i=1;$i<=10;$i++){ for ($i = 1; $i <= 10; $i++) {
$check_keys[] = 'mb_'.$i; $check_keys[] = 'mb_' . $i;
} }
foreach( $check_keys as $key ){ foreach ($check_keys as $key) {
$posts[$key] = isset($_POST[$key]) ? clean_xss_tags($_POST[$key], 1, 1) : ''; if( in_array($key, array('mb_signature', 'mb_profile')) ){
$posts[$key] = isset($_POST[$key]) ? clean_xss_tags($_POST[$key], 1, 1, 0, 0) : '';
} else {
$posts[$key] = isset($_POST[$key]) ? clean_xss_tags($_POST[$key], 1, 1) : '';
}
} }
$mb_memo = isset($_POST['mb_memo']) ? $_POST['mb_memo'] : ''; $mb_memo = isset($_POST['mb_memo']) ? $_POST['mb_memo'] : '';
@@ -104,63 +113,70 @@ $sql_common = " mb_name = '{$posts['mb_name']}',
mb_9 = '{$posts['mb_9']}', mb_9 = '{$posts['mb_9']}',
mb_10 = '{$posts['mb_10']}' "; mb_10 = '{$posts['mb_10']}' ";
if ($w == '') if ($w == '') {
{
$mb = get_member($mb_id); $mb = get_member($mb_id);
if (isset($mb['mb_id']) && $mb['mb_id']) if (isset($mb['mb_id']) && $mb['mb_id']) {
alert('이미 존재하는 회원아이디입니다.\\nID : '.$mb['mb_id'].'\\n이름 : '.$mb['mb_name'].'\\n닉네임 : '.$mb['mb_nick'].'\\n메일 : '.$mb['mb_email']); alert('이미 존재하는 회원아이디입니다.\\nID : ' . $mb['mb_id'] . '\\n이름 : ' . $mb['mb_name'] . '\\n닉네임 : ' . $mb['mb_nick'] . '\\n메일 : ' . $mb['mb_email']);
}
// 닉네임중복체크 // 닉네임중복체크
$sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_nick = '{$mb_nick}' "; $sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_nick = '{$mb_nick}' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
if (isset($row['mb_id']) && $row['mb_id']) if (isset($row['mb_id']) && $row['mb_id']) {
alert('이미 존재하는 닉네임입니다.\\nID : '.$row['mb_id'].'\\n이름 : '.$row['mb_name'].'\\n닉네임 : '.$row['mb_nick'].'\\n메일 : '.$row['mb_email']); alert('이미 존재하는 닉네임입니다.\\nID : ' . $row['mb_id'] . '\\n이름 : ' . $row['mb_name'] . '\\n닉네임 : ' . $row['mb_nick'] . '\\n메일 : ' . $row['mb_email']);
}
// 이메일중복체크 // 이메일중복체크
$sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_email = '{$mb_email}' "; $sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_email = '{$mb_email}' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
if (isset($row['mb_id']) && $row['mb_id']) if (isset($row['mb_id']) && $row['mb_id']) {
alert('이미 존재하는 이메일입니다.\\nID : '.$row['mb_id'].'\\n이름 : '.$row['mb_name'].'\\n닉네임 : '.$row['mb_nick'].'\\n메일 : '.$row['mb_email']); alert('이미 존재하는 이메일입니다.\\nID : ' . $row['mb_id'] . '\\n이름 : ' . $row['mb_name'] . '\\n닉네임 : ' . $row['mb_nick'] . '\\n메일 : ' . $row['mb_email']);
}
sql_query(" insert into {$g5['member_table']} set mb_id = '{$mb_id}', mb_password = '".get_encrypt_string($mb_password)."', mb_datetime = '".G5_TIME_YMDHIS."', mb_ip = '{$_SERVER['REMOTE_ADDR']}', mb_email_certify = '".G5_TIME_YMDHIS."', {$sql_common} "); sql_query(" insert into {$g5['member_table']} set mb_id = '{$mb_id}', mb_password = '" . get_encrypt_string($mb_password) . "', mb_datetime = '" . G5_TIME_YMDHIS . "', mb_ip = '{$_SERVER['REMOTE_ADDR']}', mb_email_certify = '" . G5_TIME_YMDHIS . "', {$sql_common} ");
} } elseif ($w == 'u') {
else if ($w == 'u')
{
$mb = get_member($mb_id); $mb = get_member($mb_id);
if (! (isset($mb['mb_id']) && $mb['mb_id'])) if (!(isset($mb['mb_id']) && $mb['mb_id'])) {
alert('존재하지 않는 회원자료입니다.'); alert('존재하지 않는 회원자료입니다.');
}
if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level']) if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level']) {
alert('자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.'); alert('자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.');
}
if ($is_admin !== 'super' && is_admin($mb['mb_id']) === 'super' ) { if ($is_admin !== 'super' && is_admin($mb['mb_id']) === 'super') {
alert('최고관리자의 비밀번호를 수정할수 없습니다.'); alert('최고관리자의 비밀번호를 수정할수 없습니다.');
} }
if ($mb_id === $member['mb_id'] && $_POST['mb_level'] != $mb['mb_level']) if ($mb_id === $member['mb_id'] && $_POST['mb_level'] != $mb['mb_level']) {
alert($mb['mb_id'].' : 로그인 중인 관리자 레벨은 수정 할 수 없습니다.'); alert($mb['mb_id'] . ' : 로그인 중인 관리자 레벨은 수정 할 수 없습니다.');
}
// 닉네임중복체크 // 닉네임중복체크
$sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_nick = '{$mb_nick}' and mb_id <> '$mb_id' "; $sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_nick = '{$mb_nick}' and mb_id <> '$mb_id' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
if (isset($row['mb_id']) && $row['mb_id']) if (isset($row['mb_id']) && $row['mb_id']) {
alert('이미 존재하는 닉네임입니다.\\nID : '.$row['mb_id'].'\\n이름 : '.$row['mb_name'].'\\n닉네임 : '.$row['mb_nick'].'\\n메일 : '.$row['mb_email']); alert('이미 존재하는 닉네임입니다.\\nID : ' . $row['mb_id'] . '\\n이름 : ' . $row['mb_name'] . '\\n닉네임 : ' . $row['mb_nick'] . '\\n메일 : ' . $row['mb_email']);
}
// 이메일중복체크 // 이메일중복체크
$sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_email = '{$mb_email}' and mb_id <> '$mb_id' "; $sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_email = '{$mb_email}' and mb_id <> '$mb_id' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
if (isset($row['mb_id']) && $row['mb_id']) if (isset($row['mb_id']) && $row['mb_id']) {
alert('이미 존재하는 이메일입니다.\\nID : '.$row['mb_id'].'\\n이름 : '.$row['mb_name'].'\\n닉네임 : '.$row['mb_nick'].'\\n메일 : '.$row['mb_email']); alert('이미 존재하는 이메일입니다.\\nID : ' . $row['mb_id'] . '\\n이름 : ' . $row['mb_name'] . '\\n닉네임 : ' . $row['mb_nick'] . '\\n메일 : ' . $row['mb_email']);
}
if ($mb_password) if ($mb_password) {
$sql_password = " , mb_password = '".get_encrypt_string($mb_password)."' "; $sql_password = " , mb_password = '" . get_encrypt_string($mb_password) . "' ";
else } else {
$sql_password = ""; $sql_password = "";
}
if (isset($passive_certify) && $passive_certify) if (isset($passive_certify) && $passive_certify) {
$sql_certify = " , mb_email_certify = '".G5_TIME_YMDHIS."' "; $sql_certify = " , mb_email_certify = '" . G5_TIME_YMDHIS . "' ";
else } else {
$sql_certify = ""; $sql_certify = "";
}
$sql = " update {$g5['member_table']} $sql = " update {$g5['member_table']}
set {$sql_common} set {$sql_common}
@@ -168,18 +184,18 @@ else if ($w == 'u')
{$sql_certify} {$sql_certify}
where mb_id = '{$mb_id}' "; where mb_id = '{$mb_id}' ";
sql_query($sql); sql_query($sql);
} } else {
else
alert('제대로 된 값이 넘어오지 않았습니다.'); alert('제대로 된 값이 넘어오지 않았습니다.');
}
if( $w == '' || $w == 'u' ){ if ($w == '' || $w == 'u') {
$mb_dir = substr($mb_id, 0, 2);
$mb_dir = substr($mb_id,0,2); $mb_icon_img = get_mb_icon_name($mb_id) . '.gif';
$mb_icon_img = get_mb_icon_name($mb_id).'.gif';
// 회원 아이콘 삭제 // 회원 아이콘 삭제
if (isset($del_mb_icon) && $del_mb_icon) if (isset($del_mb_icon) && $del_mb_icon) {
@unlink(G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_icon_img); @unlink(G5_DATA_PATH . '/member/' . $mb_dir . '/' . $mb_icon_img);
}
$image_regex = "/(\.(gif|jpe?g|png))$/i"; $image_regex = "/(\.(gif|jpe?g|png))$/i";
@@ -190,46 +206,49 @@ if( $w == '' || $w == 'u' ){
} }
if (preg_match($image_regex, $_FILES['mb_icon']['name'])) { if (preg_match($image_regex, $_FILES['mb_icon']['name'])) {
$mb_icon_dir = G5_DATA_PATH.'/member/'.$mb_dir; $mb_icon_dir = G5_DATA_PATH . '/member/' . $mb_dir;
@mkdir($mb_icon_dir, G5_DIR_PERMISSION); @mkdir($mb_icon_dir, G5_DIR_PERMISSION);
@chmod($mb_icon_dir, G5_DIR_PERMISSION); @chmod($mb_icon_dir, G5_DIR_PERMISSION);
$dest_path = $mb_icon_dir.'/'.$mb_icon_img; $dest_path = $mb_icon_dir . '/' . $mb_icon_img;
move_uploaded_file($_FILES['mb_icon']['tmp_name'], $dest_path); move_uploaded_file($_FILES['mb_icon']['tmp_name'], $dest_path);
chmod($dest_path, G5_FILE_PERMISSION); chmod($dest_path, G5_FILE_PERMISSION);
if (file_exists($dest_path)) { if (file_exists($dest_path)) {
$size = @getimagesize($dest_path); $size = @getimagesize($dest_path);
if ($size[0] > $config['cf_member_icon_width'] || $size[1] > $config['cf_member_icon_height']) { if ($size) {
$thumb = null; if ($size[0] > $config['cf_member_icon_width'] || $size[1] > $config['cf_member_icon_height']) {
if($size[2] === 2 || $size[2] === 3) { $thumb = null;
//jpg 또는 png 파일 적용 if ($size[2] === 2 || $size[2] === 3) {
$thumb = thumbnail($mb_icon_img, $mb_icon_dir, $mb_icon_dir, $config['cf_member_icon_width'], $config['cf_member_icon_height'], true, true); //jpg 또는 png 파일 적용
if($thumb) { $thumb = thumbnail($mb_icon_img, $mb_icon_dir, $mb_icon_dir, $config['cf_member_icon_width'], $config['cf_member_icon_height'], true, true);
if ($thumb) {
@unlink($dest_path);
rename($mb_icon_dir . '/' . $thumb, $dest_path);
}
}
if (!$thumb) {
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
@unlink($dest_path); @unlink($dest_path);
rename($mb_icon_dir.'/'.$thumb, $dest_path);
} }
}
if( !$thumb ){
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
@unlink($dest_path);
} }
} }
} }
} }
} }
$mb_img_dir = G5_DATA_PATH.'/member_image/'; $mb_img_dir = G5_DATA_PATH . '/member_image/';
if( !is_dir($mb_img_dir) ){ if (!is_dir($mb_img_dir)) {
@mkdir($mb_img_dir, G5_DIR_PERMISSION); @mkdir($mb_img_dir, G5_DIR_PERMISSION);
@chmod($mb_img_dir, G5_DIR_PERMISSION); @chmod($mb_img_dir, G5_DIR_PERMISSION);
} }
$mb_img_dir .= substr($mb_id,0,2); $mb_img_dir .= substr($mb_id, 0, 2);
// 회원 이미지 삭제 // 회원 이미지 삭제
if (isset($del_mb_img) && $del_mb_img) if (isset($del_mb_img) && $del_mb_img) {
@unlink($mb_img_dir.'/'.$mb_icon_img); @unlink($mb_img_dir . '/' . $mb_icon_img);
}
// 아이콘 업로드 // 아이콘 업로드
if (isset($_FILES['mb_img']) && is_uploaded_file($_FILES['mb_img']['tmp_name'])) { if (isset($_FILES['mb_img']) && is_uploaded_file($_FILES['mb_img']['tmp_name'])) {
@@ -241,26 +260,28 @@ if( $w == '' || $w == 'u' ){
@mkdir($mb_img_dir, G5_DIR_PERMISSION); @mkdir($mb_img_dir, G5_DIR_PERMISSION);
@chmod($mb_img_dir, G5_DIR_PERMISSION); @chmod($mb_img_dir, G5_DIR_PERMISSION);
$dest_path = $mb_img_dir.'/'.$mb_icon_img; $dest_path = $mb_img_dir . '/' . $mb_icon_img;
move_uploaded_file($_FILES['mb_img']['tmp_name'], $dest_path); move_uploaded_file($_FILES['mb_img']['tmp_name'], $dest_path);
chmod($dest_path, G5_FILE_PERMISSION); chmod($dest_path, G5_FILE_PERMISSION);
if (file_exists($dest_path)) { if (file_exists($dest_path)) {
$size = @getimagesize($dest_path); $size = @getimagesize($dest_path);
if ($size[0] > $config['cf_member_img_width'] || $size[1] > $config['cf_member_img_height']) { if ($size) {
$thumb = null; if ($size[0] > $config['cf_member_img_width'] || $size[1] > $config['cf_member_img_height']) {
if($size[2] === 2 || $size[2] === 3) { $thumb = null;
//jpg 또는 png 파일 적용 if ($size[2] === 2 || $size[2] === 3) {
$thumb = thumbnail($mb_icon_img, $mb_img_dir, $mb_img_dir, $config['cf_member_img_width'], $config['cf_member_img_height'], true, true); //jpg 또는 png 파일 적용
if($thumb) { $thumb = thumbnail($mb_icon_img, $mb_img_dir, $mb_img_dir, $config['cf_member_img_width'], $config['cf_member_img_height'], true, true);
if ($thumb) {
@unlink($dest_path);
rename($mb_img_dir . '/' . $thumb, $dest_path);
}
}
if (!$thumb) {
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
@unlink($dest_path); @unlink($dest_path);
rename($mb_img_dir.'/'.$thumb, $dest_path);
} }
}
if( !$thumb ){
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
@unlink($dest_path);
} }
} }
} }
@@ -270,4 +291,4 @@ if( $w == '' || $w == 'u' ){
run_event('admin_member_form_update', $w, $mb_id); run_event('admin_member_form_update', $w, $mb_id);
goto_url('./member_form.php?'.$qstr.'&amp;w=u&amp;mb_id='.$mb_id, false); goto_url('./member_form.php?' . $qstr . '&amp;w=u&amp;mb_id=' . $mb_id, false);
+254 -238
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = "200100"; $sub_menu = "200100";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
@@ -10,25 +10,26 @@ $sql_search = " where (1) ";
if ($stx) { if ($stx) {
$sql_search .= " and ( "; $sql_search .= " and ( ";
switch ($sfl) { switch ($sfl) {
case 'mb_point' : case 'mb_point':
$sql_search .= " ({$sfl} >= '{$stx}') "; $sql_search .= " ({$sfl} >= '{$stx}') ";
break; break;
case 'mb_level' : case 'mb_level':
$sql_search .= " ({$sfl} = '{$stx}') "; $sql_search .= " ({$sfl} = '{$stx}') ";
break; break;
case 'mb_tel' : case 'mb_tel':
case 'mb_hp' : case 'mb_hp':
$sql_search .= " ({$sfl} like '%{$stx}') "; $sql_search .= " ({$sfl} like '%{$stx}') ";
break; break;
default : default:
$sql_search .= " ({$sfl} like '{$stx}%') "; $sql_search .= " ({$sfl} like '{$stx}%') ";
break; break;
} }
$sql_search .= " ) "; $sql_search .= " ) ";
} }
if ($is_admin != 'super') if ($is_admin != 'super') {
$sql_search .= " and mb_level <= '{$member['mb_level']}' "; $sql_search .= " and mb_level <= '{$member['mb_level']}' ";
}
if (!$sst) { if (!$sst) {
$sst = "mb_datetime"; $sst = "mb_datetime";
@@ -43,7 +44,9 @@ $total_count = $row['cnt'];
$rows = $config['cf_page_rows']; $rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산 $total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지) if ($page < 1) {
$page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
}
$from_record = ($page - 1) * $rows; // 시작 열을 구함 $from_record = ($page - 1) * $rows; // 시작 열을 구함
// 탈퇴회원수 // 탈퇴회원수
@@ -56,10 +59,10 @@ $sql = " select count(*) as cnt {$sql_common} {$sql_search} and mb_intercept_dat
$row = sql_fetch($sql); $row = sql_fetch($sql);
$intercept_count = $row['cnt']; $intercept_count = $row['cnt'];
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">전체목록</a>'; $listall = '<a href="' . $_SERVER['SCRIPT_NAME'] . '" class="ov_listall">전체목록</a>';
$g5['title'] = '회원관리'; $g5['title'] = '회원관리';
include_once('./admin.head.php'); require_once './admin.head.php';
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} "; $sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql); $result = sql_query($sql);
@@ -71,28 +74,28 @@ $colspan = 16;
<?php echo $listall ?> <?php echo $listall ?>
<span class="btn_ov01"><span class="ov_txt">총회원수 </span><span class="ov_num"> <?php echo number_format($total_count) ?>명 </span></span> <span class="btn_ov01"><span class="ov_txt">총회원수 </span><span class="ov_num"> <?php echo number_format($total_count) ?>명 </span></span>
<a href="?sst=mb_intercept_date&amp;sod=desc&amp;sfl=<?php echo $sfl ?>&amp;stx=<?php echo $stx ?>" class="btn_ov01" data-tooltip-text="차단된 순으로 정렬합니다.&#xa;전체 데이터를 출력합니다."> <span class="ov_txt">차단 </span><span class="ov_num"><?php echo number_format($intercept_count) ?>명</span></a> <a href="?sst=mb_intercept_date&amp;sod=desc&amp;sfl=<?php echo $sfl ?>&amp;stx=<?php echo $stx ?>" class="btn_ov01" data-tooltip-text="차단된 순으로 정렬합니다.&#xa;전체 데이터를 출력합니다."> <span class="ov_txt">차단 </span><span class="ov_num"><?php echo number_format($intercept_count) ?>명</span></a>
<a href="?sst=mb_leave_date&amp;sod=desc&amp;sfl=<?php echo $sfl ?>&amp;stx=<?php echo $stx ?>" class="btn_ov01" data-tooltip-text="탈퇴된 순으로 정렬합니다.&#xa;전체 데이터를 출력합니다."> <span class="ov_txt">탈퇴 </span><span class="ov_num"><?php echo number_format($leave_count) ?>명</span></a> <a href="?sst=mb_leave_date&amp;sod=desc&amp;sfl=<?php echo $sfl ?>&amp;stx=<?php echo $stx ?>" class="btn_ov01" data-tooltip-text="탈퇴된 순으로 정렬합니다.&#xa;전체 데이터를 출력합니다."> <span class="ov_txt">탈퇴 </span><span class="ov_num"><?php echo number_format($leave_count) ?>명</span></a>
</div> </div>
<form id="fsearch" name="fsearch" class="local_sch01 local_sch" method="get"> <form id="fsearch" name="fsearch" class="local_sch01 local_sch" method="get">
<label for="sfl" class="sound_only">검색대상</label> <label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl"> <select name="sfl" id="sfl">
<option value="mb_id"<?php echo get_selected($sfl, "mb_id"); ?>>회원아이디</option> <option value="mb_id" <?php echo get_selected($sfl, "mb_id"); ?>>회원아이디</option>
<option value="mb_nick"<?php echo get_selected($sfl, "mb_nick"); ?>>닉네임</option> <option value="mb_nick" <?php echo get_selected($sfl, "mb_nick"); ?>>닉네임</option>
<option value="mb_name"<?php echo get_selected($sfl, "mb_name"); ?>>이름</option> <option value="mb_name" <?php echo get_selected($sfl, "mb_name"); ?>>이름</option>
<option value="mb_level"<?php echo get_selected($sfl, "mb_level"); ?>>권한</option> <option value="mb_level" <?php echo get_selected($sfl, "mb_level"); ?>>권한</option>
<option value="mb_email"<?php echo get_selected($sfl, "mb_email"); ?>>E-MAIL</option> <option value="mb_email" <?php echo get_selected($sfl, "mb_email"); ?>>E-MAIL</option>
<option value="mb_tel"<?php echo get_selected($sfl, "mb_tel"); ?>>전화번호</option> <option value="mb_tel" <?php echo get_selected($sfl, "mb_tel"); ?>>전화번호</option>
<option value="mb_hp"<?php echo get_selected($sfl, "mb_hp"); ?>>휴대폰번호</option> <option value="mb_hp" <?php echo get_selected($sfl, "mb_hp"); ?>>휴대폰번호</option>
<option value="mb_point"<?php echo get_selected($sfl, "mb_point"); ?>>포인트</option> <option value="mb_point" <?php echo get_selected($sfl, "mb_point"); ?>>포인트</option>
<option value="mb_datetime"<?php echo get_selected($sfl, "mb_datetime"); ?>>가입일시</option> <option value="mb_datetime" <?php echo get_selected($sfl, "mb_datetime"); ?>>가입일시</option>
<option value="mb_ip"<?php echo get_selected($sfl, "mb_ip"); ?>>IP</option> <option value="mb_ip" <?php echo get_selected($sfl, "mb_ip"); ?>>IP</option>
<option value="mb_recommend"<?php echo get_selected($sfl, "mb_recommend"); ?>>추천인</option> <option value="mb_recommend" <?php echo get_selected($sfl, "mb_recommend"); ?>>추천인</option>
</select> </select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label> <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input"> <input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input">
<input type="submit" class="btn_submit" value="검색"> <input type="submit" class="btn_submit" value="검색">
</form> </form>
@@ -104,230 +107,243 @@ $colspan = 16;
<form name="fmemberlist" id="fmemberlist" action="./member_list_update.php" onsubmit="return fmemberlist_submit(this);" method="post"> <form name="fmemberlist" id="fmemberlist" action="./member_list_update.php" onsubmit="return fmemberlist_submit(this);" method="post">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col" id="mb_list_chk" rowspan="2" > <th scope="col" id="mb_list_chk" rowspan="2">
<label for="chkall" class="sound_only">회원 전체</label> <label for="chkall" class="sound_only">회원 전체</label>
<input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)"> <input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)">
</th> </th>
<th scope="col" id="mb_list_id" colspan="2"><?php echo subject_sort_link('mb_id') ?>아이디</a></th> <th scope="col" id="mb_list_id" colspan="2"><?php echo subject_sort_link('mb_id') ?>아이디</a></th>
<th scope="col" rowspan="2" id="mb_list_cert"><?php echo subject_sort_link('mb_certify', '', 'desc') ?>본인확인</a></th> <th scope="col" rowspan="2" id="mb_list_cert"><?php echo subject_sort_link('mb_certify', '', 'desc') ?>본인확인</a></th>
<th scope="col" id="mb_list_mailc"><?php echo subject_sort_link('mb_email_certify', '', 'desc') ?>메일인증</a></th> <th scope="col" id="mb_list_mailc"><?php echo subject_sort_link('mb_email_certify', '', 'desc') ?>메일인증</a></th>
<th scope="col" id="mb_list_open"><?php echo subject_sort_link('mb_open', '', 'desc') ?>정보공개</a></th> <th scope="col" id="mb_list_open"><?php echo subject_sort_link('mb_open', '', 'desc') ?>정보공개</a></th>
<th scope="col" id="mb_list_mailr"><?php echo subject_sort_link('mb_mailling', '', 'desc') ?>메일수신</a></th> <th scope="col" id="mb_list_mailr"><?php echo subject_sort_link('mb_mailling', '', 'desc') ?>메일수신</a></th>
<th scope="col" id="mb_list_auth">상태</th> <th scope="col" id="mb_list_auth">상태</th>
<th scope="col" id="mb_list_mobile">휴대폰</th> <th scope="col" id="mb_list_mobile">휴대폰</th>
<th scope="col" id="mb_list_lastcall"><?php echo subject_sort_link('mb_today_login', '', 'desc') ?>최종접속</a></th> <th scope="col" id="mb_list_lastcall"><?php echo subject_sort_link('mb_today_login', '', 'desc') ?>최종접속</a></th>
<th scope="col" id="mb_list_grp">접근그룹</th> <th scope="col" id="mb_list_grp">접근그룹</th>
<th scope="col" rowspan="2" id="mb_list_mng">관리</th> <th scope="col" rowspan="2" id="mb_list_mng">관리</th>
</tr> </tr>
<tr> <tr>
<th scope="col" id="mb_list_name"><?php echo subject_sort_link('mb_name') ?>이름</a></th> <th scope="col" id="mb_list_name"><?php echo subject_sort_link('mb_name') ?>이름</a></th>
<th scope="col" id="mb_list_nick"><?php echo subject_sort_link('mb_nick') ?>닉네임</a></th> <th scope="col" id="mb_list_nick"><?php echo subject_sort_link('mb_nick') ?>닉네임</a></th>
<th scope="col" id="mb_list_sms"><?php echo subject_sort_link('mb_sms', '', 'desc') ?>SMS수신</a></th> <th scope="col" id="mb_list_sms"><?php echo subject_sort_link('mb_sms', '', 'desc') ?>SMS수신</a></th>
<th scope="col" id="mb_list_adultc"><?php echo subject_sort_link('mb_adult', '', 'desc') ?>성인인증</a></th> <th scope="col" id="mb_list_adultc"><?php echo subject_sort_link('mb_adult', '', 'desc') ?>성인인증</a></th>
<th scope="col" id="mb_list_auth"><?php echo subject_sort_link('mb_intercept_date', '', 'desc') ?>접근차단</a></th> <th scope="col" id="mb_list_auth"><?php echo subject_sort_link('mb_intercept_date', '', 'desc') ?>접근차단</a></th>
<th scope="col" id="mb_list_deny"><?php echo subject_sort_link('mb_level', '', 'desc') ?>권한</a></th> <th scope="col" id="mb_list_deny"><?php echo subject_sort_link('mb_level', '', 'desc') ?>권한</a></th>
<th scope="col" id="mb_list_tel">전화번호</th> <th scope="col" id="mb_list_tel">전화번호</th>
<th scope="col" id="mb_list_join"><?php echo subject_sort_link('mb_datetime', '', 'desc') ?>가입일</a></th> <th scope="col" id="mb_list_join"><?php echo subject_sort_link('mb_datetime', '', 'desc') ?>가입일</a></th>
<th scope="col" id="mb_list_point"><?php echo subject_sort_link('mb_point', '', 'desc') ?> 포인트</a></th> <th scope="col" id="mb_list_point"><?php echo subject_sort_link('mb_point', '', 'desc') ?> 포인트</a></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i = 0; $row = sql_fetch_array($result); $i++) {
// 접근가능한 그룹수 // 접근가능한 그룹수
$sql2 = " select count(*) as cnt from {$g5['group_member_table']} where mb_id = '{$row['mb_id']}' "; $sql2 = " select count(*) as cnt from {$g5['group_member_table']} where mb_id = '{$row['mb_id']}' ";
$row2 = sql_fetch($sql2); $row2 = sql_fetch($sql2);
$group = ''; $group = '';
if ($row2['cnt']) if ($row2['cnt']) {
$group = '<a href="./boardgroupmember_form.php?mb_id='.$row['mb_id'].'">'.$row2['cnt'].'</a>'; $group = '<a href="./boardgroupmember_form.php?mb_id=' . $row['mb_id'] . '">' . $row2['cnt'] . '</a>';
if ($is_admin == 'group') {
$s_mod = '';
} else {
$s_mod = '<a href="./member_form.php?'.$qstr.'&amp;w=u&amp;mb_id='.$row['mb_id'].'" class="btn btn_03">수정</a>';
}
$s_grp = '<a href="./boardgroupmember_form.php?mb_id='.$row['mb_id'].'" class="btn btn_02">그룹</a>';
$leave_date = $row['mb_leave_date'] ? $row['mb_leave_date'] : date('Ymd', G5_SERVER_TIME);
$intercept_date = $row['mb_intercept_date'] ? $row['mb_intercept_date'] : date('Ymd', G5_SERVER_TIME);
$mb_nick = get_sideview($row['mb_id'], get_text($row['mb_nick']), $row['mb_email'], $row['mb_homepage']);
$mb_id = $row['mb_id'];
$leave_msg = '';
$intercept_msg = '';
$intercept_title = '';
if ($row['mb_leave_date']) {
$mb_id = $mb_id;
$leave_msg = '<span class="mb_leave_msg">탈퇴함</span>';
}
else if ($row['mb_intercept_date']) {
$mb_id = $mb_id;
$intercept_msg = '<span class="mb_intercept_msg">차단됨</span>';
$intercept_title = '차단해제';
}
if ($intercept_title == '')
$intercept_title = '차단하기';
$address = $row['mb_zip1'] ? print_address($row['mb_addr1'], $row['mb_addr2'], $row['mb_addr3'], $row['mb_addr_jibeon']) : '';
$bg = 'bg'.($i%2);
switch($row['mb_certify']) {
case 'hp':
$mb_certify_case = '휴대폰';
$mb_certify_val = 'hp';
break;
case 'ipin':
$mb_certify_case = '아이핀';
$mb_certify_val = '';
break;
case 'admin':
$mb_certify_case = '관리자';
$mb_certify_val = 'admin';
break;
default:
$mb_certify_case = '&nbsp;';
$mb_certify_val = 'admin';
break;
}
?>
<tr class="<?php echo $bg; ?>">
<td headers="mb_list_chk" class="td_chk" rowspan="2">
<input type="hidden" name="mb_id[<?php echo $i ?>]" value="<?php echo $row['mb_id'] ?>" id="mb_id_<?php echo $i ?>">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo get_text($row['mb_name']); ?> <?php echo get_text($row['mb_nick']); ?>님</label>
<input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
</td>
<td headers="mb_list_id" colspan="2" class="td_name sv_use">
<?php echo $mb_id ?>
<?php
//소셜계정이 있다면
if(function_exists('social_login_link_account')){
if( $my_social_accounts = social_login_link_account($row['mb_id'], false, 'get_data') ){
echo '<div class="member_social_provider sns-wrap-over sns-wrap-32">';
foreach( (array) $my_social_accounts as $account){ //반복문
if( empty($account) || empty($account['provider']) ) continue;
$provider = strtolower($account['provider']);
$provider_name = social_get_provider_service_name($provider);
echo '<span class="sns-icon sns-'.$provider.'" title="'.$provider_name.'">';
echo '<span class="ico"></span>';
echo '<span class="txt">'.$provider_name.'</span>';
echo '</span>';
} }
echo '</div>';
if ($is_admin == 'group') {
$s_mod = '';
} else {
$s_mod = '<a href="./member_form.php?' . $qstr . '&amp;w=u&amp;mb_id=' . $row['mb_id'] . '" class="btn btn_03">수정</a>';
}
$s_grp = '<a href="./boardgroupmember_form.php?mb_id=' . $row['mb_id'] . '" class="btn btn_02">그룹</a>';
$leave_date = $row['mb_leave_date'] ? $row['mb_leave_date'] : date('Ymd', G5_SERVER_TIME);
$intercept_date = $row['mb_intercept_date'] ? $row['mb_intercept_date'] : date('Ymd', G5_SERVER_TIME);
$mb_nick = get_sideview($row['mb_id'], get_text($row['mb_nick']), $row['mb_email'], $row['mb_homepage']);
$mb_id = $row['mb_id'];
$leave_msg = '';
$intercept_msg = '';
$intercept_title = '';
if ($row['mb_leave_date']) {
$mb_id = $mb_id;
$leave_msg = '<span class="mb_leave_msg">탈퇴함</span>';
} elseif ($row['mb_intercept_date']) {
$mb_id = $mb_id;
$intercept_msg = '<span class="mb_intercept_msg">차단됨</span>';
$intercept_title = '차단해제';
}
if ($intercept_title == '') {
$intercept_title = '차단하기';
}
$address = $row['mb_zip1'] ? print_address($row['mb_addr1'], $row['mb_addr2'], $row['mb_addr3'], $row['mb_addr_jibeon']) : '';
$bg = 'bg' . ($i % 2);
switch ($row['mb_certify']) {
case 'hp':
$mb_certify_case = '휴대폰';
$mb_certify_val = 'hp';
break;
case 'ipin':
$mb_certify_case = '아이핀';
$mb_certify_val = '';
break;
case 'simple':
$mb_certify_case = '간편인증';
$mb_certify_val = '';
break;
case 'admin':
$mb_certify_case = '관리자';
$mb_certify_val = 'admin';
break;
default:
$mb_certify_case = '&nbsp;';
$mb_certify_val = 'admin';
break;
}
?>
<tr class="<?php echo $bg; ?>">
<td headers="mb_list_chk" class="td_chk" rowspan="2">
<input type="hidden" name="mb_id[<?php echo $i ?>]" value="<?php echo $row['mb_id'] ?>" id="mb_id_<?php echo $i ?>">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo get_text($row['mb_name']); ?> <?php echo get_text($row['mb_nick']); ?>님</label>
<input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
</td>
<td headers="mb_list_id" colspan="2" class="td_name sv_use">
<?php echo $mb_id ?>
<?php
//소셜계정이 있다면
if (function_exists('social_login_link_account')) {
if ($my_social_accounts = social_login_link_account($row['mb_id'], false, 'get_data')) {
echo '<div class="member_social_provider sns-wrap-over sns-wrap-32">';
foreach ((array) $my_social_accounts as $account) { //반복문
if (empty($account) || empty($account['provider'])) {
continue;
}
$provider = strtolower($account['provider']);
$provider_name = social_get_provider_service_name($provider);
echo '<span class="sns-icon sns-' . $provider . '" title="' . $provider_name . '">';
echo '<span class="ico"></span>';
echo '<span class="txt">' . $provider_name . '</span>';
echo '</span>';
}
echo '</div>';
}
}
?>
</td>
<td headers="mb_list_cert" rowspan="2" class="td_mbcert">
<input type="radio" name="mb_certify[<?php echo $i; ?>]" value="simple" id="mb_certify_sa_<?php echo $i; ?>" <?php echo $row['mb_certify'] == 'simple' ? 'checked' : ''; ?>>
<label for="mb_certify_sa_<?php echo $i; ?>">간편인증</label><br>
<input type="radio" name="mb_certify[<?php echo $i; ?>]" value="hp" id="mb_certify_hp_<?php echo $i; ?>" <?php echo $row['mb_certify'] == 'hp' ? 'checked' : ''; ?>>
<label for="mb_certify_hp_<?php echo $i; ?>">휴대폰</label><br>
<input type="radio" name="mb_certify[<?php echo $i; ?>]" value="ipin" id="mb_certify_ipin_<?php echo $i; ?>" <?php echo $row['mb_certify'] == 'ipin' ? 'checked' : ''; ?>>
<label for="mb_certify_ipin_<?php echo $i; ?>">아이핀</label>
</td>
<td headers="mb_list_mailc"><?php echo preg_match('/[1-9]/', $row['mb_email_certify']) ? '<span class="txt_true">Yes</span>' : '<span class="txt_false">No</span>'; ?></td>
<td headers="mb_list_open">
<label for="mb_open_<?php echo $i; ?>" class="sound_only">정보공개</label>
<input type="checkbox" name="mb_open[<?php echo $i; ?>]" <?php echo $row['mb_open'] ? 'checked' : ''; ?> value="1" id="mb_open_<?php echo $i; ?>">
</td>
<td headers="mb_list_mailr">
<label for="mb_mailling_<?php echo $i; ?>" class="sound_only">메일수신</label>
<input type="checkbox" name="mb_mailling[<?php echo $i; ?>]" <?php echo $row['mb_mailling'] ? 'checked' : ''; ?> value="1" id="mb_mailling_<?php echo $i; ?>">
</td>
<td headers="mb_list_auth" class="td_mbstat">
<?php
if ($leave_msg || $intercept_msg) {
echo $leave_msg . ' ' . $intercept_msg;
} else {
echo "정상";
}
?>
</td>
<td headers="mb_list_mobile" class="td_tel"><?php echo get_text($row['mb_hp']); ?></td>
<td headers="mb_list_lastcall" class="td_date"><?php echo substr($row['mb_today_login'], 2, 8); ?></td>
<td headers="mb_list_grp" class="td_numsmall"><?php echo $group ?></td>
<td headers="mb_list_mng" rowspan="2" class="td_mng td_mng_s"><?php echo $s_mod ?><?php echo $s_grp ?></td>
</tr>
<tr class="<?php echo $bg; ?>">
<td headers="mb_list_name" class="td_mbname"><?php echo get_text($row['mb_name']); ?></td>
<td headers="mb_list_nick" class="td_name sv_use">
<div><?php echo $mb_nick ?></div>
</td>
<td headers="mb_list_sms">
<label for="mb_sms_<?php echo $i; ?>" class="sound_only">SMS수신</label>
<input type="checkbox" name="mb_sms[<?php echo $i; ?>]" <?php echo $row['mb_sms'] ? 'checked' : ''; ?> value="1" id="mb_sms_<?php echo $i; ?>">
</td>
<td headers="mb_list_adultc">
<label for="mb_adult_<?php echo $i; ?>" class="sound_only">성인인증</label>
<input type="checkbox" name="mb_adult[<?php echo $i; ?>]" <?php echo $row['mb_adult'] ? 'checked' : ''; ?> value="1" id="mb_adult_<?php echo $i; ?>">
</td>
<td headers="mb_list_deny">
<?php if (empty($row['mb_leave_date'])) { ?>
<input type="checkbox" name="mb_intercept_date[<?php echo $i; ?>]" <?php echo $row['mb_intercept_date'] ? 'checked' : ''; ?> value="<?php echo $intercept_date ?>" id="mb_intercept_date_<?php echo $i ?>" title="<?php echo $intercept_title ?>">
<label for="mb_intercept_date_<?php echo $i; ?>" class="sound_only">접근차단</label>
<?php } ?>
</td>
<td headers="mb_list_auth" class="td_mbstat">
<?php echo get_member_level_select("mb_level[$i]", 1, $member['mb_level'], $row['mb_level']) ?>
</td>
<td headers="mb_list_tel" class="td_tel"><?php echo get_text($row['mb_tel']); ?></td>
<td headers="mb_list_join" class="td_date"><?php echo substr($row['mb_datetime'], 2, 8); ?></td>
<td headers="mb_list_point" class="td_num"><a href="point_list.php?sfl=mb_id&amp;stx=<?php echo $row['mb_id'] ?>"><?php echo number_format($row['mb_point']) ?></a></td>
</tr>
<?php
} }
} if ($i == 0) {
?> echo "<tr><td colspan=\"" . $colspan . "\" class=\"empty_table\">자료가 없습니다.</td></tr>";
</td> }
<td headers="mb_list_cert" rowspan="2" class="td_mbcert"> ?>
<input type="radio" name="mb_certify[<?php echo $i; ?>]" value="ipin" id="mb_certify_ipin_<?php echo $i; ?>" <?php echo $row['mb_certify']=='ipin'?'checked':''; ?>> </tbody>
<label for="mb_certify_ipin_<?php echo $i; ?>">아이핀</label><br> </table>
<input type="radio" name="mb_certify[<?php echo $i; ?>]" value="hp" id="mb_certify_hp_<?php echo $i; ?>" <?php echo $row['mb_certify']=='hp'?'checked':''; ?>> </div>
<label for="mb_certify_hp_<?php echo $i; ?>">휴대폰</label>
</td>
<td headers="mb_list_mailc"><?php echo preg_match('/[1-9]/', $row['mb_email_certify'])?'<span class="txt_true">Yes</span>':'<span class="txt_false">No</span>'; ?></td>
<td headers="mb_list_open">
<label for="mb_open_<?php echo $i; ?>" class="sound_only">정보공개</label>
<input type="checkbox" name="mb_open[<?php echo $i; ?>]" <?php echo $row['mb_open']?'checked':''; ?> value="1" id="mb_open_<?php echo $i; ?>">
</td>
<td headers="mb_list_mailr">
<label for="mb_mailling_<?php echo $i; ?>" class="sound_only">메일수신</label>
<input type="checkbox" name="mb_mailling[<?php echo $i; ?>]" <?php echo $row['mb_mailling']?'checked':''; ?> value="1" id="mb_mailling_<?php echo $i; ?>">
</td>
<td headers="mb_list_auth" class="td_mbstat">
<?php
if ($leave_msg || $intercept_msg) echo $leave_msg.' '.$intercept_msg;
else echo "정상";
?>
</td>
<td headers="mb_list_mobile" class="td_tel"><?php echo get_text($row['mb_hp']); ?></td>
<td headers="mb_list_lastcall" class="td_date"><?php echo substr($row['mb_today_login'],2,8); ?></td>
<td headers="mb_list_grp" class="td_numsmall"><?php echo $group ?></td>
<td headers="mb_list_mng" rowspan="2" class="td_mng td_mng_s"><?php echo $s_mod ?><?php echo $s_grp ?></td>
</tr>
<tr class="<?php echo $bg; ?>">
<td headers="mb_list_name" class="td_mbname"><?php echo get_text($row['mb_name']); ?></td>
<td headers="mb_list_nick" class="td_name sv_use"><div><?php echo $mb_nick ?></div></td>
<td headers="mb_list_sms"> <div class="btn_fixed_top">
<label for="mb_sms_<?php echo $i; ?>" class="sound_only">SMS수신</label> <input type="submit" name="act_button" value="선택수정" onclick="document.pressed=this.value" class="btn btn_02">
<input type="checkbox" name="mb_sms[<?php echo $i; ?>]" <?php echo $row['mb_sms']?'checked':''; ?> value="1" id="mb_sms_<?php echo $i; ?>"> <input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value" class="btn btn_02">
</td> <?php if ($is_admin == 'super') { ?>
<td headers="mb_list_adultc"> <a href="./member_form.php" id="member_add" class="btn btn_01">회원추가</a>
<label for="mb_adult_<?php echo $i; ?>" class="sound_only">성인인증</label> <?php } ?>
<input type="checkbox" name="mb_adult[<?php echo $i; ?>]" <?php echo $row['mb_adult']?'checked':''; ?> value="1" id="mb_adult_<?php echo $i; ?>">
</td>
<td headers="mb_list_deny">
<?php if(empty($row['mb_leave_date'])){ ?>
<input type="checkbox" name="mb_intercept_date[<?php echo $i; ?>]" <?php echo $row['mb_intercept_date']?'checked':''; ?> value="<?php echo $intercept_date ?>" id="mb_intercept_date_<?php echo $i ?>" title="<?php echo $intercept_title ?>">
<label for="mb_intercept_date_<?php echo $i; ?>" class="sound_only">접근차단</label>
<?php } ?>
</td>
<td headers="mb_list_auth" class="td_mbstat">
<?php echo get_member_level_select("mb_level[$i]", 1, $member['mb_level'], $row['mb_level']) ?>
</td>
<td headers="mb_list_tel" class="td_tel"><?php echo get_text($row['mb_tel']); ?></td>
<td headers="mb_list_join" class="td_date"><?php echo substr($row['mb_datetime'],2,8); ?></td>
<td headers="mb_list_point" class="td_num"><a href="point_list.php?sfl=mb_id&amp;stx=<?php echo $row['mb_id'] ?>"><?php echo number_format($row['mb_point']) ?></a></td>
</tr> </div>
<?php
}
if ($i == 0)
echo "<tr><td colspan=\"".$colspan."\" class=\"empty_table\">자료가 없습니다.</td></tr>";
?>
</tbody>
</table>
</div>
<div class="btn_fixed_top">
<input type="submit" name="act_button" value="선택수정" onclick="document.pressed=this.value" class="btn btn_02">
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value" class="btn btn_02">
<?php if ($is_admin == 'super') { ?>
<a href="./member_form.php" id="member_add" class="btn btn_01">회원추가</a>
<?php } ?>
</div>
</form> </form>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, '?'.$qstr.'&amp;page='); ?> <?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, '?' . $qstr . '&amp;page='); ?>
<script> <script>
function fmemberlist_submit(f) function fmemberlist_submit(f) {
{ if (!is_checked("chk[]")) {
if (!is_checked("chk[]")) { alert(document.pressed + " 하실 항목을 하나 이상 선택하세요.");
alert(document.pressed+" 하실 항목을 하나 이상 선택하세요.");
return false;
}
if(document.pressed == "선택삭제") {
if(!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false; return false;
} }
}
return true; if (document.pressed == "선택삭제") {
} if (!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false;
}
}
return true;
}
</script> </script>
<?php <?php
include_once ('./admin.tail.php'); require_once './admin.tail.php';
+7 -7
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = "200100"; $sub_menu = "200100";
include_once("./_common.php"); require_once "./_common.php";
check_demo(); check_demo();
@@ -9,8 +9,7 @@ auth_check_menu($auth, $sub_menu, "d");
check_admin_token(); check_admin_token();
$msg = ""; $msg = "";
for ($i=0; $i<count($chk); $i++) for ($i = 0; $i < count($chk); $i++) {
{
// 실제 번호를 넘김 // 실제 번호를 넘김
$k = $_POST['chk'][$i]; $k = $_POST['chk'][$i];
@@ -18,11 +17,11 @@ for ($i=0; $i<count($chk); $i++)
if (!$mb['mb_id']) { if (!$mb['mb_id']) {
$msg .= "{$mb['mb_id']} : 회원자료가 존재하지 않습니다.\\n"; $msg .= "{$mb['mb_id']} : 회원자료가 존재하지 않습니다.\\n";
} else if ($member['mb_id'] == $mb['mb_id']) { } elseif ($member['mb_id'] == $mb['mb_id']) {
$msg .= "{$mb['mb_id']} : 로그인 중인 관리자는 삭제 할 수 없습니다.\\n"; $msg .= "{$mb['mb_id']} : 로그인 중인 관리자는 삭제 할 수 없습니다.\\n";
} else if (is_admin($mb['mb_id']) == "super") { } elseif (is_admin($mb['mb_id']) == "super") {
$msg .= "{$mb['mb_id']} : 최고 관리자는 삭제할 수 없습니다.\\n"; $msg .= "{$mb['mb_id']} : 최고 관리자는 삭제할 수 없습니다.\\n";
} else if ($is_admin != "super" && $mb['mb_level'] >= $member['mb_level']) { } elseif ($is_admin != "super" && $mb['mb_level'] >= $member['mb_level']) {
$msg .= "{$mb['mb_id']} : 자신보다 권한이 높거나 같은 회원은 삭제할 수 없습니다.\\n"; $msg .= "{$mb['mb_id']} : 자신보다 권한이 높거나 같은 회원은 삭제할 수 없습니다.\\n";
} else { } else {
// 회원자료 삭제 // 회원자료 삭제
@@ -30,7 +29,8 @@ for ($i=0; $i<count($chk); $i++)
} }
} }
if ($msg) if ($msg) {
echo "<script type='text/javascript'> alert('$msg'); </script>"; echo "<script type='text/javascript'> alert('$msg'); </script>";
}
goto_url("./member_list.php?$qstr"); goto_url("./member_list.php?$qstr");
+32 -35
View File
@@ -1,11 +1,11 @@
<?php <?php
$sub_menu = "200100"; $sub_menu = "200100";
include_once('./_common.php'); require_once './_common.php';
check_demo(); check_demo();
if (! (isset($_POST['chk']) && is_array($_POST['chk']))) { if (!(isset($_POST['chk']) && is_array($_POST['chk']))) {
alert($_POST['act_button']." 하실 항목을 하나 이상 체크하세요."); alert($_POST['act_button'] . " 하실 항목을 하나 이상 체크하세요.");
} }
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
@@ -16,9 +16,7 @@ $mb_datas = array();
$msg = ''; $msg = '';
if ($_POST['act_button'] == "선택수정") { if ($_POST['act_button'] == "선택수정") {
for ($i = 0; $i < count($_POST['chk']); $i++) {
for ($i=0; $i<count($_POST['chk']); $i++)
{
// 실제 번호를 넘김 // 실제 번호를 넘김
$k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0; $k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0;
@@ -31,48 +29,46 @@ if ($_POST['act_button'] == "선택수정") {
$mb_datas[] = $mb = get_member($_POST['mb_id'][$k]); $mb_datas[] = $mb = get_member($_POST['mb_id'][$k]);
if (! (isset($mb['mb_id']) && $mb['mb_id'])) { if (!(isset($mb['mb_id']) && $mb['mb_id'])) {
$msg .= $mb['mb_id'].' : 회원자료가 존재하지 않습니다.\\n'; $msg .= $mb['mb_id'] . ' : 회원자료가 존재하지 않습니다.\\n';
} else if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level']) { } elseif ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level']) {
$msg .= $mb['mb_id'].' : 자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.\\n'; $msg .= $mb['mb_id'] . ' : 자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.\\n';
} else if ($member['mb_id'] == $mb['mb_id']) { } elseif ($member['mb_id'] == $mb['mb_id']) {
$msg .= $mb['mb_id'].' : 로그인 중인 관리자는 수정 할 수 없습니다.\\n'; $msg .= $mb['mb_id'] . ' : 로그인 중인 관리자는 수정 할 수 없습니다.\\n';
} else { } else {
if($post_mb_certify) if ($post_mb_certify) {
$mb_adult = isset($_POST['mb_adult'][$k]) ? (int) $_POST['mb_adult'][$k] : 0; $mb_adult = isset($_POST['mb_adult'][$k]) ? (int) $_POST['mb_adult'][$k] : 0;
else } else {
$mb_adult = 0; $mb_adult = 0;
}
$sql = " update {$g5['member_table']} $sql = " update {$g5['member_table']}
set mb_level = '".$post_mb_level."', set mb_level = '" . $post_mb_level . "',
mb_intercept_date = '".sql_real_escape_string($post_mb_intercept_date)."', mb_intercept_date = '" . sql_real_escape_string($post_mb_intercept_date) . "',
mb_mailling = '".$post_mb_mailling."', mb_mailling = '" . $post_mb_mailling . "',
mb_sms = '".$post_mb_sms."', mb_sms = '" . $post_mb_sms . "',
mb_open = '".$post_mb_open."', mb_open = '" . $post_mb_open . "',
mb_certify = '".sql_real_escape_string($post_mb_certify)."', mb_certify = '" . sql_real_escape_string($post_mb_certify) . "',
mb_adult = '{$mb_adult}' mb_adult = '{$mb_adult}'
where mb_id = '".sql_real_escape_string($mb['mb_id'])."' "; where mb_id = '" . sql_real_escape_string($mb['mb_id']) . "' ";
sql_query($sql); sql_query($sql);
} }
} }
} elseif ($_POST['act_button'] == "선택삭제") {
} else if ($_POST['act_button'] == "선택삭제") { for ($i = 0; $i < count($_POST['chk']); $i++) {
for ($i=0; $i<count($_POST['chk']); $i++)
{
// 실제 번호를 넘김 // 실제 번호를 넘김
$k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0; $k = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0;
$mb_datas[] = $mb = get_member($_POST['mb_id'][$k]); $mb_datas[] = $mb = get_member($_POST['mb_id'][$k]);
if (!$mb['mb_id']) { if (!$mb['mb_id']) {
$msg .= $mb['mb_id'].' : 회원자료가 존재하지 않습니다.\\n'; $msg .= $mb['mb_id'] . ' : 회원자료가 존재하지 않습니다.\\n';
} else if ($member['mb_id'] == $mb['mb_id']) { } elseif ($member['mb_id'] == $mb['mb_id']) {
$msg .= $mb['mb_id'].' : 로그인 중인 관리자는 삭제 할 수 없습니다.\\n'; $msg .= $mb['mb_id'] . ' : 로그인 중인 관리자는 삭제 할 수 없습니다.\\n';
} else if (is_admin($mb['mb_id']) == 'super') { } elseif (is_admin($mb['mb_id']) == 'super') {
$msg .= $mb['mb_id'].' : 최고 관리자는 삭제할 수 없습니다.\\n'; $msg .= $mb['mb_id'] . ' : 최고 관리자는 삭제할 수 없습니다.\\n';
} else if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level']) { } elseif ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level']) {
$msg .= $mb['mb_id'].' : 자신보다 권한이 높거나 같은 회원은 삭제할 수 없습니다.\\n'; $msg .= $mb['mb_id'] . ' : 자신보다 권한이 높거나 같은 회원은 삭제할 수 없습니다.\\n';
} else { } else {
// 회원자료 삭제 // 회원자료 삭제
member_delete($mb['mb_id']); member_delete($mb['mb_id']);
@@ -80,10 +76,11 @@ if ($_POST['act_button'] == "선택수정") {
} }
} }
if ($msg) if ($msg) {
//echo '<script> alert("'.$msg.'"); </script>'; //echo '<script> alert("'.$msg.'"); </script>';
alert($msg); alert($msg);
}
run_event('admin_member_list_update', $_POST['act_button'], $mb_datas); run_event('admin_member_list_update', $_POST['act_button'], $mb_datas);
goto_url('./member_list.php?'.$qstr); goto_url('./member_list.php?' . $qstr);
+154 -152
View File
@@ -1,22 +1,24 @@
<?php <?php
$sub_menu = "100290"; $sub_menu = "100290";
include_once('./_common.php'); require_once './_common.php';
if ($is_admin != 'super') if ($is_admin != 'super') {
alert_close('최고관리자만 접근 가능합니다.'); alert_close('최고관리자만 접근 가능합니다.');
}
$g5['title'] = '메뉴 추가'; $g5['title'] = '메뉴 추가';
include_once(G5_PATH.'/head.sub.php'); require_once G5_PATH . '/head.sub.php';
$new = isset($_GET['new']) ? clean_xss_tags($_GET['new'], 1, 1) : ''; $new = isset($_GET['new']) ? clean_xss_tags($_GET['new'], 1, 1) : '';
$code = isset($_GET['code']) ? preg_replace('/[^0-9a-zA-Z]/', '', $_GET['code']) : ''; $code = isset($_GET['code']) ? (string)preg_replace('/[^0-9a-zA-Z]/', '', $_GET['code']) : '';
// 코드 // 코드
if($new == 'new' || !$code) { if ($new == 'new' || !$code) {
$code = base_convert(substr($code,0, 2), 36, 10); $code = (int)base_convert(substr($code, 0, 2), 36, 10);
$code += 36; $code += 36;
$code = base_convert($code, 10, 36); $code = base_convert((string)$code, 10, 36);
} }
?> ?>
<div id="menu_frm" class="new_win"> <div id="menu_frm" class="new_win">
@@ -24,174 +26,174 @@ if($new == 'new' || !$code) {
<form name="fmenuform" id="fmenuform" class="new_win_con"> <form name="fmenuform" id="fmenuform" class="new_win_con">
<div class="new_win_desc"> <div class="new_win_desc">
<label for="me_type">대상선택</label> <label for="me_type">대상선택</label>
<select name="me_type" id="me_type"> <select name="me_type" id="me_type">
<option value="">직접입력</option> <option value="">직접입력</option>
<option value="group">게시판그룹</option> <option value="group">게시판그룹</option>
<option value="board">게시판</option> <option value="board">게시판</option>
<option value="content">내용관리</option> <option value="content">내용관리</option>
</select> </select>
</div> </div>
<div id="menu_result"></div> <div id="menu_result"></div>
</form> </form>
</div> </div>
<script> <script>
$(function() { $(function() {
$("#menu_result").load( $("#menu_result").load(
"./menu_form_search.php" "./menu_form_search.php"
);
function link_checks_all_chage(){
var $links = $(opener.document).find("#menulist input[name='me_link[]']"),
$o_link = $(".td_mngsmall input[name='link[]']"),
hrefs = [],
menu_exist = false;
if( $links.length ){
$links.each(function( index ) {
hrefs.push( $(this).val() );
});
$o_link.each(function( index ) {
if( $.inArray( $(this).val(), hrefs ) != -1 ){
$(this).closest("tr").find("td:eq( 0 )").addClass("exist_menu_link");
menu_exist = true;
}
});
}
if( menu_exist ){
$(".menu_exists_tip").show();
} else {
$(".menu_exists_tip").hide();
}
}
function menu_result_change( type ){
var dfd = new $.Deferred();
$("#menu_result").empty().load(
"./menu_form_search.php",
{ type : type },
function(){
dfd.resolve('Finished');
}
); );
return dfd.promise(); function link_checks_all_chage() {
}
$("#me_type").on("change", function() { var $links = $(opener.document).find("#menulist input[name='me_link[]']"),
var type = $(this).val(); $o_link = $(".td_mngsmall input[name='link[]']"),
hrefs = [],
menu_exist = false;
var promise = menu_result_change( type ); if ($links.length) {
$links.each(function(index) {
hrefs.push($(this).val());
});
$o_link.each(function(index) {
if ($.inArray($(this).val(), hrefs) != -1) {
$(this).closest("tr").find("td:eq( 0 )").addClass("exist_menu_link");
menu_exist = true;
}
});
}
if (menu_exist) {
$(".menu_exists_tip").show();
} else {
$(".menu_exists_tip").hide();
}
}
function menu_result_change(type) {
var dfd = new $.Deferred();
$("#menu_result").empty().load(
"./menu_form_search.php", {
type: type
},
function() {
dfd.resolve('Finished');
}
);
return dfd.promise();
}
$("#me_type").on("change", function() {
var type = $(this).val();
var promise = menu_result_change(type);
promise.done(function(message) {
link_checks_all_chage(type);
});
promise.done(function(message) {
link_checks_all_chage(type);
}); });
$(document).on("click", "#add_manual", function() {
var me_name = $.trim($("#me_name").val());
var me_link = $.trim($("#me_link").val());
add_menu_list(me_name, me_link, "<?php echo $code; ?>");
});
$(document).on("click", ".add_select", function() {
var me_name = $.trim($(this).siblings("input[name='subject[]']").val());
var me_link = $.trim($(this).siblings("input[name='link[]']").val());
add_menu_list(me_name, me_link, "<?php echo $code; ?>");
});
}); });
$(document).on("click", "#add_manual", function() { function add_menu_list(name, link, code) {
var me_name = $.trim($("#me_name").val()); var $menulist = $("#menulist", opener.document);
var me_link = $.trim($("#me_link").val()); var ms = new Date().getTime();
var sub_menu_class;
<?php if ($new == 'new') { ?>
sub_menu_class = " class=\"td_category\"";
<?php } else { ?>
sub_menu_class = " class=\"td_category sub_menu_class\"";
<?php } ?>
add_menu_list(me_name, me_link, "<?php echo $code; ?>"); var list = "<tr class=\"menu_list menu_group_<?php echo $code; ?>\">";
}); list += "<td" + sub_menu_class + ">";
list += "<label for=\"me_name_" + ms + "\" class=\"sound_only\">메뉴<strong class=\"sound_only\"> 필수</strong></label>";
list += "<input type=\"hidden\" name=\"code[]\" value=\"<?php echo $code; ?>\">";
list += "<input type=\"text\" name=\"me_name[]\" value=\"" + name + "\" id=\"me_name_" + ms + "\" required class=\"required frm_input full_input\">";
list += "</td>";
list += "<td>";
list += "<label for=\"me_link_" + ms + "\" class=\"sound_only\">링크<strong class=\"sound_only\"> 필수</strong></label>";
list += "<input type=\"text\" name=\"me_link[]\" value=\"" + link + "\" id=\"me_link_" + ms + "\" required class=\"required frm_input full_input\">";
list += "</td>";
list += "<td class=\"td_mng\">";
list += "<label for=\"me_target_" + ms + "\" class=\"sound_only\">새창</label>";
list += "<select name=\"me_target[]\" id=\"me_target_" + ms + "\">";
list += "<option value=\"self\">사용안함</option>";
list += "<option value=\"blank\">사용함</option>";
list += "</select>";
list += "</td>";
list += "<td class=\"td_numsmall\">";
list += "<label for=\"me_order_" + ms + "\" class=\"sound_only\">순서<strong class=\"sound_only\"> 필수</strong></label>";
list += "<input type=\"text\" name=\"me_order[]\" value=\"0\" id=\"me_order_" + ms + "\" required class=\"required frm_input\" size=\"5\">";
list += "</td>";
list += "<td class=\"td_mngsmall\">";
list += "<label for=\"me_use_" + ms + "\" class=\"sound_only\">PC사용</label>";
list += "<select name=\"me_use[]\" id=\"me_use_" + ms + "\">";
list += "<option value=\"1\">사용함</option>";
list += "<option value=\"0\">사용안함</option>";
list += "</select>";
list += "</td>";
list += "<td class=\"td_mngsmall\">";
list += "<label for=\"me_mobile_use_" + ms + "\" class=\"sound_only\">모바일사용</label>";
list += "<select name=\"me_mobile_use[]\" id=\"me_mobile_use_" + ms + "\">";
list += "<option value=\"1\">사용함</option>";
list += "<option value=\"0\">사용안함</option>";
list += "</select>";
list += "</td>";
list += "<td class=\"td_mng\">";
<?php if ($new == 'new') { ?>
list += "<button type=\"button\" class=\"btn_add_submenu btn_03\">추가</button>\n";
<?php } ?>
list += "<button type=\"button\" class=\"btn_del_menu btn_02\">삭제</button>";
list += "</td>";
list += "</tr>";
$(document).on("click", ".add_select", function() { var $menu_last = null;
var me_name = $.trim($(this).siblings("input[name='subject[]']").val());
var me_link = $.trim($(this).siblings("input[name='link[]']").val());
add_menu_list(me_name, me_link, "<?php echo $code; ?>"); if (code)
}); $menu_last = $menulist.find("tr.menu_group_" + code + ":last");
}); else
$menu_last = $menulist.find("tr.menu_list:last");
function add_menu_list(name, link, code) if ($menu_last.length > 0) {
{ $menu_last.after(list);
var $menulist = $("#menulist", opener.document); } else {
var ms = new Date().getTime(); if ($menulist.find("#empty_menu_list").length > 0)
var sub_menu_class; $menulist.find("#empty_menu_list").remove();
<?php if($new == 'new') { ?>
sub_menu_class = " class=\"td_category\"";
<?php } else { ?>
sub_menu_class = " class=\"td_category sub_menu_class\"";
<?php } ?>
var list = "<tr class=\"menu_list menu_group_<?php echo $code; ?>\">"; $menulist.find("table tbody").append(list);
list += "<td"+sub_menu_class+">"; }
list += "<label for=\"me_name_"+ms+"\" class=\"sound_only\">메뉴<strong class=\"sound_only\"> 필수</strong></label>";
list += "<input type=\"hidden\" name=\"code[]\" value=\"<?php echo $code; ?>\">";
list += "<input type=\"text\" name=\"me_name[]\" value=\""+name+"\" id=\"me_name_"+ms+"\" required class=\"required frm_input full_input\">";
list += "</td>";
list += "<td>";
list += "<label for=\"me_link_"+ms+"\" class=\"sound_only\">링크<strong class=\"sound_only\"> 필수</strong></label>";
list += "<input type=\"text\" name=\"me_link[]\" value=\""+link+"\" id=\"me_link_"+ms+"\" required class=\"required frm_input full_input\">";
list += "</td>";
list += "<td class=\"td_mng\">";
list += "<label for=\"me_target_"+ms+"\" class=\"sound_only\">새창</label>";
list += "<select name=\"me_target[]\" id=\"me_target_"+ms+"\">";
list += "<option value=\"self\">사용안함</option>";
list += "<option value=\"blank\">사용함</option>";
list += "</select>";
list += "</td>";
list += "<td class=\"td_numsmall\">";
list += "<label for=\"me_order_"+ms+"\" class=\"sound_only\">순서<strong class=\"sound_only\"> 필수</strong></label>";
list += "<input type=\"text\" name=\"me_order[]\" value=\"0\" id=\"me_order_"+ms+"\" required class=\"required frm_input\" size=\"5\">";
list += "</td>";
list += "<td class=\"td_mngsmall\">";
list += "<label for=\"me_use_"+ms+"\" class=\"sound_only\">PC사용</label>";
list += "<select name=\"me_use[]\" id=\"me_use_"+ms+"\">";
list += "<option value=\"1\">사용함</option>";
list += "<option value=\"0\">사용안함</option>";
list += "</select>";
list += "</td>";
list += "<td class=\"td_mngsmall\">";
list += "<label for=\"me_mobile_use_"+ms+"\" class=\"sound_only\">모바일사용</label>";
list += "<select name=\"me_mobile_use[]\" id=\"me_mobile_use_"+ms+"\">";
list += "<option value=\"1\">사용함</option>";
list += "<option value=\"0\">사용안함</option>";
list += "</select>";
list += "</td>";
list += "<td class=\"td_mng\">";
<?php if($new == 'new') { ?>
list += "<button type=\"button\" class=\"btn_add_submenu btn_03\">추가</button>\n";
<?php } ?>
list += "<button type=\"button\" class=\"btn_del_menu btn_02\">삭제</button>";
list += "</td>";
list += "</tr>";
var $menu_last = null; $menulist.find("tr.menu_list").each(function(index) {
$(this).removeClass("bg0 bg1")
.addClass("bg" + (index % 2));
});
if(code) window.close();
$menu_last = $menulist.find("tr.menu_group_"+code+":last");
else
$menu_last = $menulist.find("tr.menu_list:last");
if($menu_last.length > 0) {
$menu_last.after(list);
} else {
if($menulist.find("#empty_menu_list").length > 0)
$menulist.find("#empty_menu_list").remove();
$menulist.find("table tbody").append(list);
} }
$menulist.find("tr.menu_list").each(function(index) {
$(this).removeClass("bg0 bg1")
.addClass("bg"+(index % 2));
});
window.close();
}
</script> </script>
<?php <?php
include_once(G5_PATH.'/tail.sub.php'); require_once G5_PATH . '/tail.sub.php';
+56 -57
View File
@@ -1,12 +1,13 @@
<?php <?php
include_once('./_common.php'); require_once './_common.php';
if ($is_admin != 'super') if ($is_admin != 'super') {
die('최고관리자만 접근 가능합니다.'); die('최고관리자만 접근 가능합니다.');
}
$type = isset($_REQUEST['type']) ? preg_replace('/[^0-9a-z_]/i', '', $_REQUEST['type']) : ''; $type = isset($_REQUEST['type']) ? preg_replace('/[^0-9a-z_]/i', '', $_REQUEST['type']) : '';
switch($type) { switch ($type) {
case 'group': case 'group':
$sql = " select gr_id as id, gr_subject as subject $sql = " select gr_id as id, gr_subject as subject
from {$g5['group_table']} from {$g5['group_table']}
@@ -27,32 +28,31 @@ switch($type) {
break; break;
} }
if($sql) { if ($sql) {
$result = sql_query($sql); $result = sql_query($sql);
for($i=0; $row=sql_fetch_array($result); $i++) { for ($i = 0; $row = sql_fetch_array($result); $i++) {
if($i == 0) { if ($i == 0) {
$bbs_subject_title = ($type == 'board') ? '게시판제목' : '제목';
$bbs_subject_title = ($type == 'board') ? '게시판제목' : '제목'; ?>
?>
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<thead> <thead>
<tr> <tr>
<th scope="col"><?php echo $bbs_subject_title; ?></th> <th scope="col"><?php echo $bbs_subject_title; ?></th>
<?php if($type == 'board'){ ?> <?php if ($type == 'board') { ?>
<th scope="col">게시판 그룹</th> <th scope="col">게시판 그룹</th>
<?php } ?> <?php } ?>
<th scope="col">선택</th> <th scope="col">선택</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php } <?php }
switch($type) { switch ($type) {
case 'group': case 'group':
$link = G5_BBS_URL.'/group.php?gr_id='.$row['id']; $link = G5_BBS_URL . '/group.php?gr_id=' . $row['id'];
break; break;
case 'board': case 'board':
$link = get_pretty_url($row['id']); $link = get_pretty_url($row['id']);
@@ -64,26 +64,26 @@ if($sql) {
$link = ''; $link = '';
break; break;
} }
?>
<tr>
<td><?php echo $row['subject']; ?></td>
<?php
if($type == 'board'){
$group = get_call_func_cache('get_group', array($row['gr_id']));
?> ?>
<td><?php echo $group['gr_subject']; ?></td>
<?php } ?>
<td class="td_mngsmall">
<input type="hidden" name="subject[]" value="<?php echo preg_replace('/[\'\"]/', '', $row['subject']); ?>">
<input type="hidden" name="link[]" value="<?php echo $link; ?>">
<button type="button" class="add_select btn btn_03"><span class="sound_only"><?php echo $row['subject']; ?> </span>선택</button>
</td>
</tr>
<?php } ?> <tr>
<td><?php echo $row['subject']; ?></td>
<?php
if ($type == 'board') {
$group = get_call_func_cache('get_group', array($row['gr_id']));
?>
<td><?php echo $group['gr_subject']; ?></td>
<?php } ?>
<td class="td_mngsmall">
<input type="hidden" name="subject[]" value="<?php echo preg_replace('/[\'\"]/', '', $row['subject']); ?>">
<input type="hidden" name="link[]" value="<?php echo $link; ?>">
<button type="button" class="add_select btn btn_03"><span class="sound_only"><?php echo $row['subject']; ?> </span>선택</button>
</td>
</tr>
</tbody> <?php } ?>
</tbody>
</table> </table>
</div> </div>
@@ -96,26 +96,25 @@ if($sql) {
</div> </div>
<?php } else { ?> <?php } else { ?>
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<colgroup> <colgroup>
<col class="grid_2"> <col class="grid_2">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="me_name">메뉴<strong class="sound_only"> 필수</strong></label></th> <th scope="row"><label for="me_name">메뉴<strong class="sound_only"> 필수</strong></label></th>
<td><input type="text" name="me_name" id="me_name" required class="frm_input required"></td> <td><input type="text" name="me_name" id="me_name" required class="frm_input required"></td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="me_link">링크<strong class="sound_only"> 필수</strong></label></th> <th scope="row"><label for="me_link">링크<strong class="sound_only"> 필수</strong></label></th>
<td> <td>
<?php echo help('링크는 http://를 포함해서 입력해 주세요.'); ?> <?php echo help('링크는 http://를 포함해서 입력해 주세요.'); ?>
<input type="text" name="me_link" id="me_link" required class="frm_input full_input required"> <input type="text" name="me_link" id="me_link" required class="frm_input full_input required">
</td> </td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
</div> </div>
+165 -164
View File
@@ -1,17 +1,19 @@
<?php <?php
$sub_menu = "100290"; $sub_menu = "100290";
include_once('./_common.php'); require_once './_common.php';
if ($is_admin != 'super') if ($is_admin != 'super') {
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
}
// 메뉴테이블 생성 // 메뉴테이블 생성
if( !isset($g5['menu_table']) ){ if (!isset($g5['menu_table'])) {
die('<meta charset="utf-8">dbconfig.php 파일에 <strong>$g5[\'menu_table\'] = G5_TABLE_PREFIX.\'menu\';</strong> 를 추가해 주세요.'); die('<meta charset="utf-8">dbconfig.php 파일에 <strong>$g5[\'menu_table\'] = G5_TABLE_PREFIX.\'menu\';</strong> 를 추가해 주세요.');
} }
if(!sql_query(" DESCRIBE {$g5['menu_table']} ", false)) { if (!sql_query(" DESCRIBE {$g5['menu_table']} ", false)) {
sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['menu_table']}` ( sql_query(
" CREATE TABLE IF NOT EXISTS `{$g5['menu_table']}` (
`me_id` int(11) NOT NULL AUTO_INCREMENT, `me_id` int(11) NOT NULL AUTO_INCREMENT,
`me_code` varchar(255) NOT NULL DEFAULT '', `me_code` varchar(255) NOT NULL DEFAULT '',
`me_name` varchar(255) NOT NULL DEFAULT '', `me_name` varchar(255) NOT NULL DEFAULT '',
@@ -21,14 +23,16 @@ if(!sql_query(" DESCRIBE {$g5['menu_table']} ", false)) {
`me_use` tinyint(4) NOT NULL DEFAULT '0', `me_use` tinyint(4) NOT NULL DEFAULT '0',
`me_mobile_use` tinyint(4) NOT NULL DEFAULT '0', `me_mobile_use` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`me_id`) PRIMARY KEY (`me_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ", true); ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ",
true
);
} }
$sql = " select * from {$g5['menu_table']} order by me_id "; $sql = " select * from {$g5['menu_table']} order by me_id ";
$result = sql_query($sql); $result = sql_query($sql);
$g5['title'] = "메뉴설정"; $g5['title'] = "메뉴설정";
include_once('./admin.head.php'); require_once './admin.head.php';
$colspan = 7; $colspan = 7;
$sub_menu_info = ''; $sub_menu_info = '';
@@ -39,181 +43,178 @@ $sub_menu_info = '';
</div> </div>
<form name="fmenulist" id="fmenulist" method="post" action="./menu_list_update.php" onsubmit="return fmenulist_submit(this);"> <form name="fmenulist" id="fmenulist" method="post" action="./menu_list_update.php" onsubmit="return fmenulist_submit(this);">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div id="menulist" class="tbl_head01 tbl_wrap"> <div id="menulist" class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col">메뉴</th> <th scope="col">메뉴</th>
<th scope="col">링크</th> <th scope="col">링크</th>
<th scope="col">새창</th> <th scope="col">새창</th>
<th scope="col">순서</th> <th scope="col">순서</th>
<th scope="col">PC사용</th> <th scope="col">PC사용</th>
<th scope="col">모바일사용</th> <th scope="col">모바일사용</th>
<th scope="col">관리</th> <th scope="col">관리</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) for ($i = 0; $row = sql_fetch_array($result); $i++) {
{ $bg = 'bg' . ($i % 2);
$bg = 'bg'.($i%2); $sub_menu_class = '';
$sub_menu_class = ''; if (strlen($row['me_code']) == 4) {
if(strlen($row['me_code']) == 4) { $sub_menu_class = ' sub_menu_class';
$sub_menu_class = ' sub_menu_class'; $sub_menu_info = '<span class="sound_only">' . $row['me_name'] . '의 서브</span>';
$sub_menu_info = '<span class="sound_only">'.$row['me_name'].'의 서브</span>'; $sub_menu_ico = '<span class="sub_menu_ico"></span>';
$sub_menu_ico = '<span class="sub_menu_ico"></span>'; }
}
$search = array('"', "'"); $search = array('"', "'");
$replace = array('&#034;', '&#039;'); $replace = array('&#034;', '&#039;');
$me_name = str_replace($search, $replace, $row['me_name']); $me_name = str_replace($search, $replace, $row['me_name']);
?> ?>
<tr class="<?php echo $bg; ?> menu_list menu_group_<?php echo substr($row['me_code'], 0, 2); ?>"> <tr class="<?php echo $bg; ?> menu_list menu_group_<?php echo substr($row['me_code'], 0, 2); ?>">
<td class="td_category<?php echo $sub_menu_class; ?>"> <td class="td_category<?php echo $sub_menu_class; ?>">
<input type="hidden" name="code[]" value="<?php echo substr($row['me_code'], 0, 2) ?>"> <input type="hidden" name="code[]" value="<?php echo substr($row['me_code'], 0, 2) ?>">
<label for="me_name_<?php echo $i; ?>" class="sound_only"><?php echo $sub_menu_info; ?> 메뉴<strong class="sound_only"> 필수</strong></label> <label for="me_name_<?php echo $i; ?>" class="sound_only"><?php echo $sub_menu_info; ?> 메뉴<strong class="sound_only"> 필수</strong></label>
<input type="text" name="me_name[]" value="<?php echo get_sanitize_input($me_name); ?>" id="me_name_<?php echo $i; ?>" required class="required tbl_input full_input"> <input type="text" name="me_name[]" value="<?php echo get_sanitize_input($me_name); ?>" id="me_name_<?php echo $i; ?>" required class="required tbl_input full_input">
</td> </td>
<td> <td>
<label for="me_link_<?php echo $i; ?>" class="sound_only">링크<strong class="sound_only"> 필수</strong></label> <label for="me_link_<?php echo $i; ?>" class="sound_only">링크<strong class="sound_only"> 필수</strong></label>
<input type="text" name="me_link[]" value="<?php echo $row['me_link'] ?>" id="me_link_<?php echo $i; ?>" required class="required tbl_input full_input"> <input type="text" name="me_link[]" value="<?php echo $row['me_link'] ?>" id="me_link_<?php echo $i; ?>" required class="required tbl_input full_input">
</td> </td>
<td class="td_mng"> <td class="td_mng">
<label for="me_target_<?php echo $i; ?>" class="sound_only">새창</label> <label for="me_target_<?php echo $i; ?>" class="sound_only">새창</label>
<select name="me_target[]" id="me_target_<?php echo $i; ?>"> <select name="me_target[]" id="me_target_<?php echo $i; ?>">
<option value="self"<?php echo get_selected($row['me_target'], 'self', true); ?>>사용안함</option> <option value="self" <?php echo get_selected($row['me_target'], 'self', true); ?>>사용안함</option>
<option value="blank"<?php echo get_selected($row['me_target'], 'blank', true); ?>>사용함</option> <option value="blank" <?php echo get_selected($row['me_target'], 'blank', true); ?>>사용함</option>
</select> </select>
</td> </td>
<td class="td_num"> <td class="td_num">
<label for="me_order_<?php echo $i; ?>" class="sound_only">순서</label> <label for="me_order_<?php echo $i; ?>" class="sound_only">순서</label>
<input type="text" name="me_order[]" value="<?php echo $row['me_order'] ?>" id="me_order_<?php echo $i; ?>" class="tbl_input" size="5"> <input type="text" name="me_order[]" value="<?php echo $row['me_order'] ?>" id="me_order_<?php echo $i; ?>" class="tbl_input" size="5">
</td> </td>
<td class="td_mng"> <td class="td_mng">
<label for="me_use_<?php echo $i; ?>" class="sound_only">PC사용</label> <label for="me_use_<?php echo $i; ?>" class="sound_only">PC사용</label>
<select name="me_use[]" id="me_use_<?php echo $i; ?>"> <select name="me_use[]" id="me_use_<?php echo $i; ?>">
<option value="1"<?php echo get_selected($row['me_use'], '1', true); ?>>사용함</option> <option value="1" <?php echo get_selected($row['me_use'], '1', true); ?>>사용함</option>
<option value="0"<?php echo get_selected($row['me_use'], '0', true); ?>>사용안함</option> <option value="0" <?php echo get_selected($row['me_use'], '0', true); ?>>사용안함</option>
</select> </select>
</td> </td>
<td class="td_mng"> <td class="td_mng">
<label for="me_mobile_use_<?php echo $i; ?>" class="sound_only">모바일사용</label> <label for="me_mobile_use_<?php echo $i; ?>" class="sound_only">모바일사용</label>
<select name="me_mobile_use[]" id="me_mobile_use_<?php echo $i; ?>"> <select name="me_mobile_use[]" id="me_mobile_use_<?php echo $i; ?>">
<option value="1"<?php echo get_selected($row['me_mobile_use'], '1', true); ?>>사용함</option> <option value="1" <?php echo get_selected($row['me_mobile_use'], '1', true); ?>>사용함</option>
<option value="0"<?php echo get_selected($row['me_mobile_use'], '0', true); ?>>사용안함</option> <option value="0" <?php echo get_selected($row['me_mobile_use'], '0', true); ?>>사용안함</option>
</select> </select>
</td> </td>
<td class="td_mng"> <td class="td_mng">
<?php if(strlen($row['me_code']) == 2) { ?> <?php if (strlen($row['me_code']) == 2) { ?>
<button type="button" class="btn_add_submenu btn_03 ">추가</button> <button type="button" class="btn_add_submenu btn_03 ">추가</button>
<?php } ?> <?php } ?>
<button type="button" class="btn_del_menu btn_02">삭제</button> <button type="button" class="btn_del_menu btn_02">삭제</button>
</td> </td>
</tr> </tr>
<?php <?php
} }
if ($i==0) if ($i == 0) {
echo '<tr id="empty_menu_list"><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>'; echo '<tr id="empty_menu_list"><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
?> }
</tbody> ?>
</table> </tbody>
</div> </table>
</div>
<div class="btn_fixed_top"> <div class="btn_fixed_top">
<button type="button" onclick="return add_menu();" class="btn btn_02">메뉴추가<span class="sound_only"> 새창</span></button> <button type="button" onclick="return add_menu();" class="btn btn_02">메뉴추가<span class="sound_only"> 새창</span></button>
<input type="submit" name="act_button" value="확인" class="btn_submit btn "> <input type="submit" name="act_button" value="확인" class="btn_submit btn ">
</div> </div>
</form> </form>
<script> <script>
$(function() { $(function() {
$(document).on("click", ".btn_add_submenu", function() { $(document).on("click", ".btn_add_submenu", function() {
var code = $(this).closest("tr").find("input[name='code[]']").val().substr(0, 2);
add_submenu(code);
});
$(document).on("click", ".btn_del_menu", function() {
if(!confirm("메뉴를 삭제하시겠습니까?"))
return false;
var $tr = $(this).closest("tr");
if($tr.find("td.sub_menu_class").length > 0) {
$tr.remove();
} else {
var code = $(this).closest("tr").find("input[name='code[]']").val().substr(0, 2); var code = $(this).closest("tr").find("input[name='code[]']").val().substr(0, 2);
$("tr.menu_group_"+code).remove(); add_submenu(code);
} });
if($("#menulist tr.menu_list").length < 1) { $(document).on("click", ".btn_del_menu", function() {
var list = "<tr id=\"empty_menu_list\"><td colspan=\"<?php echo $colspan; ?>\" class=\"empty_table\">자료가 없습니다.</td></tr>\n"; if (!confirm("메뉴를 삭제하시겠습니까?\n메뉴 삭제후 메뉴설정의 확인 버튼을 눌러 메뉴를 저장해 주세요."))
$("#menulist table tbody").append(list); return false;
} else {
$("#menulist tr.menu_list").each(function(index) {
$(this).removeClass("bg0 bg1")
.addClass("bg"+(index % 2));
});
}
});
});
function add_menu() var $tr = $(this).closest("tr");
{ if ($tr.find("td.sub_menu_class").length > 0) {
var max_code = base_convert(0, 10, 36); $tr.remove();
$("#menulist tr.menu_list").each(function() { } else {
var me_code = $(this).find("input[name='code[]']").val().substr(0, 2); var code = $(this).closest("tr").find("input[name='code[]']").val().substr(0, 2);
if(max_code < me_code) $("tr.menu_group_" + code).remove();
max_code = me_code; }
if ($("#menulist tr.menu_list").length < 1) {
var list = "<tr id=\"empty_menu_list\"><td colspan=\"<?php echo $colspan; ?>\" class=\"empty_table\">자료가 없습니다.</td></tr>\n";
$("#menulist table tbody").append(list);
} else {
$("#menulist tr.menu_list").each(function(index) {
$(this).removeClass("bg0 bg1")
.addClass("bg" + (index % 2));
});
}
});
}); });
var url = "./menu_form.php?code="+max_code+"&new=new"; function add_menu() {
window.open(url, "add_menu", "left=100,top=100,width=550,height=650,scrollbars=yes,resizable=yes"); var max_code = base_convert(0, 10, 36);
return false; $("#menulist tr.menu_list").each(function() {
} var me_code = $(this).find("input[name='code[]']").val().substr(0, 2);
if (max_code < me_code)
max_code = me_code;
});
function add_submenu(code) var url = "./menu_form.php?code=" + max_code + "&new=new";
{ window.open(url, "add_menu", "left=100,top=100,width=550,height=650,scrollbars=yes,resizable=yes");
var url = "./menu_form.php?code="+code; return false;
window.open(url, "add_menu", "left=100,top=100,width=550,height=650,scrollbars=yes,resizable=yes");
return false;
}
function base_convert(number, frombase, tobase) {
// discuss at: http://phpjs.org/functions/base_convert/
// original by: Philippe Baumann
// improved by: Rafał Kukawski (http://blog.kukawski.pl)
// example 1: base_convert('A37334', 16, 2);
// returns 1: '101000110111001100110100'
return parseInt(number + '', frombase | 0)
.toString(tobase | 0);
}
function fmenulist_submit(f)
{
var me_links = document.getElementsByName('me_link[]');
var reg = /^javascript/;
for (i=0; i<me_links.length; i++){
if( reg.test(me_links[i].value) ){
alert('링크에 자바스크립트문을 입력할수 없습니다.');
me_links[i].focus();
return false;
}
} }
return true; function add_submenu(code) {
} var url = "./menu_form.php?code=" + code;
window.open(url, "add_menu", "left=100,top=100,width=550,height=650,scrollbars=yes,resizable=yes");
return false;
}
function base_convert(number, frombase, tobase) {
// discuss at: http://phpjs.org/functions/base_convert/
// original by: Philippe Baumann
// improved by: Rafał Kukawski (http://blog.kukawski.pl)
// example 1: base_convert('A37334', 16, 2);
// returns 1: '101000110111001100110100'
return parseInt(number + '', frombase | 0)
.toString(tobase | 0);
}
function fmenulist_submit(f) {
var me_links = document.getElementsByName('me_link[]');
var reg = /^javascript/;
for (i = 0; i < me_links.length; i++) {
if (reg.test(me_links[i].value)) {
alert('링크에 자바스크립트문을 입력할수 없습니다.');
me_links[i].focus();
return false;
}
}
return true;
}
</script> </script>
<?php <?php
include_once ('./admin.tail.php'); require_once './admin.tail.php';
+22 -20
View File
@@ -1,11 +1,12 @@
<?php <?php
$sub_menu = "100290"; $sub_menu = "100290";
include_once('./_common.php'); require_once './_common.php';
check_demo(); check_demo();
if ($is_admin != 'super') if ($is_admin != 'super') {
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
}
check_admin_token(); check_admin_token();
@@ -15,46 +16,47 @@ sql_query($sql);
$group_code = null; $group_code = null;
$primary_code = null; $primary_code = null;
$count = count($_POST['code']); $count = isset($_POST['code']) ? count($_POST['code']) : 0;
for ($i=0; $i<$count; $i++) for ($i = 0; $i < $count; $i++) {
{
$_POST = array_map_deep('trim', $_POST); $_POST = array_map_deep('trim', $_POST);
if(preg_match('/^javascript/i', preg_replace('/[ ]{1,}|[\t]/', '', $_POST['me_link'][$i]))){ if (preg_match('/^javascript/i', preg_replace('/[ ]{1,}|[\t]/', '', $_POST['me_link'][$i]))) {
$_POST['me_link'][$i] = G5_URL; $_POST['me_link'][$i] = G5_URL;
} }
$_POST['me_link'][$i] = is_array($_POST['me_link']) ? clean_xss_tags(clean_xss_attributes(preg_replace('/[ ]{2,}|[\t]/', '', $_POST['me_link'][$i]), 1)) : ''; $_POST['me_link'][$i] = is_array($_POST['me_link']) ? clean_xss_tags(clean_xss_attributes(preg_replace('/[ ]{2,}|[\t]/', '', $_POST['me_link'][$i]), 1)) : '';
$_POST['me_link'][$i] = html_purifier($_POST['me_link'][$i]);
$code = is_array($_POST['code']) ? strip_tags($_POST['code'][$i]) : ''; $code = is_array($_POST['code']) ? strip_tags($_POST['code'][$i]) : '';
$me_name = is_array($_POST['me_name']) ? strip_tags($_POST['me_name'][$i]) : ''; $me_name = is_array($_POST['me_name']) ? strip_tags($_POST['me_name'][$i]) : '';
$me_link = (preg_match('/^javascript/i', $_POST['me_link'][$i]) || preg_match('/script:/i', $_POST['me_link'][$i])) ? G5_URL : strip_tags(clean_xss_attributes($_POST['me_link'][$i])); $me_link = (preg_match('/^javascript/i', $_POST['me_link'][$i]) || preg_match('/script:/i', $_POST['me_link'][$i])) ? G5_URL : strip_tags(clean_xss_attributes($_POST['me_link'][$i]));
if(!$code || !$me_name || !$me_link) if (!$code || !$me_name || !$me_link) {
continue; continue;
}
$sub_code = ''; $sub_code = '';
if($group_code == $code) { if ($group_code == $code) {
$sql = " select MAX(SUBSTRING(me_code,3,2)) as max_me_code $sql = " select MAX(SUBSTRING(me_code,3,2)) as max_me_code
from {$g5['menu_table']} from {$g5['menu_table']}
where SUBSTRING(me_code,1,2) = '$primary_code' "; where SUBSTRING(me_code,1,2) = '$primary_code' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
$sub_code = base_convert($row['max_me_code'], 36, 10); $sub_code = (int)base_convert($row['max_me_code'], 36, 10);
$sub_code += 36; $sub_code += 36;
$sub_code = base_convert($sub_code, 10, 36); $sub_code = base_convert((string)$sub_code, 10, 36);
$me_code = $primary_code.$sub_code; $me_code = $primary_code . $sub_code;
} else { } else {
$sql = " select MAX(SUBSTRING(me_code,1,2)) as max_me_code $sql = " select MAX(SUBSTRING(me_code,1,2)) as max_me_code
from {$g5['menu_table']} from {$g5['menu_table']}
where LENGTH(me_code) = '2' "; where LENGTH(me_code) = '2' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
$me_code = base_convert($row['max_me_code'], 36, 10); $me_code = (int)base_convert($row['max_me_code'], 36, 10);
$me_code += 36; $me_code += 36;
$me_code = base_convert($me_code, 10, 36); $me_code = base_convert((string)$me_code, 10, 36);
$group_code = $code; $group_code = $code;
$primary_code = $me_code; $primary_code = $me_code;
@@ -62,13 +64,13 @@ for ($i=0; $i<$count; $i++)
// 메뉴 등록 // 메뉴 등록
$sql = " insert into {$g5['menu_table']} $sql = " insert into {$g5['menu_table']}
set me_code = '".$me_code."', set me_code = '" . $me_code . "',
me_name = '".$me_name."', me_name = '" . $me_name . "',
me_link = '".$me_link."', me_link = '" . $me_link . "',
me_target = '".sql_real_escape_string(strip_tags($_POST['me_target'][$i]))."', me_target = '" . sql_real_escape_string(strip_tags($_POST['me_target'][$i])) . "',
me_order = '".sql_real_escape_string(strip_tags($_POST['me_order'][$i]))."', me_order = '" . sql_real_escape_string(strip_tags($_POST['me_order'][$i])) . "',
me_use = '".sql_real_escape_string(strip_tags($_POST['me_use'][$i]))."', me_use = '" . sql_real_escape_string(strip_tags($_POST['me_use'][$i])) . "',
me_mobile_use = '".sql_real_escape_string(strip_tags($_POST['me_mobile_use'][$i]))."' "; me_mobile_use = '" . sql_real_escape_string(strip_tags($_POST['me_mobile_use'][$i])) . "' ";
sql_query($sql); sql_query($sql);
} }
+128 -128
View File
@@ -1,17 +1,17 @@
<?php <?php
$sub_menu = '100310'; $sub_menu = '100310';
include_once('./_common.php'); require_once './_common.php';
include_once(G5_EDITOR_LIB); require_once G5_EDITOR_LIB;
auth_check_menu($auth, $sub_menu, "w"); auth_check_menu($auth, $sub_menu, "w");
$nw_id = isset($_REQUEST['nw_id']) ? preg_replace('/[^0-9]/', '', $_REQUEST['nw_id']) : 0; $nw_id = isset($_REQUEST['nw_id']) ? (string)preg_replace('/[^0-9]/', '', $_REQUEST['nw_id']) : 0;
$nw = array( $nw = array(
'nw_begin_time'=>'', 'nw_begin_time' => '',
'nw_end_time'=>'', 'nw_end_time' => '',
'nw_subject'=>'', 'nw_subject' => '',
'nw_content'=>'', 'nw_content' => '',
'nw_division'=>'', 'nw_division' => '',
); );
$html_title = "팝업레이어"; $html_title = "팝업레이어";
@@ -20,15 +20,14 @@ $html_title = "팝업레이어";
$sql = " ALTER TABLE `{$g5['new_win_table']}` ADD `nw_division` VARCHAR(10) NOT NULL DEFAULT 'both' "; $sql = " ALTER TABLE `{$g5['new_win_table']}` ADD `nw_division` VARCHAR(10) NOT NULL DEFAULT 'both' ";
sql_query($sql, false); sql_query($sql, false);
if ($w == "u") if ($w == "u") {
{
$html_title .= " 수정"; $html_title .= " 수정";
$sql = " select * from {$g5['new_win_table']} where nw_id = '$nw_id' "; $sql = " select * from {$g5['new_win_table']} where nw_id = '$nw_id' ";
$nw = sql_fetch($sql); $nw = sql_fetch($sql);
if (! (isset($nw['nw_id']) && $nw['nw_id'])) alert("등록된 자료가 없습니다."); if (!(isset($nw['nw_id']) && $nw['nw_id'])) {
} alert("등록된 자료가 없습니다.");
else }
{ } else {
$html_title .= " 입력"; $html_title .= " 입력";
$nw['nw_device'] = 'both'; $nw['nw_device'] = 'both';
$nw['nw_disable_hours'] = 24; $nw['nw_disable_hours'] = 24;
@@ -40,133 +39,134 @@ else
} }
$g5['title'] = $html_title; $g5['title'] = $html_title;
include_once (G5_ADMIN_PATH.'/admin.head.php'); require_once G5_ADMIN_PATH . '/admin.head.php';
?> ?>
<form name="frmnewwin" action="./newwinformupdate.php" onsubmit="return frmnewwin_check(this);" method="post"> <form name="frmnewwin" action="./newwinformupdate.php" onsubmit="return frmnewwin_check(this);" method="post">
<input type="hidden" name="w" value="<?php echo $w; ?>"> <input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="nw_id" value="<?php echo $nw_id; ?>"> <input type="hidden" name="nw_id" value="<?php echo $nw_id; ?>">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div class="local_desc01 local_desc"> <div class="local_desc01 local_desc">
<p>초기화면 접속 시 자동으로 뜰 팝업레이어를 설정합니다.</p> <p>초기화면 접속 시 자동으로 뜰 팝업레이어를 설정합니다.</p>
</div> </div>
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?></caption> <caption><?php echo $g5['title']; ?></caption>
<colgroup> <colgroup>
<col class="grid_4"> <col class="grid_4">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="nw_division">구분</label></th> <th scope="row"><label for="nw_division">구분</label></th>
<td> <td>
<?php echo help("커뮤니티에 표시될 것인지 쇼핑몰에 표시될 것인지를 설정합니다."); ?> <?php echo help("커뮤니티에 표시될 것인지 쇼핑몰에 표시될 것인지를 설정합니다."); ?>
<select name="nw_division" id="nw_division"> <select name="nw_division" id="nw_division">
<option value="both"<?php echo get_selected($nw['nw_division'], 'both', true); ?>>커뮤니티와 쇼핑몰</option> <option value="comm" <?php echo get_selected($nw['nw_division'], 'comm'); ?>>커뮤니티</option>
<option value="comm"<?php echo get_selected($nw['nw_division'], 'comm'); ?>>커뮤니티</option> <?php if (defined('G5_USE_SHOP') && G5_USE_SHOP) { ?>
<option value="shop"<?php echo get_selected($nw['nw_division'], 'shop'); ?>>쇼핑몰</option> <option value="both" <?php echo get_selected($nw['nw_division'], 'both', true); ?>>커뮤니티와 쇼핑몰</option>
</select> <option value="shop" <?php echo get_selected($nw['nw_division'], 'shop'); ?>>쇼핑몰</option>
</td> <?php } ?>
</tr> </select>
<tr> </td>
<th scope="row"><label for="nw_device">접속기기</label></th> </tr>
<td> <tr>
<?php echo help("팝업레이어가 표시될 접속기기를 설정합니다."); ?> <th scope="row"><label for="nw_device">접속기기</label></th>
<select name="nw_device" id="nw_device"> <td>
<option value="both"<?php echo get_selected($nw['nw_device'], 'both', true); ?>>PC와 모바일</option> <?php echo help("팝업레이어가 표시될 접속기기를 설정합니다."); ?>
<option value="pc"<?php echo get_selected($nw['nw_device'], 'pc'); ?>>PC</option> <select name="nw_device" id="nw_device">
<option value="mobile"<?php echo get_selected($nw['nw_device'], 'mobile'); ?>>모바일</option> <option value="both" <?php echo get_selected($nw['nw_device'], 'both', true); ?>>PC와 모바일</option>
</select> <option value="pc" <?php echo get_selected($nw['nw_device'], 'pc'); ?>>PC</option>
</td> <option value="mobile" <?php echo get_selected($nw['nw_device'], 'mobile'); ?>>모바일</option>
</tr> </select>
<tr> </td>
<th scope="row"><label for="nw_disable_hours">시간<strong class="sound_only"> 필수</strong></label></th> </tr>
<td> <tr>
<?php echo help("고객이 다시 보지 않음을 선택할 시 몇 시간동안 팝업레이어를 보여주지 않을지 설정합니다."); ?> <th scope="row"><label for="nw_disable_hours">시간<strong class="sound_only"> 필수</strong></label></th>
<input type="text" name="nw_disable_hours" value="<?php echo $nw['nw_disable_hours']; ?>" id="nw_disable_hours" required class="frm_input required" size="5"> 시간 <td>
</td> <?php echo help("고객이 다시 보지 않음을 선택할 시 몇 시간동안 팝업레이어를 보여주지 않을지 설정합니다."); ?>
</tr> <input type="text" name="nw_disable_hours" value="<?php echo $nw['nw_disable_hours']; ?>" id="nw_disable_hours" required class="frm_input required" size="5"> 시간
<tr> </td>
<th scope="row"><label for="nw_begin_time">시작일시<strong class="sound_only"> 필수</strong></label></th> </tr>
<td> <tr>
<input type="text" name="nw_begin_time" value="<?php echo $nw['nw_begin_time']; ?>" id="nw_begin_time" required class="frm_input required" size="21" maxlength="19"> <th scope="row"><label for="nw_begin_time">시작일시<strong class="sound_only"> 필수</strong></label></th>
<input type="checkbox" name="nw_begin_chk" value="<?php echo date("Y-m-d 00:00:00", G5_SERVER_TIME); ?>" id="nw_begin_chk" onclick="if (this.checked == true) this.form.nw_begin_time.value=this.form.nw_begin_chk.value; else this.form.nw_begin_time.value = this.form.nw_begin_time.defaultValue;"> <td>
<label for="nw_begin_chk">시작일시를 오늘로</label> <input type="text" name="nw_begin_time" value="<?php echo $nw['nw_begin_time']; ?>" id="nw_begin_time" required class="frm_input required" size="21" maxlength="19">
</td> <input type="checkbox" name="nw_begin_chk" value="<?php echo date("Y-m-d 00:00:00", G5_SERVER_TIME); ?>" id="nw_begin_chk" onclick="if (this.checked == true) this.form.nw_begin_time.value=this.form.nw_begin_chk.value; else this.form.nw_begin_time.value = this.form.nw_begin_time.defaultValue;">
</tr> <label for="nw_begin_chk">시작일시를 오늘로</label>
<tr> </td>
<th scope="row"><label for="nw_end_time">종료일시<strong class="sound_only"> 필수</strong></label></th> </tr>
<td> <tr>
<input type="text" name="nw_end_time" value="<?php echo $nw['nw_end_time']; ?>" id="nw_end_time" required class="frm_input required" size="21" maxlength="19"> <th scope="row"><label for="nw_end_time">종료일시<strong class="sound_only"> 필수</strong></label></th>
<input type="checkbox" name="nw_end_chk" value="<?php echo date("Y-m-d 23:59:59", G5_SERVER_TIME+(60*60*24*7)); ?>" id="nw_end_chk" onclick="if (this.checked == true) this.form.nw_end_time.value=this.form.nw_end_chk.value; else this.form.nw_end_time.value = this.form.nw_end_time.defaultValue;"> <td>
<label for="nw_end_chk">종료일시를 오늘로부터 7일 후로</label> <input type="text" name="nw_end_time" value="<?php echo $nw['nw_end_time']; ?>" id="nw_end_time" required class="frm_input required" size="21" maxlength="19">
</td> <input type="checkbox" name="nw_end_chk" value="<?php echo date("Y-m-d 23:59:59", G5_SERVER_TIME + (60 * 60 * 24 * 7)); ?>" id="nw_end_chk" onclick="if (this.checked == true) this.form.nw_end_time.value=this.form.nw_end_chk.value; else this.form.nw_end_time.value = this.form.nw_end_time.defaultValue;">
</tr> <label for="nw_end_chk">종료일시를 오늘로부터 7일 후로</label>
<tr> </td>
<th scope="row"><label for="nw_left">팝업레이어 좌측 위치<strong class="sound_only"> 필수</strong></label></th> </tr>
<td> <tr>
<input type="text" name="nw_left" value="<?php echo $nw['nw_left']; ?>" id="nw_left" required class="frm_input required" size="5"> px <th scope="row"><label for="nw_left">팝업레이어 좌측 위치<strong class="sound_only"> 필수</strong></label></th>
</td> <td>
</tr> <input type="text" name="nw_left" value="<?php echo $nw['nw_left']; ?>" id="nw_left" required class="frm_input required" size="5"> px
<tr> </td>
<th scope="row"><label for="nw_top">팝업레이어 상단 위치<strong class="sound_only"> 필수</strong></label></th> </tr>
<td> <tr>
<input type="text" name="nw_top" value="<?php echo $nw['nw_top']; ?>" id="nw_top" required class="frm_input required" size="5"> px <th scope="row"><label for="nw_top">팝업레이어 상단 위치<strong class="sound_only"> 필수</strong></label></th>
</td> <td>
</tr> <input type="text" name="nw_top" value="<?php echo $nw['nw_top']; ?>" id="nw_top" required class="frm_input required" size="5"> px
<tr> </td>
<th scope="row"><label for="nw_width">팝업레이어 넓이<strong class="sound_only"> 필수</strong></label></th> </tr>
<td> <tr>
<input type="text" name="nw_width" value="<?php echo $nw['nw_width'] ?>" id="nw_width" required class="frm_input required" size="5"> px <th scope="row"><label for="nw_width">팝업레이어 넓이<strong class="sound_only"> 필수</strong></label></th>
</td> <td>
</tr> <input type="text" name="nw_width" value="<?php echo $nw['nw_width'] ?>" id="nw_width" required class="frm_input required" size="5"> px
<tr> </td>
<th scope="row"><label for="nw_height">팝업레이어 높이<strong class="sound_only"> 필수</strong></label></th> </tr>
<td> <tr>
<input type="text" name="nw_height" value="<?php echo $nw['nw_height'] ?>" id="nw_height" required class="frm_input required" size="5"> px <th scope="row"><label for="nw_height">팝업레이어 높이<strong class="sound_only"> 필수</strong></label></th>
</td> <td>
</tr> <input type="text" name="nw_height" value="<?php echo $nw['nw_height'] ?>" id="nw_height" required class="frm_input required" size="5"> px
<tr> </td>
<th scope="row"><label for="nw_subject">팝업 제목<strong class="sound_only"> 필수</strong></label></th> </tr>
<td> <tr>
<input type="text" name="nw_subject" value="<?php echo get_sanitize_input($nw['nw_subject']); ?>" id="nw_subject" required class="frm_input required" size="80"> <th scope="row"><label for="nw_subject">팝업 제목<strong class="sound_only"> 필수</strong></label></th>
</td> <td>
</tr> <input type="text" name="nw_subject" value="<?php echo get_sanitize_input($nw['nw_subject']); ?>" id="nw_subject" required class="frm_input required" size="80">
<tr> </td>
<th scope="row"><label for="nw_content">내용</label></th> </tr>
<td><?php echo editor_html('nw_content', get_text(html_purifier($nw['nw_content']), 0)); ?></td> <tr>
</tr> <th scope="row"><label for="nw_content">내용</label></th>
</tbody> <td><?php echo editor_html('nw_content', get_text(html_purifier($nw['nw_content']), 0)); ?></td>
</table> </tr>
</div> </tbody>
</table>
</div>
<div class="btn_fixed_top"> <div class="btn_fixed_top">
<a href="./newwinlist.php" class=" btn btn_02">목록</a> <a href="./newwinlist.php" class=" btn btn_02">목록</a>
<input type="submit" value="확인" class="btn_submit btn" accesskey="s"> <input type="submit" value="확인" class="btn_submit btn" accesskey="s">
</div> </div>
</form> </form>
<script> <script>
function frmnewwin_check(f) function frmnewwin_check(f) {
{ errmsg = "";
errmsg = ""; errfld = "";
errfld = "";
<?php echo get_editor_js('nw_content'); ?> <?php echo get_editor_js('nw_content'); ?>
check_field(f.nw_subject, "제목을 입력하세요."); check_field(f.nw_subject, "제목을 입력하세요.");
if (errmsg != "") { if (errmsg != "") {
alert(errmsg); alert(errmsg);
errfld.focus(); errfld.focus();
return false; return false;
}
return true;
} }
return true;
}
</script> </script>
<?php <?php
include_once (G5_ADMIN_PATH.'/admin.tail.php'); require_once G5_ADMIN_PATH . '/admin.tail.php';
+26 -32
View File
@@ -1,16 +1,18 @@
<?php <?php
$sub_menu = '100310'; $sub_menu = '100310';
include_once('./_common.php'); require_once './_common.php';
$nw_id = isset($_REQUEST['nw_id']) ? preg_replace('/[^0-9]/', '', $_REQUEST['nw_id']) : 0; $nw_id = isset($_REQUEST['nw_id']) ? (string)preg_replace('/[^0-9]/', '', $_REQUEST['nw_id']) : 0;
if ($w == "u" || $w == "d") if ($w == "u" || $w == "d") {
check_demo(); check_demo();
}
if ($w == 'd') if ($w == 'd') {
auth_check_menu($auth, $sub_menu, "d"); auth_check_menu($auth, $sub_menu, "d");
else } else {
auth_check_menu($auth, $sub_menu, "w"); auth_check_menu($auth, $sub_menu, "w");
}
check_admin_token(); check_admin_token();
@@ -18,23 +20,23 @@ $nw_subject = isset($_POST['nw_subject']) ? strip_tags(clean_xss_attributes($_PO
$posts = array(); $posts = array();
$check_keys = array( $check_keys = array(
'nw_device'=>'str', 'nw_device' => 'str',
'nw_division'=>'str', 'nw_division' => 'str',
'nw_begin_time'=>'str', 'nw_begin_time' => 'str',
'nw_end_time'=>'str', 'nw_end_time' => 'str',
'nw_disable_hours'=>'int', 'nw_disable_hours' => 'int',
'nw_left'=>'int', 'nw_left' => 'int',
'nw_top'=>'int', 'nw_top' => 'int',
'nw_height'=>'int', 'nw_height' => 'int',
'nw_width'=>'int', 'nw_width' => 'int',
'nw_content'=>'text', 'nw_content' => 'text',
'nw_content_html'=>'text', 'nw_content_html' => 'text',
); );
foreach($check_keys as $key=>$val){ foreach ($check_keys as $key => $val) {
if($val === 'int'){ if ($val === 'int') {
$posts[$key] = isset($_POST[$key]) ? (int) $_POST[$key] : 0; $posts[$key] = isset($_POST[$key]) ? (int) $_POST[$key] : 0;
} else if ($val === 'str') { } elseif ($val === 'str') {
$posts[$key] = isset($_POST[$key]) ? clean_xss_tags($_POST[$key], 1, 1) : 0; $posts[$key] = isset($_POST[$key]) ? clean_xss_tags($_POST[$key], 1, 1) : 0;
} else { } else {
$posts[$key] = isset($_POST[$key]) ? trim($_POST[$key]) : 0; $posts[$key] = isset($_POST[$key]) ? trim($_POST[$key]) : 0;
@@ -54,29 +56,21 @@ $sql_common = " nw_device = '{$posts['nw_device']}',
nw_content = '{$posts['nw_content']}', nw_content = '{$posts['nw_content']}',
nw_content_html = '{$posts['nw_content_html']}' "; nw_content_html = '{$posts['nw_content_html']}' ";
if($w == "") if ($w == "") {
{
$sql = " insert {$g5['new_win_table']} set $sql_common "; $sql = " insert {$g5['new_win_table']} set $sql_common ";
sql_query($sql); sql_query($sql);
$nw_id = sql_insert_id(); $nw_id = sql_insert_id();
} } elseif ($w == "u") {
else if ($w == "u")
{
$sql = " update {$g5['new_win_table']} set $sql_common where nw_id = '$nw_id' "; $sql = " update {$g5['new_win_table']} set $sql_common where nw_id = '$nw_id' ";
sql_query($sql); sql_query($sql);
} } elseif ($w == "d") {
else if ($w == "d")
{
$sql = " delete from {$g5['new_win_table']} where nw_id = '$nw_id' "; $sql = " delete from {$g5['new_win_table']} where nw_id = '$nw_id' ";
sql_query($sql); sql_query($sql);
} }
if ($w == "d") if ($w == "d") {
{
goto_url('./newwinlist.php'); goto_url('./newwinlist.php');
} } else {
else
{
goto_url("./newwinform.php?w=u&amp;nw_id=$nw_id"); goto_url("./newwinform.php?w=u&amp;nw_id=$nw_id");
} }
+67 -64
View File
@@ -1,18 +1,19 @@
<?php <?php
$sub_menu = '100310'; $sub_menu = '100310';
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, "r"); auth_check_menu($auth, $sub_menu, "r");
if( !isset($g5['new_win_table']) ){ if (!isset($g5['new_win_table'])) {
die('<meta charset="utf-8">/data/dbconfig.php 파일에 <strong>$g5[\'new_win_table\'] = G5_TABLE_PREFIX.\'new_win\';</strong> 를 추가해 주세요.'); die('<meta charset="utf-8">/data/dbconfig.php 파일에 <strong>$g5[\'new_win_table\'] = G5_TABLE_PREFIX.\'new_win\';</strong> 를 추가해 주세요.');
} }
//내용(컨텐츠)정보 테이블이 있는지 검사한다. //내용(컨텐츠)정보 테이블이 있는지 검사한다.
if(!sql_query(" DESCRIBE {$g5['new_win_table']} ", false)) { if (!sql_query(" DESCRIBE {$g5['new_win_table']} ", false)) {
if(sql_query(" DESCRIBE {$g5['g5_shop_new_win_table']} ", false)) { if (sql_query(" DESCRIBE {$g5['g5_shop_new_win_table']} ", false)) {
sql_query(" ALTER TABLE {$g5['g5_shop_new_win_table']} RENAME TO `{$g5['new_win_table']}` ;", false); sql_query(" ALTER TABLE {$g5['g5_shop_new_win_table']} RENAME TO `{$g5['new_win_table']}` ;", false);
} else { } else {
$query_cp = sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['new_win_table']}` ( $query_cp = sql_query(
" CREATE TABLE IF NOT EXISTS `{$g5['new_win_table']}` (
`nw_id` int(11) NOT NULL AUTO_INCREMENT, `nw_id` int(11) NOT NULL AUTO_INCREMENT,
`nw_division` varchar(10) NOT NULL DEFAULT 'both', `nw_division` varchar(10) NOT NULL DEFAULT 'both',
`nw_device` varchar(10) NOT NULL DEFAULT 'both', `nw_device` varchar(10) NOT NULL DEFAULT 'both',
@@ -27,12 +28,14 @@ if(!sql_query(" DESCRIBE {$g5['new_win_table']} ", false)) {
`nw_content` text NOT NULL, `nw_content` text NOT NULL,
`nw_content_html` tinyint(4) NOT NULL DEFAULT '0', `nw_content_html` tinyint(4) NOT NULL DEFAULT '0',
PRIMARY KEY (`nw_id`) PRIMARY KEY (`nw_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ", true); ) ENGINE=MyISAM DEFAULT CHARSET=utf8 ",
true
);
} }
} }
$g5['title'] = '팝업레이어 관리'; $g5['title'] = '팝업레이어 관리';
include_once (G5_ADMIN_PATH.'/admin.head.php'); require_once G5_ADMIN_PATH . '/admin.head.php';
$sql_common = " from {$g5['new_win_table']} "; $sql_common = " from {$g5['new_win_table']} ";
@@ -45,7 +48,7 @@ $sql = "select * $sql_common order by nw_id desc ";
$result = sql_query($sql); $result = sql_query($sql);
?> ?>
<div class="local_ov01 local_ov"><span class="btn_ov01"><span class="ov_txt">전체 </span><span class="ov_num"> <?php echo $total_count; ?>건</span></span></div> <div class="local_ov01 local_ov"><span class="btn_ov01"><span class="ov_txt">전체 </span><span class="ov_num"> <?php echo $total_count; ?>건</span></span></div>
<div class="btn_fixed_top "> <div class="btn_fixed_top ">
<a href="./newwinform.php" class="btn btn_01">새창관리추가</a> <a href="./newwinform.php" class="btn btn_01">새창관리추가</a>
@@ -53,66 +56,66 @@ $result = sql_query($sql);
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col">번호</th> <th scope="col">번호</th>
<th scope="col">제목</th> <th scope="col">제목</th>
<th scope="col">접속기기</th> <th scope="col">접속기기</th>
<th scope="col">시작일시</th> <th scope="col">시작일시</th>
<th scope="col">종료일시</th> <th scope="col">종료일시</th>
<th scope="col">시간</th> <th scope="col">시간</th>
<th scope="col">Left</th> <th scope="col">Left</th>
<th scope="col">Top</th> <th scope="col">Top</th>
<th scope="col">Width</th> <th scope="col">Width</th>
<th scope="col">Height</th> <th scope="col">Height</th>
<th scope="col">관리</th> <th scope="col">관리</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i = 0; $row = sql_fetch_array($result); $i++) {
$bg = 'bg'.($i%2); $bg = 'bg' . ($i % 2);
switch($row['nw_device']) { switch ($row['nw_device']) {
case 'pc': case 'pc':
$nw_device = 'PC'; $nw_device = 'PC';
break; break;
case 'mobile': case 'mobile':
$nw_device = '모바일'; $nw_device = '모바일';
break; break;
default: default:
$nw_device = '모두'; $nw_device = '모두';
break; break;
} }
?> ?>
<tr class="<?php echo $bg; ?>"> <tr class="<?php echo $bg; ?>">
<td class="td_num"><?php echo $row['nw_id']; ?></td> <td class="td_num"><?php echo $row['nw_id']; ?></td>
<td class="td_left"><?php echo $row['nw_subject']; ?></td> <td class="td_left"><?php echo $row['nw_subject']; ?></td>
<td class="td_device"><?php echo $nw_device; ?></td> <td class="td_device"><?php echo $nw_device; ?></td>
<td class="td_datetime"><?php echo substr($row['nw_begin_time'],2,14); ?></td> <td class="td_datetime"><?php echo substr($row['nw_begin_time'], 2, 14); ?></td>
<td class="td_datetime"><?php echo substr($row['nw_end_time'],2,14); ?></td> <td class="td_datetime"><?php echo substr($row['nw_end_time'], 2, 14); ?></td>
<td class="td_num"><?php echo $row['nw_disable_hours']; ?>시간</td> <td class="td_num"><?php echo $row['nw_disable_hours']; ?>시간</td>
<td class="td_num"><?php echo $row['nw_left']; ?>px</td> <td class="td_num"><?php echo $row['nw_left']; ?>px</td>
<td class="td_num"><?php echo $row['nw_top']; ?>px</td> <td class="td_num"><?php echo $row['nw_top']; ?>px</td>
<td class="td_num"><?php echo $row['nw_width']; ?>px</td> <td class="td_num"><?php echo $row['nw_width']; ?>px</td>
<td class="td_num"><?php echo $row['nw_height']; ?>px</td> <td class="td_num"><?php echo $row['nw_height']; ?>px</td>
<td class="td_mng td_mng_m"> <td class="td_mng td_mng_m">
<a href="./newwinform.php?w=u&amp;nw_id=<?php echo $row['nw_id']; ?>" class="btn btn_03"><span class="sound_only"><?php echo $row['nw_subject']; ?> </span>수정</a> <a href="./newwinform.php?w=u&amp;nw_id=<?php echo $row['nw_id']; ?>" class="btn btn_03"><span class="sound_only"><?php echo $row['nw_subject']; ?> </span>수정</a>
<a href="./newwinformupdate.php?w=d&amp;nw_id=<?php echo $row['nw_id']; ?>" onclick="return delete_confirm(this);" class="btn btn_02"><span class="sound_only"><?php echo $row['nw_subject']; ?> </span>삭제</a> <a href="./newwinformupdate.php?w=d&amp;nw_id=<?php echo $row['nw_id']; ?>" onclick="return delete_confirm(this);" class="btn btn_02"><span class="sound_only"><?php echo $row['nw_subject']; ?> </span>삭제</a>
</td> </td>
</tr> </tr>
<?php <?php
} }
if ($i == 0) { if ($i == 0) {
echo '<tr><td colspan="11" class="empty_table">자료가 한건도 없습니다.</td></tr>'; echo '<tr><td colspan="11" class="empty_table">자료가 한건도 없습니다.</td></tr>';
} }
?> ?>
</tbody> </tbody>
</table> </table>
</div> </div>
<?php <?php
include_once (G5_ADMIN_PATH.'/admin.tail.php'); require_once G5_ADMIN_PATH . '/admin.tail.php';
+1 -1
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = "100500"; $sub_menu = "100500";
include_once('./_common.php'); require_once './_common.php';
check_demo(); check_demo();
+153 -148
View File
@@ -1,20 +1,20 @@
<?php <?php
$sub_menu = "200200"; $sub_menu = "200200";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
$sql_common = " from {$g5['point_table']} "; $sql_common = " from {$g5['point_table']} po";
$sql_search = " where (1) "; $sql_search = " where (1) ";
if ($stx) { if ($stx) {
$sql_search .= " and ( "; $sql_search .= " and ( ";
switch ($sfl) { switch ($sfl) {
case 'mb_id' : case 'mb_id':
$sql_search .= " ({$sfl} = '{$stx}') "; $sql_search .= " (po.{$sfl} = '{$stx}') ";
break; break;
default : default:
$sql_search .= " ({$sfl} like '%{$stx}%') "; $sql_search .= " ({$sfl} like '%{$stx}%') ";
break; break;
} }
@@ -36,36 +36,41 @@ $total_count = $row['cnt'];
$rows = $config['cf_page_rows']; $rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산 $total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지) if ($page < 1) {
$page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
}
$from_record = ($page - 1) * $rows; // 시작 열을 구함 $from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select * $sql = " select po.*, mb.mb_name, mb.mb_nick, mb.mb_email, mb.mb_homepage, mb.mb_point
{$sql_common} {$sql_common}
LEFT JOIN {$g5['member_table']} mb ON po.mb_id = mb.mb_id
{$sql_search} {$sql_search}
{$sql_order} {$sql_order}
limit {$from_record}, {$rows} "; limit {$from_record}, {$rows} ";
$result = sql_query($sql); $result = sql_query($sql);
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">전체목록</a>'; $listall = '<a href="' . $_SERVER['SCRIPT_NAME'] . '" class="ov_listall">전체목록</a>';
$mb = array(); $mb = array();
if ($sfl == 'mb_id' && $stx) if ($sfl == 'mb_id' && $stx) {
$mb = get_member($stx); $mb = get_member($stx);
}
$g5['title'] = '포인트관리'; $g5['title'] = '포인트관리';
include_once ('./admin.head.php'); require_once './admin.head.php';
$colspan = 9; $colspan = 9;
$po_expire_term = ''; $po_expire_term = '';
if($config['cf_point_term'] > 0) { if ($config['cf_point_term'] > 0) {
$po_expire_term = $config['cf_point_term']; $po_expire_term = $config['cf_point_term'];
} }
if (strstr($sfl, "mb_id")) if (strstr($sfl, "mb_id")) {
$mb_id = $stx; $mb_id = $stx;
else } else {
$mb_id = ""; $mb_id = "";
}
?> ?>
<div class="local_ov01 local_ov"> <div class="local_ov01 local_ov">
@@ -73,109 +78,110 @@ else
<span class="btn_ov01"><span class="ov_txt">전체 </span><span class="ov_num"> <?php echo number_format($total_count) ?> 건 </span></span> <span class="btn_ov01"><span class="ov_txt">전체 </span><span class="ov_num"> <?php echo number_format($total_count) ?> 건 </span></span>
<?php <?php
if (isset($mb['mb_id']) && $mb['mb_id']) { if (isset($mb['mb_id']) && $mb['mb_id']) {
echo '&nbsp;<span class="btn_ov01"><span class="ov_txt">' . $mb['mb_id'] .' 님 포인트 합계 </span><span class="ov_num"> ' . number_format($mb['mb_point']) . '점</span></span>'; echo '&nbsp;<span class="btn_ov01"><span class="ov_txt">' . $mb['mb_id'] . ' 님 포인트 합계 </span><span class="ov_num"> ' . number_format($mb['mb_point']) . '점</span></span>';
} else { } else {
$row2 = sql_fetch(" select sum(po_point) as sum_point from {$g5['point_table']} "); $row2 = sql_fetch(" select sum(po_point) as sum_point from {$g5['point_table']} ");
echo '&nbsp;<span class="btn_ov01"><span class="ov_txt">전체 합계</span><span class="ov_num">'.number_format($row2['sum_point']).'점 </span></span>'; echo '&nbsp;<span class="btn_ov01"><span class="ov_txt">전체 합계</span><span class="ov_num">' . number_format($row2['sum_point']) . '점 </span></span>';
} }
?> ?>
</div> </div>
<form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get"> <form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get">
<label for="sfl" class="sound_only">검색대상</label> <label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl"> <select name="sfl" id="sfl">
<option value="mb_id"<?php echo get_selected($sfl, "mb_id"); ?>>회원아이디</option> <option value="mb_id" <?php echo get_selected($sfl, "mb_id"); ?>>회원아이디</option>
<option value="po_content"<?php echo get_selected($sfl, "po_content"); ?>>내용</option> <option value="po_content" <?php echo get_selected($sfl, "po_content"); ?>>내용</option>
</select> </select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label> <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input"> <input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input">
<input type="submit" class="btn_submit" value="검색"> <input type="submit" class="btn_submit" value="검색">
</form> </form>
<form name="fpointlist" id="fpointlist" method="post" action="./point_list_delete.php" onsubmit="return fpointlist_submit(this);"> <form name="fpointlist" id="fpointlist" method="post" action="./point_list_delete.php" onsubmit="return fpointlist_submit(this);">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col"> <th scope="col">
<label for="chkall" class="sound_only">포인트 내역 전체</label> <label for="chkall" class="sound_only">포인트 내역 전체</label>
<input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)"> <input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)">
</th> </th>
<th scope="col"><?php echo subject_sort_link('mb_id') ?>회원아이디</a></th> <th scope="col"><?php echo subject_sort_link('mb_id') ?>회원아이디</a></th>
<th scope="col">이름</th> <th scope="col">이름</th>
<th scope="col">닉네임</th> <th scope="col">닉네임</th>
<th scope="col"><?php echo subject_sort_link('po_content') ?>포인트 내용</a></th> <th scope="col"><?php echo subject_sort_link('po_content') ?>포인트 내용</a></th>
<th scope="col"><?php echo subject_sort_link('po_point') ?>포인트</a></th> <th scope="col"><?php echo subject_sort_link('po_point') ?>포인트</a></th>
<th scope="col"><?php echo subject_sort_link('po_datetime') ?>일시</a></th> <th scope="col"><?php echo subject_sort_link('po_datetime') ?>일시</a></th>
<th scope="col">만료일</th> <th scope="col">만료일</th>
<th scope="col">포인트합</th> <th scope="col">포인트합</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i = 0; $row = sql_fetch_array($result); $i++) {
if ($i==0 || ($row2['mb_id'] != $row['mb_id'])) { $mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
$sql2 = " select mb_id, mb_name, mb_nick, mb_email, mb_homepage, mb_point from {$g5['member_table']} where mb_id = '{$row['mb_id']}' ";
$row2 = sql_fetch($sql2);
}
$mb_nick = get_sideview($row['mb_id'], $row2['mb_nick'], $row2['mb_email'], $row2['mb_homepage']); $link1 = $link2 = '';
if (!preg_match("/^\@/", $row['po_rel_table']) && $row['po_rel_table']) {
$link1 = '<a href="' . get_pretty_url($row['po_rel_table'], $row['po_rel_id']) . '" target="_blank">';
$link2 = '</a>';
}
$link1 = $link2 = ''; $expr = '';
if (!preg_match("/^\@/", $row['po_rel_table']) && $row['po_rel_table']) { if ($row['po_expired'] == 1) {
$link1 = '<a href="'.get_pretty_url($row['po_rel_table'], $row['po_rel_id']).'" target="_blank">'; $expr = ' txt_expired';
$link2 = '</a>'; }
}
$expr = ''; $bg = 'bg' . ($i % 2);
if($row['po_expired'] == 1) ?>
$expr = ' txt_expired';
$bg = 'bg'.($i%2); <tr class="<?php echo $bg; ?>">
?> <td class="td_chk">
<input type="hidden" name="mb_id[<?php echo $i ?>]" value="<?php echo $row['mb_id'] ?>" id="mb_id_<?php echo $i ?>">
<input type="hidden" name="po_id[<?php echo $i ?>]" value="<?php echo $row['po_id'] ?>" id="po_id_<?php echo $i ?>">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['po_content'] ?> 내역</label>
<input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
</td>
<td class="td_left"><a href="?sfl=mb_id&amp;stx=<?php echo $row['mb_id'] ?>"><?php echo $row['mb_id'] ?></a></td>
<td class="td_left"><?php echo get_text($row['mb_name']); ?></td>
<td class="td_left sv_use">
<div><?php echo $mb_nick ?></div>
</td>
<td class="td_left"><?php echo $link1 ?><?php echo $row['po_content'] ?><?php echo $link2 ?></td>
<td class="td_num td_pt"><?php echo number_format($row['po_point']) ?></td>
<td class="td_datetime"><?php echo $row['po_datetime'] ?></td>
<td class="td_datetime2<?php echo $expr; ?>">
<?php if ($row['po_expired'] == 1) { ?>
만료<?php echo substr(str_replace('-', '', $row['po_expire_date']), 2); ?>
<?php } else {
echo $row['po_expire_date'] == '9999-12-31' ? '&nbsp;' : $row['po_expire_date'];
} ?>
</td>
<td class="td_num td_pt"><?php echo number_format($row['po_mb_point']) ?></td>
</tr>
<tr class="<?php echo $bg; ?>"> <?php
<td class="td_chk"> }
<input type="hidden" name="mb_id[<?php echo $i ?>]" value="<?php echo $row['mb_id'] ?>" id="mb_id_<?php echo $i ?>">
<input type="hidden" name="po_id[<?php echo $i ?>]" value="<?php echo $row['po_id'] ?>" id="po_id_<?php echo $i ?>">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['po_content'] ?> 내역</label>
<input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
</td>
<td class="td_left"><a href="?sfl=mb_id&amp;stx=<?php echo $row['mb_id'] ?>"><?php echo $row['mb_id'] ?></a></td>
<td class="td_left"><?php echo get_text($row2['mb_name']); ?></td>
<td class="td_left sv_use"><div><?php echo $mb_nick ?></div></td>
<td class="td_left"><?php echo $link1 ?><?php echo $row['po_content'] ?><?php echo $link2 ?></td>
<td class="td_num td_pt"><?php echo number_format($row['po_point']) ?></td>
<td class="td_datetime"><?php echo $row['po_datetime'] ?></td>
<td class="td_datetime2<?php echo $expr; ?>">
<?php if ($row['po_expired'] == 1) { ?>
만료<?php echo substr(str_replace('-', '', $row['po_expire_date']), 2); ?>
<?php } else echo $row['po_expire_date'] == '9999-12-31' ? '&nbsp;' : $row['po_expire_date']; ?>
</td>
<td class="td_num td_pt"><?php echo number_format($row['po_mb_point']) ?></td>
</tr>
<?php if ($i == 0) {
} echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</tbody>
</table>
</div>
if ($i == 0) <div class="btn_fixed_top">
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>'; <input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value" class="btn btn_02">
?> </div>
</tbody>
</table>
</div>
<div class="btn_fixed_top">
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value" class="btn btn_02">
</div>
</form> </form>
@@ -185,67 +191,66 @@ else
<h2 class="h2_frm">개별회원 포인트 증감 설정</h2> <h2 class="h2_frm">개별회원 포인트 증감 설정</h2>
<form name="fpointlist2" method="post" id="fpointlist2" action="./point_update.php" autocomplete="off"> <form name="fpointlist2" method="post" id="fpointlist2" action="./point_update.php" autocomplete="off">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo isset($token) ? $token : ''; ?>"> <input type="hidden" name="token" value="<?php echo isset($token) ? $token : ''; ?>">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<colgroup> <colgroup>
<col class="grid_4"> <col class="grid_4">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="mb_id">회원아이디<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="mb_id">회원아이디<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="mb_id" value="<?php echo $mb_id ?>" id="mb_id" class="required frm_input" required></td> <td><input type="text" name="mb_id" value="<?php echo $mb_id ?>" id="mb_id" class="required frm_input" required></td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="po_content">포인트 내용<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="po_content">포인트 내용<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="po_content" id="po_content" required class="required frm_input" size="80"></td> <td><input type="text" name="po_content" id="po_content" required class="required frm_input" size="80"></td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="po_point">포인트<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="po_point">포인트<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="po_point" id="po_point" required class="required frm_input"></td> <td><input type="text" name="po_point" id="po_point" required class="required frm_input"></td>
</tr> </tr>
<?php if($config['cf_point_term'] > 0) { ?> <?php if ($config['cf_point_term'] > 0) { ?>
<tr> <tr>
<th scope="row"><label for="po_expire_term">포인트 유효기간</label></th> <th scope="row"><label for="po_expire_term">포인트 유효기간</label></th>
<td><input type="text" name="po_expire_term" value="<?php echo $po_expire_term; ?>" id="po_expire_term" class="frm_input" size="5"> 일</td> <td><input type="text" name="po_expire_term" value="<?php echo $po_expire_term; ?>" id="po_expire_term" class="frm_input" size="5"> 일</td>
</tr> </tr>
<?php } ?> <?php } ?>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="btn_confirm01 btn_confirm"> <div class="btn_confirm01 btn_confirm">
<input type="submit" value="확인" class="btn_submit btn"> <input type="submit" value="확인" class="btn_submit btn">
</div> </div>
</form> </form>
</section> </section>
<script> <script>
function fpointlist_submit(f) function fpointlist_submit(f) {
{ if (!is_checked("chk[]")) {
if (!is_checked("chk[]")) { alert(document.pressed + " 하실 항목을 하나 이상 선택하세요.");
alert(document.pressed+" 하실 항목을 하나 이상 선택하세요.");
return false;
}
if(document.pressed == "선택삭제") {
if(!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false; return false;
} }
}
return true; if (document.pressed == "선택삭제") {
} if (!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false;
}
}
return true;
}
</script> </script>
<?php <?php
include_once ('./admin.tail.php'); require_once './admin.tail.php';
+14 -12
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = '200200'; $sub_menu = '200200';
include_once('./_common.php'); require_once './_common.php';
check_demo(); check_demo();
@@ -9,11 +9,11 @@ auth_check_menu($auth, $sub_menu, 'd');
check_admin_token(); check_admin_token();
$count = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0; $count = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0;
if(!$count) if (!$count) {
alert($_POST['act_button'].' 하실 항목을 하나 이상 체크하세요.'); alert($_POST['act_button'] . ' 하실 항목을 하나 이상 체크하세요.');
}
for ($i=0; $i<$count; $i++) for ($i = 0; $i < $count; $i++) {
{
// 실제 번호를 넘김 // 실제 번호를 넘김
$k = $_POST['chk'][$i]; $k = $_POST['chk'][$i];
$po_id = (int) $_POST['po_id'][$k]; $po_id = (int) $_POST['po_id'][$k];
@@ -23,19 +23,21 @@ for ($i=0; $i<$count; $i++)
$sql = " select * from {$g5['point_table']} where po_id = '{$po_id}' "; $sql = " select * from {$g5['point_table']} where po_id = '{$po_id}' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
if(!$row['po_id']) if (!$row['po_id']) {
continue; continue;
}
if($row['po_point'] < 0) { if ($row['po_point'] < 0) {
$mb_id = $row['mb_id']; $mb_id = $row['mb_id'];
$po_point = abs($row['po_point']); $po_point = abs($row['po_point']);
if($row['po_rel_table'] == '@expire') if ($row['po_rel_table'] == '@expire') {
delete_expire_point($mb_id, $po_point); delete_expire_point($mb_id, $po_point);
else } else {
delete_use_point($mb_id, $po_point); delete_use_point($mb_id, $po_point);
}
} else { } else {
if($row['po_use_point'] > 0) { if ($row['po_use_point'] > 0) {
insert_use_point($row['mb_id'], $row['po_use_point'], $row['po_id']); insert_use_point($row['mb_id'], $row['po_use_point'], $row['po_id']);
} }
} }
@@ -53,8 +55,8 @@ for ($i=0; $i<$count; $i++)
// 포인트 UPDATE // 포인트 UPDATE
$sum_point = get_point_sum($_POST['mb_id'][$k]); $sum_point = get_point_sum($_POST['mb_id'][$k]);
$sql= " update {$g5['member_table']} set mb_point = '$sum_point' where mb_id = '{$str_mb_id}' "; $sql = " update {$g5['member_table']} set mb_point = '$sum_point' where mb_id = '{$str_mb_id}' ";
sql_query($sql); sql_query($sql);
} }
goto_url('./point_list.php?'.$qstr); goto_url('./point_list.php?' . $qstr);
+10 -8
View File
@@ -1,24 +1,26 @@
<?php <?php
$sub_menu = "200200"; $sub_menu = "200200";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
check_admin_token(); check_admin_token();
$mb_id = isset($_POST['mb_id']) ? strip_tags(clean_xss_attributes($_POST['mb_id'])) : ''; $mb_id = isset($_POST['mb_id']) ? strip_tags(clean_xss_attributes($_POST['mb_id'])) : '';
$po_point = isset($_POST['po_point']) ? strip_tags(clean_xss_attributes($_POST['po_point'])) : 0; $po_point = isset($_POST['po_point']) ? (int)strip_tags(clean_xss_attributes($_POST['po_point'])) : 0;
$po_content = isset($_POST['po_content']) ? strip_tags(clean_xss_attributes($_POST['po_content'])) : ''; $po_content = isset($_POST['po_content']) ? strip_tags(clean_xss_attributes($_POST['po_content'])) : '';
$expire = isset($_POST['po_expire_term']) ? preg_replace('/[^0-9]/', '', $_POST['po_expire_term']) : ''; $expire = isset($_POST['po_expire_term']) ? preg_replace('/[^0-9]/', '', $_POST['po_expire_term']) : '';
$mb = get_member($mb_id); $mb = get_member($mb_id);
if (!$mb['mb_id']) if (!$mb['mb_id']) {
alert('존재하는 회원아이디가 아닙니다.', './point_list.php?'.$qstr); alert('존재하는 회원아이디가 아닙니다.', './point_list.php?' . $qstr);
}
if (($po_point < 0) && ($po_point * (-1) > $mb['mb_point'])) if (($po_point < 0) && ($po_point * (-1) > $mb['mb_point'])) {
alert('포인트를 깎는 경우 현재 포인트보다 작으면 안됩니다.', './point_list.php?'.$qstr); alert('포인트를 깎는 경우 현재 포인트보다 작으면 안됩니다.', './point_list.php?' . $qstr);
}
insert_point($mb_id, $po_point, $po_content, '@passive', $mb_id, $member['mb_id'].'-'.uniqid(''), $expire); insert_point($mb_id, $po_point, $po_content, '@passive', $mb_id, $member['mb_id'] . '-' . uniqid(''), $expire);
goto_url('./point_list.php?'.$qstr); goto_url('./point_list.php?' . $qstr);
+5 -4
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = "200900"; $sub_menu = "200900";
include_once('./_common.php'); require_once './_common.php';
check_demo(); check_demo();
@@ -10,10 +10,11 @@ check_admin_token();
$count = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0; $count = (isset($_POST['chk']) && is_array($_POST['chk'])) ? count($_POST['chk']) : 0;
if(!$count) if (!$count) {
alert('삭제할 투표목록을 1개이상 선택해 주세요.'); alert('삭제할 투표목록을 1개이상 선택해 주세요.');
}
for($i=0; $i<$count; $i++) { for ($i = 0; $i < $count; $i++) {
$po_id = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0; $po_id = isset($_POST['chk'][$i]) ? (int) $_POST['chk'][$i] : 0;
$sql = " delete from {$g5['poll_table']} where po_id = '$po_id' "; $sql = " delete from {$g5['poll_table']} where po_id = '$po_id' ";
@@ -23,4 +24,4 @@ for($i=0; $i<$count; $i++) {
sql_query($sql); sql_query($sql);
} }
goto_url('./poll_list.php?'.$qstr); goto_url('./poll_list.php?' . $qstr);
+89 -87
View File
@@ -1,121 +1,123 @@
<?php <?php
$sub_menu = "200900"; $sub_menu = "200900";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
$po_id = isset($po_id) ? (int) $po_id : 0; $po_id = isset($po_id) ? (int) $po_id : 0;
$po = array( $po = array(
'po_subject'=>'', 'po_subject' => '',
'po_etc'=>'', 'po_etc' => '',
'po_level'=>'', 'po_level' => '',
'po_point'=>'', 'po_point' => '',
); );
$html_title = '투표'; $html_title = '투표';
if ($w == '') if ($w == '') {
$html_title .= ' 생성'; $html_title .= ' 생성';
else if ($w == 'u') { } elseif ($w == 'u') {
$html_title .= ' 수정'; $html_title .= ' 수정';
$sql = " select * from {$g5['poll_table']} where po_id = '{$po_id}' "; $sql = " select * from {$g5['poll_table']} where po_id = '{$po_id}' ";
$po = sql_fetch($sql); $po = sql_fetch($sql);
} else } else {
alert('w 값이 제대로 넘어오지 않았습니다.'); alert('w 값이 제대로 넘어오지 않았습니다.');
}
$g5['title'] = $html_title; $g5['title'] = $html_title;
include_once('./admin.head.php'); require_once './admin.head.php';
?> ?>
<form name="fpoll" id="fpoll" action="./poll_form_update.php" method="post" enctype="multipart/form-data"> <form name="fpoll" id="fpoll" action="./poll_form_update.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="po_id" value="<?php echo $po_id ?>"> <input type="hidden" name="po_id" value="<?php echo $po_id ?>">
<input type="hidden" name="w" value="<?php echo $w ?>"> <input type="hidden" name="w" value="<?php echo $w ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?></caption> <caption><?php echo $g5['title']; ?></caption>
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="po_subject">투표 제목<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="po_subject">투표 제목<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="po_subject" value="<?php echo get_sanitize_input($po['po_subject']); ?>" id="po_subject" required class="required frm_input" size="80" maxlength="125"></td> <td><input type="text" name="po_subject" value="<?php echo get_sanitize_input($po['po_subject']); ?>" id="po_subject" required class="required frm_input" size="80" maxlength="125"></td>
</tr> </tr>
<?php <?php
for ($i=1; $i<=9; $i++) { for ($i = 1; $i <= 9; $i++) {
$required = ''; $required = '';
if ($i==1 || $i==2) { $sound_only = '';
$required = 'required'; if ($i == 1 || $i == 2) {
$sound_only = '<strong class="sound_only">필수</strong>'; $required = 'required';
} $sound_only = '<strong class="sound_only">필수</strong>';
}
$po_poll = isset($po['po_poll'.$i]) ? get_text($po['po_poll'.$i]) : ''; $po_poll = isset($po['po_poll' . $i]) ? get_text($po['po_poll' . $i]) : '';
$po_cnt = isset($po['po_cnt'.$i]) ? get_text($po['po_cnt'.$i]) : 0; $po_cnt = isset($po['po_cnt' . $i]) ? get_text($po['po_cnt' . $i]) : 0;
?> ?>
<tr> <tr>
<th scope="row"><label for="po_poll<?php echo $i ?>">항목 <?php echo $i ?><?php echo $sound_only ?></label></th> <th scope="row"><label for="po_poll<?php echo $i ?>">항목 <?php echo $i ?><?php echo $sound_only ?></label></th>
<td> <td>
<input type="text" name="po_poll<?php echo $i ?>" value="<?php echo $po_poll ?>" id="po_poll<?php echo $i ?>" <?php echo $required ?> class="frm_input <?php echo $required ?>" maxlength="125"> <input type="text" name="po_poll<?php echo $i ?>" value="<?php echo $po_poll ?>" id="po_poll<?php echo $i ?>" <?php echo $required ?> class="frm_input <?php echo $required ?>" maxlength="125">
<label for="po_cnt<?php echo $i ?>">항목 <?php echo $i ?> 투표수</label> <label for="po_cnt<?php echo $i ?>">항목 <?php echo $i ?> 투표수</label>
<input type="text" name="po_cnt<?php echo $i ?>" value="<?php echo $po_cnt; ?>" id="po_cnt<?php echo $i ?>" class="frm_input" size="3"> <input type="text" name="po_cnt<?php echo $i ?>" value="<?php echo $po_cnt; ?>" id="po_cnt<?php echo $i ?>" class="frm_input" size="3">
</td> </td>
</tr> </tr>
<?php } ?> <?php } ?>
<tr> <tr>
<th scope="row"><label for="po_etc">기타의견</label></th> <th scope="row"><label for="po_etc">기타의견</label></th>
<td> <td>
<?php echo help('기타 의견을 남길 수 있도록 하려면, 간단한 질문을 입력하세요.') ?> <?php echo help('기타 의견을 남길 수 있도록 하려면, 간단한 질문을 입력하세요.') ?>
<input type="text" name="po_etc" value="<?php echo get_text($po['po_etc']) ?>" id="po_etc" class="frm_input" size="80" maxlength="125"> <input type="text" name="po_etc" value="<?php echo get_text($po['po_etc']) ?>" id="po_etc" class="frm_input" size="80" maxlength="125">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="po_level">투표가능 회원레벨</label></th> <th scope="row"><label for="po_level">투표가능 회원레벨</label></th>
<td> <td>
<?php echo help("레벨을 1로 설정하면 손님도 투표할 수 있습니다.") ?> <?php echo help("레벨을 1로 설정하면 손님도 투표할 수 있습니다.") ?>
<?php echo get_member_level_select('po_level', 1, 10, $po['po_level']) ?> 이상 투표할 수 있음 <?php echo get_member_level_select('po_level', 1, 10, $po['po_level']) ?> 이상 투표할 수 있음
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="po_point">포인트</label></th> <th scope="row"><label for="po_point">포인트</label></th>
<td> <td>
<?php echo help('투표에 참여한 회원에게 포인트를 부여합니다.') ?> <?php echo help('투표에 참여한 회원에게 포인트를 부여합니다.') ?>
<input type="text" name="po_point" value="<?php echo $po['po_point'] ?>" id="po_point" class="frm_input"> 점 <input type="text" name="po_point" value="<?php echo $po['po_point'] ?>" id="po_point" class="frm_input"> 점
</td> </td>
</tr> </tr>
<?php if ($w == 'u') { ?> <?php if ($w == 'u') { ?>
<tr> <tr>
<th scope="row">투표등록일</th> <th scope="row">투표등록일</th>
<td><?php echo $po['po_date']; ?></td> <td><?php echo $po['po_date']; ?></td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="po_ips">투표참가 IP</label></th> <th scope="row"><label for="po_ips">투표참가 IP</label></th>
<td><textarea name="po_ips" id="po_ips" readonly rows="10"><?php echo preg_replace("/\n/", " / ", $po['po_ips']) ?></textarea></td> <td><textarea name="po_ips" id="po_ips" readonly rows="10"><?php echo preg_replace("/\n/", " / ", $po['po_ips']) ?></textarea></td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="mb_ids">투표참가 회원</label></th> <th scope="row"><label for="mb_ids">투표참가 회원</label></th>
<td><textarea name="mb_ids" id="mb_ids" readonly rows="10"><?php echo preg_replace("/\n/", " / ", $po['mb_ids']) ?></textarea></td> <td><textarea name="mb_ids" id="mb_ids" readonly rows="10"><?php echo preg_replace("/\n/", " / ", $po['mb_ids']) ?></textarea></td>
</tr> </tr>
<?php } ?> <?php } ?>
</tbody> </tbody>
</table> </table>
</div> </div>
<div class="btn_fixed_top "> <div class="btn_fixed_top ">
<a href="./poll_list.php?<?php echo $qstr ?>" class="btn_02 btn">목록</a> <a href="./poll_list.php?<?php echo $qstr ?>" class="btn_02 btn">목록</a>
<input type="submit" value="확인" class="btn_submit btn" accesskey="s"> <input type="submit" value="확인" class="btn_submit btn" accesskey="s">
</div> </div>
</form> </form>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+42 -41
View File
@@ -1,60 +1,62 @@
<?php <?php
$sub_menu = "200900"; $sub_menu = "200900";
include_once('./_common.php'); require_once './_common.php';
$w = $_POST['w']; $w = $_POST['w'];
if ($w == 'u' || $w == 'd') if ($w == 'u' || $w == 'd') {
check_demo(); check_demo();
}
auth_check_menu($auth, $sub_menu, 'w'); auth_check_menu($auth, $sub_menu, 'w');
check_admin_token(); check_admin_token();
$check_keys = array( $check_keys = array(
'po_subject', 'po_subject',
'po_poll1', 'po_poll1',
'po_poll2', 'po_poll2',
'po_poll3', 'po_poll3',
'po_poll4', 'po_poll4',
'po_poll5', 'po_poll5',
'po_poll6', 'po_poll6',
'po_poll7', 'po_poll7',
'po_poll8', 'po_poll8',
'po_poll9', 'po_poll9',
'po_cnt1', 'po_cnt1',
'po_cnt2', 'po_cnt2',
'po_cnt3', 'po_cnt3',
'po_cnt4', 'po_cnt4',
'po_cnt5', 'po_cnt5',
'po_cnt6', 'po_cnt6',
'po_cnt7', 'po_cnt7',
'po_cnt8', 'po_cnt8',
'po_cnt9', 'po_cnt9',
'po_etc', 'po_etc',
'po_level', 'po_level',
'po_point', 'po_point',
'po_id' 'po_id'
); );
foreach( $_POST as $key=>$value ){ foreach ($_POST as $key => $value) {
if( empty($value) ) continue; if (empty($value)) {
continue;
}
if( in_array($key, $check_keys) ) { if (in_array($key, $check_keys)) {
$_POST[$key] = strip_tags(clean_xss_attributes($value)); $_POST[$key] = strip_tags(clean_xss_attributes($value));
} }
} }
if ($w == '') $po_id = isset($_POST['po_id']) ? $_POST['po_id'] : '';
{
if ($w == '') {
$sql = " insert {$g5['poll_table']} $sql = " insert {$g5['poll_table']}
( po_subject, po_poll1, po_poll2, po_poll3, po_poll4, po_poll5, po_poll6, po_poll7, po_poll8, po_poll9, po_cnt1, po_cnt2, po_cnt3, po_cnt4, po_cnt5, po_cnt6, po_cnt7, po_cnt8, po_cnt9, po_etc, po_level, po_point, po_date ) ( po_subject, po_poll1, po_poll2, po_poll3, po_poll4, po_poll5, po_poll6, po_poll7, po_poll8, po_poll9, po_cnt1, po_cnt2, po_cnt3, po_cnt4, po_cnt5, po_cnt6, po_cnt7, po_cnt8, po_cnt9, po_etc, po_level, po_point, po_date )
values ( '{$_POST['po_subject']}', '{$_POST['po_poll1']}', '{$_POST['po_poll2']}', '{$_POST['po_poll3']}', '{$_POST['po_poll4']}', '{$_POST['po_poll5']}', '{$_POST['po_poll6']}', '{$_POST['po_poll7']}', '{$_POST['po_poll8']}', '{$_POST['po_poll9']}', '{$_POST['po_cnt1']}', '{$_POST['po_cnt2']}', '{$_POST['po_cnt3']}', '{$_POST['po_cnt4']}', '{$_POST['po_cnt5']}', '{$_POST['po_cnt6']}', '{$_POST['po_cnt7']}', '{$_POST['po_cnt8']}', '{$_POST['po_cnt9']}', '{$_POST['po_etc']}', '{$_POST['po_level']}', '{$_POST['po_point']}', '".G5_TIME_YMD."' ) "; values ( '{$_POST['po_subject']}', '{$_POST['po_poll1']}', '{$_POST['po_poll2']}', '{$_POST['po_poll3']}', '{$_POST['po_poll4']}', '{$_POST['po_poll5']}', '{$_POST['po_poll6']}', '{$_POST['po_poll7']}', '{$_POST['po_poll8']}', '{$_POST['po_poll9']}', '{$_POST['po_cnt1']}', '{$_POST['po_cnt2']}', '{$_POST['po_cnt3']}', '{$_POST['po_cnt4']}', '{$_POST['po_cnt5']}', '{$_POST['po_cnt6']}', '{$_POST['po_cnt7']}', '{$_POST['po_cnt8']}', '{$_POST['po_cnt9']}', '{$_POST['po_etc']}', '{$_POST['po_level']}', '{$_POST['po_point']}', '" . G5_TIME_YMD . "' ) ";
sql_query($sql); sql_query($sql);
$po_id = sql_insert_id(); $po_id = sql_insert_id();
} } elseif ($w == 'u') {
else if ($w == 'u')
{
$sql = " update {$g5['poll_table']} $sql = " update {$g5['poll_table']}
set po_subject = '{$_POST['po_subject']}', set po_subject = '{$_POST['po_subject']}',
po_poll1 = '{$_POST['po_poll1']}', po_poll1 = '{$_POST['po_poll1']}',
@@ -80,9 +82,7 @@ else if ($w == 'u')
po_point = '{$_POST['po_point']}' po_point = '{$_POST['po_point']}'
where po_id = '{$_POST['po_id']}' "; where po_id = '{$_POST['po_id']}' ";
sql_query($sql); sql_query($sql);
} } elseif ($w == 'd') {
else if ($w == 'd')
{
$sql = " delete from {$g5['poll_table']} where po_id = '{$_POST['po_id']}' "; $sql = " delete from {$g5['poll_table']} where po_id = '{$_POST['po_id']}' ";
sql_query($sql); sql_query($sql);
@@ -96,7 +96,8 @@ else if ($w == 'd')
$row = sql_fetch(" select max(po_id) as max_po_id from {$g5['poll_table']} "); $row = sql_fetch(" select max(po_id) as max_po_id from {$g5['poll_table']} ");
sql_query(" update {$g5['config_table']} set cf_max_po_id = '{$row['max_po_id']}' "); sql_query(" update {$g5['config_table']} set cf_max_po_id = '{$row['max_po_id']}' ");
if ($w == 'd') if ($w == 'd') {
goto_url('./poll_list.php?'.$qstr); goto_url('./poll_list.php?' . $qstr);
else } else {
goto_url('./poll_form.php?w=u&po_id='.$po_id.'&amp;'.$qstr); goto_url('./poll_form.php?w=u&po_id=' . $po_id . '&amp;' . $qstr);
}
+86 -83
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = "200900"; $sub_menu = "200900";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
@@ -10,7 +10,7 @@ $sql_search = " where (1) ";
if ($stx) { if ($stx) {
$sql_search .= " and ( "; $sql_search .= " and ( ";
switch ($sfl) { switch ($sfl) {
default : default:
$sql_search .= " ({$sfl} like '%{$stx}%') "; $sql_search .= " ({$sfl} like '%{$stx}%') ";
break; break;
} }
@@ -18,7 +18,7 @@ if ($stx) {
} }
if (!$sst) { if (!$sst) {
$sst = "po_id"; $sst = "po_id";
$sod = "desc"; $sod = "desc";
} }
$sql_order = " order by {$sst} {$sod} "; $sql_order = " order by {$sst} {$sod} ";
@@ -32,7 +32,9 @@ $total_count = $row['cnt'];
$rows = $config['cf_page_rows']; $rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산 $total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지) if ($page < 1) {
$page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
}
$from_record = ($page - 1) * $rows; // 시작 열을 구함 $from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select * $sql = " select *
@@ -42,10 +44,10 @@ $sql = " select *
limit {$from_record}, {$rows} "; limit {$from_record}, {$rows} ";
$result = sql_query($sql); $result = sql_query($sql);
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">전체목록</a>'; $listall = '<a href="' . $_SERVER['SCRIPT_NAME'] . '" class="ov_listall">전체목록</a>';
$g5['title'] = '투표관리'; $g5['title'] = '투표관리';
include_once('./admin.head.php'); require_once './admin.head.php';
$colspan = 7; $colspan = 7;
?> ?>
@@ -56,102 +58,103 @@ $colspan = 7;
</div> </div>
<form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get"> <form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get">
<div class="sch_last"> <div class="sch_last">
<label for="sfl" class="sound_only">검색대상</label> <label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl"> <select name="sfl" id="sfl">
<option value="po_subject"<?php echo get_selected($sfl, "po_subject"); ?>>제목</option> <option value="po_subject" <?php echo get_selected($sfl, "po_subject"); ?>>제목</option>
</select> </select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label> <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input"> <input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input">
<input type="submit" class="btn_submit" value="검색"> <input type="submit" class="btn_submit" value="검색">
</div> </div>
</form> </form>
<form name="fpolllist" id="fpolllist" action="./poll_delete.php" method="post"> <form name="fpolllist" id="fpolllist" action="./poll_delete.php" method="post">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value=""> <input type="hidden" name="token" value="">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col"> <th scope="col">
<label for="chkall" class="sound_only">현재 페이지 투표 전체</label> <label for="chkall" class="sound_only">현재 페이지 투표 전체</label>
<input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)"> <input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)">
</th> </th>
<th scope="col">번호</th> <th scope="col">번호</th>
<th scope="col">제목</th> <th scope="col">제목</th>
<th scope="col">투표권한</th> <th scope="col">투표권한</th>
<th scope="col">투표수</th> <th scope="col">투표수</th>
<th scope="col">기타의견</th> <th scope="col">기타의견</th>
<th scope="col">관리</th> <th scope="col">관리</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i = 0; $row = sql_fetch_array($result); $i++) {
$sql2 = " select sum(po_cnt1+po_cnt2+po_cnt3+po_cnt4+po_cnt5+po_cnt6+po_cnt7+po_cnt8+po_cnt9) as sum_po_cnt from {$g5['poll_table']} where po_id = '{$row['po_id']}' "; $sql2 = " select sum(po_cnt1+po_cnt2+po_cnt3+po_cnt4+po_cnt5+po_cnt6+po_cnt7+po_cnt8+po_cnt9) as sum_po_cnt from {$g5['poll_table']} where po_id = '{$row['po_id']}' ";
$row2 = sql_fetch($sql2); $row2 = sql_fetch($sql2);
$po_etc = ($row['po_etc']) ? "사용" : "미사용"; $po_etc = ($row['po_etc']) ? "사용" : "미사용";
$s_mod = '<a href="./poll_form.php?'.$qstr.'&amp;w=u&amp;po_id='.$row['po_id'].'" class="btn btn_03">수정</a>'; $s_mod = '<a href="./poll_form.php?' . $qstr . '&amp;w=u&amp;po_id=' . $row['po_id'] . '" class="btn btn_03">수정</a>';
$bg = 'bg'.($i%2); $bg = 'bg' . ($i % 2);
?> ?>
<tr class="<?php echo $bg; ?>"> <tr class="<?php echo $bg; ?>">
<td class="td_chk"> <td class="td_chk">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo cut_str(get_text($row['po_subject']),70) ?> 투표</label> <label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo cut_str(get_text($row['po_subject']), 70) ?> 투표</label>
<input type="checkbox" name="chk[]" value="<?php echo $row['po_id'] ?>" id="chk_<?php echo $i ?>"> <input type="checkbox" name="chk[]" value="<?php echo $row['po_id'] ?>" id="chk_<?php echo $i ?>">
</td> </td>
<td class="td_num"><?php echo $row['po_id'] ?></td> <td class="td_num"><?php echo $row['po_id'] ?></td>
<td class="td_left"><?php echo cut_str(get_text($row['po_subject']),70) ?></td> <td class="td_left"><?php echo cut_str(get_text($row['po_subject']), 70) ?></td>
<td class="td_num"><?php echo $row['po_level'] ?></td> <td class="td_num"><?php echo $row['po_level'] ?></td>
<td class="td_num"><?php echo $row2['sum_po_cnt'] ?></td> <td class="td_num"><?php echo $row2['sum_po_cnt'] ?></td>
<td class="td_etc"><?php echo $po_etc ?></td> <td class="td_etc"><?php echo $po_etc ?></td>
<td class="td_mng td_mng_s"><?php echo $s_mod ?></td> <td class="td_mng td_mng_s"><?php echo $s_mod ?></td>
</tr> </tr>
<?php <?php
} }
if ($i==0) if ($i == 0) {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>'; echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
?> }
</tbody> ?>
</table> </tbody>
</div> </table>
</div>
<div class="btn_fixed_top"> <div class="btn_fixed_top">
<input type="submit" value="선택삭제" class="btn btn_02"> <input type="submit" value="선택삭제" class="btn btn_02">
<a href="./poll_form.php" id="poll_add" class="btn btn_01">투표 추가</a> <a href="./poll_form.php" id="poll_add" class="btn btn_01">투표 추가</a>
</div> </div>
</form> </form>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?> <?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?>
<script> <script>
$(function() { $(function() {
$('#fpolllist').submit(function() { $('#fpolllist').submit(function() {
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) { if (confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
if (!is_checked("chk[]")) { if (!is_checked("chk[]")) {
alert("선택삭제 하실 항목을 하나 이상 선택하세요."); alert("선택삭제 하실 항목을 하나 이상 선택하세요.");
return false;
}
return true;
} else {
return false; return false;
} }
});
return true;
} else {
return false;
}
}); });
});
</script> </script>
<?php <?php
include_once ('./admin.tail.php'); require_once './admin.tail.php';
+85 -85
View File
@@ -1,12 +1,12 @@
<?php <?php
$sub_menu = "300300"; $sub_menu = "300300";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
// 체크된 자료 삭제 // 체크된 자료 삭제
if (isset($_POST['chk']) && is_array($_POST['chk'])) { if (isset($_POST['chk']) && is_array($_POST['chk'])) {
for ($i=0; $i<count($_POST['chk']); $i++) { for ($i = 0; $i < count($_POST['chk']); $i++) {
$pp_id = (int) $_POST['chk'][$i]; $pp_id = (int) $_POST['chk'][$i];
sql_query(" delete from {$g5['popular_table']} where pp_id = '$pp_id' ", true); sql_query(" delete from {$g5['popular_table']} where pp_id = '$pp_id' ", true);
@@ -19,13 +19,13 @@ $sql_search = " where (1) ";
if ($stx) { if ($stx) {
$sql_search .= " and ( "; $sql_search .= " and ( ";
switch ($sfl) { switch ($sfl) {
case "pp_word" : case "pp_word":
$sql_search .= " ({$sfl} like '{$stx}%') "; $sql_search .= " ({$sfl} like '{$stx}%') ";
break; break;
case "pp_date" : case "pp_date":
$sql_search .= " ({$sfl} = '{$stx}') "; $sql_search .= " ({$sfl} = '{$stx}') ";
break; break;
default : default:
$sql_search .= " ({$sfl} like '%{$stx}%') "; $sql_search .= " ({$sfl} like '%{$stx}%') ";
break; break;
} }
@@ -47,7 +47,9 @@ $total_count = $row['cnt'];
$rows = $config['cf_page_rows']; $rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산 $total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지) if ($page < 1) {
$page = 1;
} // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함 $from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select * $sql = " select *
@@ -57,114 +59,112 @@ $sql = " select *
limit {$from_record}, {$rows} "; limit {$from_record}, {$rows} ";
$result = sql_query($sql); $result = sql_query($sql);
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">전체목록</a>'; $listall = '<a href="' . $_SERVER['SCRIPT_NAME'] . '" class="ov_listall">전체목록</a>';
$g5['title'] = '인기검색어관리'; $g5['title'] = '인기검색어관리';
include_once('./admin.head.php'); require_once './admin.head.php';
$colspan = 4; $colspan = 4;
?> ?>
<script> <script>
var list_update_php = ''; var list_update_php = '';
var list_delete_php = 'popular_list.php'; var list_delete_php = 'popular_list.php';
</script> </script>
<div class="local_ov01 local_ov"> <div class="local_ov01 local_ov">
<?php echo $listall ?> <?php echo $listall ?>
<span class="btn_ov01"><span class="ov_txt">건수</span><span class="ov_num"> <?php echo number_format($total_count) ?>개</span></span> <span class="btn_ov01"><span class="ov_txt">건수</span><span class="ov_num"> <?php echo number_format($total_count) ?>개</span></span>
</div> </div>
<form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get"> <form name="fsearch" id="fsearch" class="local_sch01 local_sch" method="get">
<div class="sch_last"> <div class="sch_last">
<label for="sfl" class="sound_only">검색대상</label> <label for="sfl" class="sound_only">검색대상</label>
<select name="sfl" id="sfl"> <select name="sfl" id="sfl">
<option value="pp_word"<?php echo get_selected($sfl, "pp_word"); ?>>검색어</option> <option value="pp_word" <?php echo get_selected($sfl, "pp_word"); ?>>검색어</option>
<option value="pp_date"<?php echo get_selected($sfl, "pp_date"); ?>>등록일</option> <option value="pp_date" <?php echo get_selected($sfl, "pp_date"); ?>>등록일</option>
</select> </select>
<label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label> <label for="stx" class="sound_only">검색어<strong class="sound_only"> 필수</strong></label>
<input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input"> <input type="text" name="stx" value="<?php echo $stx ?>" id="stx" required class="required frm_input">
<input type="submit" value="검색" class="btn_submit"> <input type="submit" value="검색" class="btn_submit">
</div> </div>
</form> </form>
<form name="fpopularlist" id="fpopularlist" method="post"> <form name="fpopularlist" id="fpopularlist" method="post">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo isset($token) ? $token : ''; ?>"> <input type="hidden" name="token" value="<?php echo isset($token) ? $token : ''; ?>">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col"> <th scope="col">
<label for="chkall" class="sound_only">현재 페이지 인기검색어 전체</label> <label for="chkall" class="sound_only">현재 페이지 인기검색어 전체</label>
<input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)"> <input type="checkbox" name="chkall" value="1" id="chkall" onclick="check_all(this.form)">
</th> </th>
<th scope="col"><?php echo subject_sort_link('pp_word') ?>검색어</a></th> <th scope="col"><?php echo subject_sort_link('pp_word') ?>검색어</a></th>
<th scope="col">등록일</th> <th scope="col">등록일</th>
<th scope="col">등록IP</th> <th scope="col">등록IP</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i = 0; $row = sql_fetch_array($result); $i++) {
$word = get_text($row['pp_word']);
$bg = 'bg' . ($i % 2);
?>
<tr class="<?php echo $bg; ?>">
<td class="td_chk">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $word ?></label>
<input type="checkbox" name="chk[]" value="<?php echo $row['pp_id'] ?>" id="chk_<?php echo $i ?>">
</td>
<td class="td_left"><a href="<?php echo $_SERVER['SCRIPT_NAME'] ?>?sfl=pp_word&amp;stx=<?php echo $word ?>"><?php echo $word ?></a></td>
<td><?php echo $row['pp_date'] ?></td>
<td><?php echo $row['pp_ip'] ?></td>
</tr>
<?php
}
$word = get_text($row['pp_word']); if ($i == 0) {
$bg = 'bg'.($i%2); echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
?> }
?>
</tbody>
</table>
<tr class="<?php echo $bg; ?>"> </div>
<td class="td_chk">
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $word ?></label>
<input type="checkbox" name="chk[]" value="<?php echo $row['pp_id'] ?>" id="chk_<?php echo $i ?>">
</td>
<td class="td_left"><a href="<?php echo $_SERVER['SCRIPT_NAME'] ?>?sfl=pp_word&amp;stx=<?php echo $word ?>"><?php echo $word ?></a></td>
<td><?php echo $row['pp_date'] ?></td>
<td><?php echo $row['pp_ip'] ?></td>
</tr>
<?php <?php if ($is_admin == 'super') { ?>
} <div class=" btn_fixed_top">
<button type="submit" class="btn btn_02">선택삭제</button>
if ($i == 0) </div>
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>'; <?php } ?>
?>
</tbody>
</table>
</div>
<?php if ($is_admin == 'super'){ ?>
<div class=" btn_fixed_top">
<button type="submit" class="btn btn_02">선택삭제</button>
</div>
<?php } ?>
</form> </form>
<?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?> <?php echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); ?>
<script> <script>
$(function() { $(function() {
$('#fpopularlist').submit(function() { $('#fpopularlist').submit(function() {
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) { if (confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
if (!is_checked("chk[]")) { if (!is_checked("chk[]")) {
alert("선택삭제 하실 항목을 하나 이상 선택하세요."); alert("선택삭제 하실 항목을 하나 이상 선택하세요.");
return false;
}
return true;
} else {
return false; return false;
} }
});
return true;
} else {
return false;
}
}); });
});
</script> </script>
<?php <?php
include_once('./admin.tail.php'); require_once './admin.tail.php';
+70 -60
View File
@@ -1,14 +1,18 @@
<?php <?php
$sub_menu = "300400"; $sub_menu = "300400";
include_once('./_common.php'); require_once './_common.php';
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
$fr_date = isset($_REQUEST['fr_date']) ? $_REQUEST['fr_date'] : ''; $fr_date = isset($_REQUEST['fr_date']) ? $_REQUEST['fr_date'] : '';
$to_date = isset($_REQUEST['to_date']) ? $_REQUEST['to_date'] : ''; $to_date = isset($_REQUEST['to_date']) ? $_REQUEST['to_date'] : '';
if (empty($fr_date) || ! preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $fr_date) ) $fr_date = G5_TIME_YMD; if (empty($fr_date) || !preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $fr_date)) {
if (empty($to_date) || ! preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $to_date) ) $to_date = G5_TIME_YMD; $fr_date = G5_TIME_YMD;
}
if (empty($to_date) || !preg_match("/^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])$/", $to_date)) {
$to_date = G5_TIME_YMD;
}
$qstr = "fr_date={$fr_date}&amp;to_date={$to_date}"; $qstr = "fr_date={$fr_date}&amp;to_date={$to_date}";
@@ -23,90 +27,96 @@ $total_count = sql_num_rows($result);
$rows = $config['cf_page_rows']; $rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산 $total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지) if ($page < 1) {
$page = 1;
} // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함 $from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select pp_word, count(*) as cnt {$sql_common} {$sql_search} {$sql_group} {$sql_order} limit {$from_record}, {$rows} "; $sql = " select pp_word, count(*) as cnt {$sql_common} {$sql_search} {$sql_group} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql); $result = sql_query($sql);
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">전체목록</a>'; $listall = '<a href="' . $_SERVER['SCRIPT_NAME'] . '" class="ov_listall">전체목록</a>';
$g5['title'] = '인기검색어순위'; $g5['title'] = '인기검색어순위';
include_once('./admin.head.php'); require_once './admin.head.php';
include_once(G5_PLUGIN_PATH.'/jquery-ui/datepicker.php'); require_once G5_PLUGIN_PATH . '/jquery-ui/datepicker.php';
$colspan = 3; $colspan = 3;
?> ?>
<script> <script>
$(function(){ $(function() {
$("#fr_date, #to_date").datepicker({ changeMonth: true, changeYear: true, dateFormat: "yy-mm-dd", showButtonPanel: true, yearRange: "c-99:c+99", maxDate: "+0d" }); $("#fr_date, #to_date").datepicker({
}); changeMonth: true,
changeYear: true,
dateFormat: "yy-mm-dd",
showButtonPanel: true,
yearRange: "c-99:c+99",
maxDate: "+0d"
});
});
</script> </script>
<div class="local_ov01 local_ov"> <div class="local_ov01 local_ov">
<?php echo $listall ?> <?php echo $listall ?>
<span class="btn_ov01"><span class="ov_txt">건수</span><span class="ov_num"> <?php echo number_format($total_count) ?>개</span></span> <span class="btn_ov01"><span class="ov_txt">건수</span><span class="ov_num"> <?php echo number_format($total_count) ?>개</span></span>
</div> </div>
<form name="fsearch" id="fsearch" class="local_sch02 local_sch" method="get"> <form name="fsearch" id="fsearch" class="local_sch02 local_sch" method="get">
<div class="sch_last"> <div class="sch_last">
<strong>기간별검색</strong> <strong>기간별검색</strong>
<input type="text" name="fr_date" value="<?php echo $fr_date ?>" id="fr_date" class="frm_input" size="11" maxlength="10"> <input type="text" name="fr_date" value="<?php echo $fr_date ?>" id="fr_date" class="frm_input" size="11" maxlength="10">
<label for="fr_date" class="sound_only">시작일</label> <label for="fr_date" class="sound_only">시작일</label>
~ ~
<input type="text" name="to_date" value="<?php echo $to_date ?>" id="to_date" class="frm_input" size="11" maxlength="10"> <input type="text" name="to_date" value="<?php echo $to_date ?>" id="to_date" class="frm_input" size="11" maxlength="10">
<label for="to_date" class="sound_only">종료일</label> <label for="to_date" class="sound_only">종료일</label>
<input type="submit" class="btn_sch2" value="검색"> <input type="submit" class="btn_sch2" value="검색">
</div> </div>
</form> </form>
<form name="fpopularrank" id="fpopularrank" method="post"> <form name="fpopularrank" id="fpopularrank" method="post">
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo isset($token) ? $token : ''; ?>"> <input type="hidden" name="token" value="<?php echo isset($token) ? $token : ''; ?>">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
<caption><?php echo $g5['title']; ?> 목록</caption> <caption><?php echo $g5['title']; ?> 목록</caption>
<thead> <thead>
<tr> <tr>
<th scope="col">순위</th> <th scope="col">순위</th>
<th scope="col">검색어</th> <th scope="col">검색어</th>
<th scope="col">검색회수</th> <th scope="col">검색회수</th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
<?php <?php
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i = 0; $row = sql_fetch_array($result); $i++) {
$word = get_text($row['pp_word']);
$rank = ($i + 1 + ($rows * ($page - 1)));
?>
<tr>
<td class="td_num"><?php echo $rank ?></td>
<td class="td_left"><?php echo $word ?></td>
<td class="td_num"><?php echo $row['cnt'] ?></td>
</tr>
<?php
}
$word = get_text($row['pp_word']); if ($i == 0) {
$rank = ($i + 1 + ($rows * ($page - 1))); echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
}
?> ?>
</tbody>
<tr> </table>
<td class="td_num"><?php echo $rank ?></td> </div>
<td class="td_left"><?php echo $word ?></td>
<td class="td_num"><?php echo $row['cnt'] ?></td>
</tr>
<?php
}
if ($i == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table>
</div>
</form> </form>
<?php <?php
echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page="); echo get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&amp;page=");
include_once('./admin.tail.php'); require_once './admin.tail.php';
+288 -277
View File
@@ -1,16 +1,17 @@
<?php <?php
$sub_menu = "300500"; $sub_menu = "300500";
include_once('./_common.php'); require_once './_common.php';
include_once(G5_EDITOR_LIB); require_once G5_EDITOR_LIB;
auth_check_menu($auth, $sub_menu, 'r'); auth_check_menu($auth, $sub_menu, 'r');
$g5['title'] = '1:1문의 설정'; $g5['title'] = '1:1문의 설정';
include_once ('./admin.head.php'); require_once './admin.head.php';
// DB 테이블 생성 // DB 테이블 생성
if(!sql_query(" DESCRIBE `{$g5['qa_config_table']}` ", false)) { if (!sql_query(" DESCRIBE `{$g5['qa_config_table']}` ", false)) {
sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['qa_config_table']}` ( sql_query(
" CREATE TABLE IF NOT EXISTS `{$g5['qa_config_table']}` (
`qa_title` varchar(255) NOT NULL DEFAULT'', `qa_title` varchar(255) NOT NULL DEFAULT'',
`qa_category` varchar(255) NOT NULL DEFAULT'', `qa_category` varchar(255) NOT NULL DEFAULT'',
`qa_skin` varchar(255) NOT NULL DEFAULT '', `qa_skin` varchar(255) NOT NULL DEFAULT '',
@@ -46,8 +47,11 @@ if(!sql_query(" DESCRIBE `{$g5['qa_config_table']}` ", false)) {
`qa_3` varchar(255) NOT NULL DEFAULT '', `qa_3` varchar(255) NOT NULL DEFAULT '',
`qa_4` varchar(255) NOT NULL DEFAULT '', `qa_4` varchar(255) NOT NULL DEFAULT '',
`qa_5` varchar(255) NOT NULL DEFAULT '' `qa_5` varchar(255) NOT NULL DEFAULT ''
)", true); )",
sql_query(" CREATE TABLE IF NOT EXISTS `{$g5['qa_content_table']}` ( true
);
sql_query(
" CREATE TABLE IF NOT EXISTS `{$g5['qa_content_table']}` (
`qa_id` int(11) NOT NULL AUTO_INCREMENT, `qa_id` int(11) NOT NULL AUTO_INCREMENT,
`qa_num` int(11) NOT NULL DEFAULT '0', `qa_num` int(11) NOT NULL DEFAULT '0',
`qa_parent` int(11) NOT NULL DEFAULT '0', `qa_parent` int(11) NOT NULL DEFAULT '0',
@@ -77,18 +81,20 @@ if(!sql_query(" DESCRIBE `{$g5['qa_config_table']}` ", false)) {
`qa_5` varchar(255) NOT NULL DEFAULT '', `qa_5` varchar(255) NOT NULL DEFAULT '',
PRIMARY KEY (`qa_id`), PRIMARY KEY (`qa_id`),
KEY `qa_num_parent` (`qa_num`,`qa_parent`) KEY `qa_num_parent` (`qa_num`,`qa_parent`)
)", true); )",
true
);
} }
$sql = " SHOW COLUMNS FROM `{$g5['qa_content_table']}` LIKE 'qa_content' "; $sql = " SHOW COLUMNS FROM `{$g5['qa_content_table']}` LIKE 'qa_content' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
if(strpos($row['Type'], 'text') === false) { if (strpos($row['Type'], 'text') === false) {
sql_query(" ALTER TABLE `{$g5['qa_content_table']}` CHANGE `qa_content` `qa_content` text NOT NULL ", true); sql_query(" ALTER TABLE `{$g5['qa_content_table']}` CHANGE `qa_content` `qa_content` text NOT NULL ", true);
} }
$qaconfig = get_qa_config(); $qaconfig = get_qa_config();
if(empty($qaconfig)) { if (empty($qaconfig)) {
$sql = " insert into `{$g5['qa_config_table']}` $sql = " insert into `{$g5['qa_config_table']}`
( qa_title, qa_category, qa_skin, qa_mobile_skin, qa_use_email, qa_req_email, qa_use_hp, qa_req_hp, qa_use_editor, qa_subject_len, qa_mobile_subject_len, qa_page_rows, qa_mobile_page_rows, qa_image_width, qa_upload_size, qa_insert_content ) ( qa_title, qa_category, qa_skin, qa_mobile_skin, qa_use_email, qa_req_email, qa_use_hp, qa_req_hp, qa_use_editor, qa_subject_len, qa_mobile_subject_len, qa_page_rows, qa_mobile_page_rows, qa_image_width, qa_upload_size, qa_insert_content )
values values
@@ -99,301 +105,306 @@ if(empty($qaconfig)) {
} }
// 관리자 이메일필드 추가 // 관리자 이메일필드 추가
if(!isset($qaconfig['qa_admin_email'])) { if (!isset($qaconfig['qa_admin_email'])) {
sql_query(" ALTER TABLE `{$g5['qa_config_table']}` sql_query(
ADD `qa_admin_email` varchar(255) NOT NULL DEFAULT '' AFTER `qa_admin_hp` ", true); " ALTER TABLE `{$g5['qa_config_table']}`
ADD `qa_admin_email` varchar(255) NOT NULL DEFAULT '' AFTER `qa_admin_hp` ",
true
);
} }
// 상단 하단 설정 필드 추가 // 상단 하단 설정 필드 추가
if(!isset($qaconfig['qa_include_head'])) { if (!isset($qaconfig['qa_include_head'])) {
sql_query(" ALTER TABLE `{$g5['qa_config_table']}` sql_query(
" ALTER TABLE `{$g5['qa_config_table']}`
ADD `qa_include_head` varchar(255) NOT NULL DEFAULT '' AFTER `qa_insert_content`, ADD `qa_include_head` varchar(255) NOT NULL DEFAULT '' AFTER `qa_insert_content`,
ADD `qa_include_tail` varchar(255) NOT NULL DEFAULT '' AFTER `qa_include_head`, ADD `qa_include_tail` varchar(255) NOT NULL DEFAULT '' AFTER `qa_include_head`,
ADD `qa_content_head` text NOT NULL AFTER `qa_include_tail`, ADD `qa_content_head` text NOT NULL AFTER `qa_include_tail`,
ADD `qa_content_tail` text NOT NULL AFTER `qa_content_head`, ADD `qa_content_tail` text NOT NULL AFTER `qa_content_head`,
ADD `qa_mobile_content_head` text NOT NULL AFTER `qa_content_tail`, ADD `qa_mobile_content_head` text NOT NULL AFTER `qa_content_tail`,
ADD `qa_mobile_content_tail` text NOT NULL AFTER `qa_mobile_content_head` ", true); ADD `qa_mobile_content_tail` text NOT NULL AFTER `qa_mobile_content_head` ",
true
);
} }
?> ?>
<form name="fqaconfigform" id="fqaconfigform" method="post" onsubmit="return fqaconfigform_submit(this);" autocomplete="off"> <form name="fqaconfigform" id="fqaconfigform" method="post" onsubmit="return fqaconfigform_submit(this);" autocomplete="off">
<input type="hidden" name="token" value="" id="token"> <input type="hidden" name="token" value="" id="token">
<section id="anc_cf_qa_config"> <section id="anc_cf_qa_config">
<h2 class="h2_frm">1:1문의 설정</h2> <h2 class="h2_frm">1:1문의 설정</h2>
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
<caption>1:1문의 설정</caption> <caption>1:1문의 설정</caption>
<colgroup> <colgroup>
<col class="grid_4"> <col class="grid_4">
<col> <col>
</colgroup> </colgroup>
<tbody> <tbody>
<tr> <tr>
<th scope="row"><label for="qa_title">타이틀<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="qa_title">타이틀<strong class="sound_only">필수</strong></label></th>
<td> <td>
<input type="text" name="qa_title" value="<?php echo get_sanitize_input($qaconfig['qa_title']); ?>" id="qa_title" required class="required frm_input" size="40"> <input type="text" name="qa_title" value="<?php echo get_sanitize_input($qaconfig['qa_title']); ?>" id="qa_title" required class="required frm_input" size="40">
<a href="<?php echo G5_BBS_URL; ?>/qalist.php" class="btn_frmline">1:1문의 바로가기</a> <a href="<?php echo G5_BBS_URL; ?>/qalist.php" class="btn_frmline">1:1문의 바로가기</a>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_category">분류<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="qa_category">분류<strong class="sound_only">필수</strong></label></th>
<td> <td>
<?php echo help('분류와 분류 사이는 | 로 구분하세요. (예: 질문|답변) 첫자로 #은 입력하지 마세요. (예: #질문|#답변 [X])') ?> <?php echo help('분류와 분류 사이는 | 로 구분하세요. (예: 질문|답변) 첫자로 #은 입력하지 마세요. (예: #질문|#답변 [X])') ?>
<input type="text" name="qa_category" value="<?php echo get_sanitize_input($qaconfig['qa_category']); ?>" id="qa_category" required class="required frm_input" size="70"> <input type="text" name="qa_category" value="<?php echo get_sanitize_input($qaconfig['qa_category']); ?>" id="qa_category" required class="required frm_input" size="70">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_skin">스킨 디렉토리<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="qa_skin">스킨 디렉토리<strong class="sound_only">필수</strong></label></th>
<td> <td>
<?php echo get_skin_select('qa', 'qa_skin', 'qa_skin', $qaconfig['qa_skin'], 'required'); ?> <?php echo get_skin_select('qa', 'qa_skin', 'qa_skin', $qaconfig['qa_skin'], 'required'); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_mobile_skin">모바일 스킨 디렉토리<strong class="sound_only">필수</strong></label></th> <th scope="row"><label for="qa_mobile_skin">모바일 스킨 디렉토리<strong class="sound_only">필수</strong></label></th>
<td> <td>
<?php echo get_mobile_skin_select('qa', 'qa_mobile_skin', 'qa_mobile_skin', $qaconfig['qa_mobile_skin'], 'required'); ?> <?php echo get_mobile_skin_select('qa', 'qa_mobile_skin', 'qa_mobile_skin', $qaconfig['qa_mobile_skin'], 'required'); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row">이메일 입력</th> <th scope="row">이메일 입력</th>
<td> <td>
<input type="checkbox" name="qa_use_email" value="1" id="qa_use_email" <?php echo $qaconfig['qa_use_email']?'checked':''; ?>> <label for="qa_use_email">보이기</label> <input type="checkbox" name="qa_use_email" value="1" id="qa_use_email" <?php echo $qaconfig['qa_use_email'] ? 'checked' : ''; ?>> <label for="qa_use_email">보이기</label>
<input type="checkbox" name="qa_req_email" value="1" id="qa_req_email" <?php echo $qaconfig['qa_req_email']?'checked':''; ?>> <label for="qa_req_email">필수입력</label> <input type="checkbox" name="qa_req_email" value="1" id="qa_req_email" <?php echo $qaconfig['qa_req_email'] ? 'checked' : ''; ?>> <label for="qa_req_email">필수입력</label>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row">휴대폰 입력</th> <th scope="row">휴대폰 입력</th>
<td> <td>
<input type="checkbox" name="qa_use_hp" value="1" id="qa_use_hp" <?php echo $qaconfig['qa_use_hp']?'checked':''; ?>> <label for="qa_use_hp">보이기</label> <input type="checkbox" name="qa_use_hp" value="1" id="qa_use_hp" <?php echo $qaconfig['qa_use_hp'] ? 'checked' : ''; ?>> <label for="qa_use_hp">보이기</label>
<input type="checkbox" name="qa_req_hp" value="1" id="qa_req_hp" <?php echo $qaconfig['qa_req_hp']?'checked':''; ?>> <label for="qa_req_hp">필수입력</label> <input type="checkbox" name="qa_req_hp" value="1" id="qa_req_hp" <?php echo $qaconfig['qa_req_hp'] ? 'checked' : ''; ?>> <label for="qa_req_hp">필수입력</label>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_use_sms">SMS 알림</label></th> <th scope="row"><label for="qa_use_sms">SMS 알림</label></th>
<td> <td>
<?php echo help('휴대폰 입력을 사용하실 경우 문의글 등록시 등록자가 답변등록시 SMS 알림 수신을 선택할 수 있도록 합니다.<br>SMS 알림을 사용하기 위해서는 기본환경설정 > <a href="'.G5_ADMIN_URL.'/config_form.php#anc_cf_sms">SMS 설정</a>을 하셔야 합니다.') ?> <?php echo help('휴대폰 입력을 사용하실 경우 문의글 등록시 등록자가 답변등록시 SMS 알림 수신을 선택할 수 있도록 합니다.<br>SMS 알림을 사용하기 위해서는 기본환경설정 > <a href="' . G5_ADMIN_URL . '/config_form.php#anc_cf_sms">SMS 설정</a>을 하셔야 합니다.') ?>
<select name="qa_use_sms" id="qa_use_sms"> <select name="qa_use_sms" id="qa_use_sms">
<?php echo option_selected(0, $qaconfig['qa_use_sms'], '사용안함'); ?> <?php echo option_selected(0, $qaconfig['qa_use_sms'], '사용안함'); ?>
<?php echo option_selected(1, $qaconfig['qa_use_sms'], '사용함'); ?> <?php echo option_selected(1, $qaconfig['qa_use_sms'], '사용함'); ?>
</select> </select>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_send_number">SMS 발신번호</label></th> <th scope="row"><label for="qa_send_number">SMS 발신번호</label></th>
<td> <td>
<?php echo help('SMS 알림 전송시 발신번호로 사용됩니다.'); ?> <?php echo help('SMS 알림 전송시 발신번호로 사용됩니다.'); ?>
<input type="text" name="qa_send_number" value="<?php echo get_sanitize_input($qaconfig['qa_send_number']); ?>" id="qa_send_number" class="frm_input" size="30"> <input type="text" name="qa_send_number" value="<?php echo get_sanitize_input($qaconfig['qa_send_number']); ?>" id="qa_send_number" class="frm_input" size="30">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_admin_hp">관리자 휴대폰번호</label></th> <th scope="row"><label for="qa_admin_hp">관리자 휴대폰번호</label></th>
<td> <td>
<?php echo help('관리자 휴대폰번호를 입력하시면 문의글 등록시 등록하신 번호로 SMS 알림이 전송됩니다.<br>SMS 알림을 사용하지 않으시면 알림이 전송되지 않습니다.'); ?> <?php echo help('관리자 휴대폰번호를 입력하시면 문의글 등록시 등록하신 번호로 SMS 알림이 전송됩니다.<br>SMS 알림을 사용하지 않으시면 알림이 전송되지 않습니다.'); ?>
<input type="text" name="qa_admin_hp" value="<?php echo get_sanitize_input($qaconfig['qa_admin_hp']); ?>" id="qa_admin_hp" class="frm_input" size="30"> <input type="text" name="qa_admin_hp" value="<?php echo get_sanitize_input($qaconfig['qa_admin_hp']); ?>" id="qa_admin_hp" class="frm_input" size="30">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_admin_email">관리자 이메일</label></th> <th scope="row"><label for="qa_admin_email">관리자 이메일</label></th>
<td> <td>
<?php echo help('관리자 이메일을 입력하시면 문의글 등록시 등록하신 이메일로 알림이 전송됩니다.'); ?> <?php echo help('관리자 이메일을 입력하시면 문의글 등록시 등록하신 이메일로 알림이 전송됩니다.'); ?>
<input type="text" name="qa_admin_email" value="<?php echo get_sanitize_input($qaconfig['qa_admin_email']); ?>" id="qa_admin_email" class="frm_input" size="50"> <input type="text" name="qa_admin_email" value="<?php echo get_sanitize_input($qaconfig['qa_admin_email']); ?>" id="qa_admin_email" class="frm_input" size="50">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_use_editor">DHTML 에디터 사용</label></th> <th scope="row"><label for="qa_use_editor">DHTML 에디터 사용</label></th>
<td> <td>
<?php echo help('글작성시 내용을 DHTML 에디터 기능으로 사용할 것인지 설정합니다. 스킨에 따라 적용되지 않을 수 있습니다.'); ?> <?php echo help('글작성시 내용을 DHTML 에디터 기능으로 사용할 것인지 설정합니다. 스킨에 따라 적용되지 않을 수 있습니다.'); ?>
<select name="qa_use_editor" id="qa_use_editor"> <select name="qa_use_editor" id="qa_use_editor">
<?php echo option_selected(0, $qaconfig['qa_use_editor'], '사용안함'); ?> <?php echo option_selected(0, $qaconfig['qa_use_editor'], '사용안함'); ?>
<?php echo option_selected(1, $qaconfig['qa_use_editor'], '사용함'); ?> <?php echo option_selected(1, $qaconfig['qa_use_editor'], '사용함'); ?>
</select> </select>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_subject_len">제목 길이<strong class="sound_only"> 필수</strong></label></th> <th scope="row"><label for="qa_subject_len">제목 길이<strong class="sound_only"> 필수</strong></label></th>
<td> <td>
<?php echo help('목록에서의 제목 글자수') ?> <?php echo help('목록에서의 제목 글자수') ?>
<input type="text" name="qa_subject_len" value="<?php echo $qaconfig['qa_subject_len'] ?>" id="qa_subject_len" required class="required numeric frm_input" size="4"> <input type="text" name="qa_subject_len" value="<?php echo $qaconfig['qa_subject_len'] ?>" id="qa_subject_len" required class="required numeric frm_input" size="4">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_mobile_subject_len">모바일 제목 길이<strong class="sound_only"> 필수</strong></label></th> <th scope="row"><label for="qa_mobile_subject_len">모바일 제목 길이<strong class="sound_only"> 필수</strong></label></th>
<td> <td>
<?php echo help('목록에서의 제목 글자수') ?> <?php echo help('목록에서의 제목 글자수') ?>
<input type="text" name="qa_mobile_subject_len" value="<?php echo $qaconfig['qa_mobile_subject_len'] ?>" id="qa_mobile_subject_len" required class="required numeric frm_input" size="4"> <input type="text" name="qa_mobile_subject_len" value="<?php echo $qaconfig['qa_mobile_subject_len'] ?>" id="qa_mobile_subject_len" required class="required numeric frm_input" size="4">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_page_rows">페이지당 목록 수<strong class="sound_only"> 필수</strong></label></th> <th scope="row"><label for="qa_page_rows">페이지당 목록 수<strong class="sound_only"> 필수</strong></label></th>
<td> <td>
<input type="text" name="qa_page_rows" value="<?php echo $qaconfig['qa_page_rows'] ?>" id="qa_page_rows" required class="required numeric frm_input" size="4"> <input type="text" name="qa_page_rows" value="<?php echo $qaconfig['qa_page_rows'] ?>" id="qa_page_rows" required class="required numeric frm_input" size="4">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_mobile_page_rows">모바일 페이지당 목록 수<strong class="sound_only"> 필수</strong></label></th> <th scope="row"><label for="qa_mobile_page_rows">모바일 페이지당 목록 수<strong class="sound_only"> 필수</strong></label></th>
<td> <td>
<input type="text" name="qa_mobile_page_rows" value="<?php echo $qaconfig['qa_mobile_page_rows'] ?>" id="qa_mobile_page_rows" required class="required numeric frm_input" size="4"> <input type="text" name="qa_mobile_page_rows" value="<?php echo $qaconfig['qa_mobile_page_rows'] ?>" id="qa_mobile_page_rows" required class="required numeric frm_input" size="4">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_image_width">이미지 폭 크기<strong class="sound_only"> 필수</strong></label></th> <th scope="row"><label for="qa_image_width">이미지 폭 크기<strong class="sound_only"> 필수</strong></label></th>
<td> <td>
<?php echo help('게시판에서 출력되는 이미지의 폭 크기') ?> <?php echo help('게시판에서 출력되는 이미지의 폭 크기') ?>
<input type="text" name="qa_image_width" value="<?php echo $qaconfig['qa_image_width'] ?>" id="qa_image_width" required class="required numeric frm_input" size="4"> 픽셀 <input type="text" name="qa_image_width" value="<?php echo $qaconfig['qa_image_width'] ?>" id="qa_image_width" required class="required numeric frm_input" size="4"> 픽셀
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_upload_size">파일 업로드 용량<strong class="sound_only"> 필수</strong></label></th> <th scope="row"><label for="qa_upload_size">파일 업로드 용량<strong class="sound_only"> 필수</strong></label></th>
<td> <td>
<?php echo help('최대 '.ini_get("upload_max_filesize").' 이하 업로드 가능, 1 MB = 1,048,576 bytes') ?> <?php echo help('최대 ' . ini_get("upload_max_filesize") . ' 이하 업로드 가능, 1 MB = 1,048,576 bytes') ?>
업로드 파일 한개당 <input type="text" name="qa_upload_size" value="<?php echo $qaconfig['qa_upload_size'] ?>" id="qa_upload_size" required class="required numeric frm_input" size="10"> bytes 이하 업로드 파일 한개당 <input type="text" name="qa_upload_size" value="<?php echo $qaconfig['qa_upload_size'] ?>" id="qa_upload_size" required class="required numeric frm_input" size="10"> bytes 이하
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_include_head">상단 파일 경로</label></th> <th scope="row"><label for="qa_include_head">상단 파일 경로</label></th>
<td> <td>
<input type="text" name="qa_include_head" value="<?php echo $qaconfig['qa_include_head'] ?>" id="qa_include_head" class="frm_input" size="50"> <input type="text" name="qa_include_head" value="<?php echo $qaconfig['qa_include_head'] ?>" id="qa_include_head" class="frm_input" size="50">
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_include_tail">하단 파일 경로</label></th> <th scope="row"><label for="qa_include_tail">하단 파일 경로</label></th>
<td> <td>
<input type="text" name="qa_include_tail" value="<?php echo $qaconfig['qa_include_tail'] ?>" id="qa_include_tail" class="frm_input" size="50"> <input type="text" name="qa_include_tail" value="<?php echo $qaconfig['qa_include_tail'] ?>" id="qa_include_tail" class="frm_input" size="50">
</td> </td>
</tr> </tr>
<tr id="admin_captcha_box" style="display:none;"> <tr id="admin_captcha_box" style="display:none;">
<th scope="row">자동등록방지</th> <th scope="row">자동등록방지</th>
<td> <td>
<?php <?php
echo help("파일 경로를 입력 또는 수정시 캡챠를 반드시 입력해야 합니다."); echo help("파일 경로를 입력 또는 수정시 캡챠를 반드시 입력해야 합니다.");
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php'); require_once G5_CAPTCHA_PATH . '/captcha.lib.php';
$captcha_html = captcha_html(); $captcha_html = captcha_html();
$captcha_js = chk_captcha_js(); $captcha_js = chk_captcha_js();
echo $captcha_html; echo $captcha_html;
?> ?>
<script> <script>
jQuery("#captcha_key").removeAttr("required").removeClass("required"); jQuery("#captcha_key").removeAttr("required").removeClass("required");
</script> </script>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_content_head">상단 내용</label></th> <th scope="row"><label for="qa_content_head">상단 내용</label></th>
<td> <td>
<?php echo editor_html("qa_content_head", get_text(html_purifier($qaconfig['qa_content_head']), 0)); ?> <?php echo editor_html("qa_content_head", get_text(html_purifier($qaconfig['qa_content_head']), 0)); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_content_tail">하단 내용</label></th> <th scope="row"><label for="qa_content_tail">하단 내용</label></th>
<td> <td>
<?php echo editor_html("qa_content_tail", get_text(html_purifier($qaconfig['qa_content_tail']), 0)); ?> <?php echo editor_html("qa_content_tail", get_text(html_purifier($qaconfig['qa_content_tail']), 0)); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_mobile_content_head">모바일 상단 내용</label></th> <th scope="row"><label for="qa_mobile_content_head">모바일 상단 내용</label></th>
<td> <td>
<?php echo editor_html("qa_mobile_content_head", get_text(html_purifier($qaconfig['qa_mobile_content_head']), 0)); ?> <?php echo editor_html("qa_mobile_content_head", get_text(html_purifier($qaconfig['qa_mobile_content_head']), 0)); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_mobile_content_tail">모바일 하단 내용</label></th> <th scope="row"><label for="qa_mobile_content_tail">모바일 하단 내용</label></th>
<td> <td>
<?php echo editor_html("qa_mobile_content_tail", get_text(html_purifier($qaconfig['qa_mobile_content_tail']), 0)); ?> <?php echo editor_html("qa_mobile_content_tail", get_text(html_purifier($qaconfig['qa_mobile_content_tail']), 0)); ?>
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="qa_insert_content">글쓰기 기본 내용</label></th> <th scope="row"><label for="qa_insert_content">글쓰기 기본 내용</label></th>
<td> <td>
<textarea id="qa_insert_content" name="qa_insert_content" rows="5"><?php echo html_purifier($qaconfig['qa_insert_content']); ?></textarea> <textarea id="qa_insert_content" name="qa_insert_content" rows="5"><?php echo html_purifier($qaconfig['qa_insert_content']); ?></textarea>
</td> </td>
</tr> </tr>
<?php for ($i=1; $i<=5; $i++) { ?> <?php for ($i = 1; $i <= 5; $i++) { ?>
<tr> <tr>
<th scope="row">여분필드<?php echo $i ?></th> <th scope="row">여분필드<?php echo $i ?></th>
<td class="td_extra"> <td class="td_extra">
<label for="qa_<?php echo $i ?>_subj">여분필드 <?php echo $i ?> 제목</label> <label for="qa_<?php echo $i ?>_subj">여분필드 <?php echo $i ?> 제목</label>
<input type="text" name="qa_<?php echo $i ?>_subj" id="qa_<?php echo $i ?>_subj" value="<?php echo get_text($qaconfig['qa_'.$i.'_subj']) ?>" class="frm_input"> <input type="text" name="qa_<?php echo $i ?>_subj" id="qa_<?php echo $i ?>_subj" value="<?php echo get_text($qaconfig['qa_' . $i . '_subj']) ?>" class="frm_input">
<label for="qa_<?php echo $i ?>">여분필드 <?php echo $i ?> 값</label> <label for="qa_<?php echo $i ?>">여분필드 <?php echo $i ?> 값</label>
<input type="text" name="qa_<?php echo $i ?>" value="<?php echo get_text($qaconfig['qa_'.$i]) ?>" id="qa_<?php echo $i ?>" class="frm_input"> <input type="text" name="qa_<?php echo $i ?>" value="<?php echo get_text($qaconfig['qa_' . $i]) ?>" id="qa_<?php echo $i ?>" class="frm_input">
</td> </td>
</tr> </tr>
<?php } ?> <?php } ?>
</tbody> </tbody>
</table> </table>
</div>
</section>
<div class="btn_fixed_top">
<input type="submit" value="확인" class="btn_submit btn" accesskey="s">
</div> </div>
</section>
<div class="btn_fixed_top">
<input type="submit" value="확인" class="btn_submit btn" accesskey="s">
</div>
</form> </form>
<script> <script>
var captcha_chk = false;
var captcha_chk = false; function use_captcha_check() {
$.ajax({
type: "POST",
url: g5_admin_url + "/ajax.use_captcha.php",
data: {
admin_use_captcha: "1"
},
cache: false,
async: false,
dataType: "json",
success: function(data) {}
});
}
function use_captcha_check(){ function frm_check_file() {
$.ajax({ var qa_include_head = "<?php echo $qaconfig['qa_include_head']; ?>";
type: "POST", var qa_include_tail = "<?php echo $qaconfig['qa_include_tail']; ?>";
url: g5_admin_url+"/ajax.use_captcha.php", var head = jQuery.trim(jQuery("#qa_include_head").val());
data: { admin_use_captcha: "1" }, var tail = jQuery.trim(jQuery("#qa_include_tail").val());
cache: false,
async: false, if (qa_include_head !== head || qa_include_tail !== tail) {
dataType: "json", // 캡챠를 사용합니다.
success: function(data) { jQuery("#admin_captcha_box").show();
captcha_chk = true;
use_captcha_check();
return false;
} else {
jQuery("#admin_captcha_box").hide();
}
return true;
}
jQuery(function($) {
if (window.self !== window.top) { // frame 또는 iframe을 사용할 경우 체크
$("#qa_include_head, #qa_include_tail").on("change paste keyup", function(e) {
frm_check_file();
});
use_captcha_check();
} }
}); });
}
function frm_check_file(){ function fqaconfigform_submit(f) {
var qa_include_head = "<?php echo $qaconfig['qa_include_head']; ?>"; <?php echo get_editor_js("qa_content_head"); ?>
var qa_include_tail = "<?php echo $qaconfig['qa_include_tail']; ?>"; <?php echo get_editor_js("qa_content_tail"); ?>
var head = jQuery.trim(jQuery("#qa_include_head").val()); <?php echo get_editor_js("qa_mobile_content_head"); ?>
var tail = jQuery.trim(jQuery("#qa_include_tail").val()); <?php echo get_editor_js("qa_mobile_content_tail"); ?>
if(qa_include_head !== head || qa_include_tail !== tail){ if (captcha_chk) {
// 캡챠를 사용합니다. <?php echo isset($captcha_js) ? $captcha_js : ''; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
jQuery("#admin_captcha_box").show(); }
captcha_chk = true;
use_captcha_check(); f.action = "./qa_config_update.php";
return true;
return false;
} else {
jQuery("#admin_captcha_box").hide();
} }
return true;
}
jQuery(function($){
if( window.self !== window.top ){ // frame 또는 iframe을 사용할 경우 체크
$("#qa_include_head, #qa_include_tail").on("change paste keyup", function(e) {
frm_check_file();
});
use_captcha_check();
}
});
function fqaconfigform_submit(f)
{
<?php echo get_editor_js("qa_content_head"); ?>
<?php echo get_editor_js("qa_content_tail"); ?>
<?php echo get_editor_js("qa_mobile_content_head"); ?>
<?php echo get_editor_js("qa_mobile_content_tail"); ?>
if( captcha_chk ) {
<?php echo isset($captcha_js) ? $captcha_js : ''; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함 ?>
}
f.action = "./qa_config_update.php";
return true;
}
</script> </script>
<?php <?php
include_once ('./admin.tail.php'); require_once './admin.tail.php';
+18 -17
View File
@@ -1,6 +1,6 @@
<?php <?php
$sub_menu = "300500"; $sub_menu = "300500";
include_once('./_common.php'); require_once './_common.php';
check_demo(); check_demo();
@@ -14,49 +14,49 @@ $qaconfig = get_qa_config();
$check_keys = array('qa_title', 'qa_category', 'qa_skin', 'qa_mobile_skin', 'qa_use_email', 'qa_req_email', 'qa_use_hp', 'qa_req_hp', 'qa_use_sms', 'qa_send_number', 'qa_admin_hp', 'qa_admin_email', 'qa_subject_len', 'qa_mobile_subject_len', 'qa_page_rows', 'qa_mobile_page_rows', 'qa_image_width', 'qa_upload_size'); $check_keys = array('qa_title', 'qa_category', 'qa_skin', 'qa_mobile_skin', 'qa_use_email', 'qa_req_email', 'qa_use_hp', 'qa_req_hp', 'qa_use_sms', 'qa_send_number', 'qa_admin_hp', 'qa_admin_email', 'qa_subject_len', 'qa_mobile_subject_len', 'qa_page_rows', 'qa_mobile_page_rows', 'qa_image_width', 'qa_upload_size');
foreach($check_keys as $key){ foreach ($check_keys as $key) {
$$key = $_POST[$key] = isset($_POST[$key]) ? strip_tags(clean_xss_attributes($_POST[$key])) : ''; $$key = $_POST[$key] = isset($_POST[$key]) ? strip_tags(clean_xss_attributes($_POST[$key])) : '';
} }
$qa_include_head = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($qa_include_head, 0, 255)); $qa_include_head = isset($qa_include_head) ? preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($qa_include_head, 0, 255)) : '';
$qa_include_tail = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($qa_include_tail, 0, 255)); $qa_include_tail = isset($qa_include_tail) ? preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($qa_include_tail, 0, 255)) : '';
// 관리자가 자동등록방지를 사용해야 할 경우 // 관리자가 자동등록방지를 사용해야 할 경우
if ($board && ($qaconfig['qa_include_head'] !== $qa_include_head || $qaconfig['qa_include_tail'] !== $qa_include_tail) && function_exists('get_admin_captcha_by') && get_admin_captcha_by()){ if ($board && ($qaconfig['qa_include_head'] !== $qa_include_head || $qaconfig['qa_include_tail'] !== $qa_include_tail) && function_exists('get_admin_captcha_by') && get_admin_captcha_by()) {
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php'); include_once G5_CAPTCHA_PATH . '/captcha.lib.php';
if (!chk_captcha()) { if (!chk_captcha()) {
alert('자동등록방지 숫자가 틀렸습니다.'); alert('자동등록방지 숫자가 틀렸습니다.');
} }
} }
if( $qa_include_head ){ if ($qa_include_head) {
$file_ext = pathinfo($qa_include_head, PATHINFO_EXTENSION); $file_ext = pathinfo($qa_include_head, PATHINFO_EXTENSION);
if( ! $file_ext || ! in_array($file_ext, array('php', 'htm', 'html')) || ! preg_match('/^.*\.(php|htm|html)$/i', $qa_include_head) ) { if (!$file_ext || !in_array($file_ext, array('php', 'htm', 'html')) || !preg_match('/^.*\.(php|htm|html)$/i', $qa_include_head)) {
alert('상단 파일 경로의 확장자는 php, htm, html 만 허용합니다.'); alert('상단 파일 경로의 확장자는 php, htm, html 만 허용합니다.');
} }
} }
if( $qa_include_tail ){ if ($qa_include_tail) {
$file_ext = pathinfo($qa_include_tail, PATHINFO_EXTENSION); $file_ext = pathinfo($qa_include_tail, PATHINFO_EXTENSION);
if( ! $file_ext || ! in_array($file_ext, array('php', 'htm', 'html')) || ! preg_match('/^.*\.(php|htm|html)$/i', $qa_include_tail) ) { if (!$file_ext || !in_array($file_ext, array('php', 'htm', 'html')) || !preg_match('/^.*\.(php|htm|html)$/i', $qa_include_tail)) {
alert('하단 파일 경로의 확장자는 php, htm, html 만 허용합니다.'); alert('하단 파일 경로의 확장자는 php, htm, html 만 허용합니다.');
} }
} }
if( $qa_include_head && ! is_include_path_check($qa_include_head, 1) ){ if ($qa_include_head && !is_include_path_check($qa_include_head, 1)) {
$qa_include_head = ''; $qa_include_head = '';
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 상단 파일 경로에 포함시킬수 없습니다.'; $error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 상단 파일 경로에 포함시킬수 없습니다.';
} }
if( $qa_include_tail && ! is_include_path_check($qa_include_tail, 1) ){ if ($qa_include_tail && !is_include_path_check($qa_include_tail, 1)) {
$qa_include_tail = ''; $qa_include_tail = '';
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.'; $error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.';
} }
if( function_exists('filter_input_include_path') ){ if (function_exists('filter_input_include_path')) {
$qa_include_head = filter_input_include_path($qa_include_head); $qa_include_head = filter_input_include_path($qa_include_head);
$qa_include_tail = filter_input_include_path($qa_include_tail); $qa_include_tail = filter_input_include_path($qa_include_tail);
} }
@@ -67,7 +67,7 @@ $dst_char = array('&', '〓');
$qa_category = str_replace($src_char, $dst_char, $_POST['qa_category']); $qa_category = str_replace($src_char, $dst_char, $_POST['qa_category']);
//https://github.com/gnuboard/gnuboard5/commit/f5f4925d4eb28ba1af728e1065fc2bdd9ce1da58 에 따른 조치 //https://github.com/gnuboard/gnuboard5/commit/f5f4925d4eb28ba1af728e1065fc2bdd9ce1da58 에 따른 조치
$qa_category = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", "", $qa_category); $qa_category = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", "", (string)$qa_category);
$sql = " update {$g5['qa_config_table']} $sql = " update {$g5['qa_config_table']}
set qa_title = '{$_POST['qa_title']}', set qa_title = '{$_POST['qa_title']}',
@@ -108,10 +108,11 @@ $sql = " update {$g5['qa_config_table']}
qa_5 = '{$_POST['qa_5']}' "; qa_5 = '{$_POST['qa_5']}' ";
sql_query($sql); sql_query($sql);
if(function_exists('get_admin_captcha_by')) if (function_exists('get_admin_captcha_by')) {
get_admin_captcha_by('remove'); get_admin_captcha_by('remove');
}
if($error_msg){ if ($error_msg) {
alert($error_msg, './qa_config.php'); alert($error_msg, './qa_config.php');
} else { } else {
goto_url('./qa_config.php'); goto_url('./qa_config.php');
+10 -5
View File
@@ -1,14 +1,19 @@
<?php <?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가 if (!defined('_GNUBOARD_')) {
exit; // 개별 페이지 접근 불가
}
function social_log_file_delete($second=0){ function social_log_file_delete($second = 0)
$files = glob(G5_DATA_PATH.'/tmp/social_*'); {
$files = glob(G5_DATA_PATH . '/tmp/social_*');
if (is_array($files)) { if (is_array($files)) {
$before_time = $second ? G5_SERVER_TIME - $second : 0; $before_time = $second ? G5_SERVER_TIME - $second : 0;
foreach ($files as $social_log_file) { foreach ($files as $social_log_file) {
$modification_time = filemtime($log_file); // 파일접근시간 $modification_time = filemtime($social_log_file); // 파일접근시간
if ($before_time && $modification_time > $before_time) continue; if ($before_time && $modification_time > $before_time) {
continue;
}
unlink($social_log_file); unlink($social_log_file);
} }
+10 -21
View File
@@ -15,41 +15,30 @@ include_once('./admin.head.php');
<div class="service_wrap"> <div class="service_wrap">
<div class="sevice_1 svc_card"> <div class="sevice_1 svc_card">
<h3>신용카드 전자결제 서비스<br><span>(계좌이체, 가상계좌 결제 포함)</span></h3> <h3>신용카드 전자결제 서비스<br><span>(계좌이체, 가상계좌 결제 포함)</span></h3>
<p>이곳을 통하여 가입하시면 신용카드 결제를 국내 최저 수수료인 3.2%에 이용 할 수 있습니다. 영카트를 사용하지 않아도 이 수수료를 적용 받을 수 있습니다. 아래 가입을 희망하시는 회사의 로고를 클릭하시면 가입페이지로 이동합니다.</p>
<ul> <ul>
<li><a href="http://sir.kr/main/service/p_pg.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_01.jpg" alt="KCP 신용카드 전자결제 신청하기"></a></li> <li><a href="http://sir.kr/main/service/p_pg.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_01.jpg" alt="KCP 신용카드 전자결제 신청하기"></a></li>
<li ><a href="http://sir.kr/main/service/lg_pg.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_02.jpg?v2" alt="토스페이먼츠 전자결제 신청하기"></a></li> <li><a href="http://sir.kr/main/service/lg_pg.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_02.jpg?v2" alt="토스페이먼츠 전자결제 신청하기"></a></li>
<li class="last"><a href="http://sir.kr/main/service/inicis_pg.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_06.jpg" alt="KG 이니시스 전자결제 신청하기"></a></li> <li class="last"><a href="http://sir.kr/main/service/inicis_pg.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_06.jpg" alt="KG 이니시스 전자결제 신청하기"></a></li>
</ul> </ul>
</div> </div>
<div class="sevice_1 svc_phone"> <div class="sevice_1 svc_phone">
<h3>휴대폰 본인확인 서비스</h3> <h3>본인확인 서비스</h3>
<p>정보통신망법 23조 2항(주민등록번호의 사용제한)에 따라 기존 주민등록번호 기반의 인증서비스 이용이 불가합니다. 주민등록번호 대체수단으로 최소한의 정보(생년월일, 휴대폰번호, 성별)를 입력받아 본인임을 확인하는 인증수단 입니다</p>
<ul> <ul>
<li><a href="http://sir.kr/main/service/p_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_01.jpg" alt="KCP 휴대폰 본인확인 신청하기"></a></li> <li><a href="http://sir.kr/main/service/p_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_01.jpg" alt="KCP 신청하기"></a></li>
<li><a href="http://sir.kr/main/service/lg_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_02.jpg?v2" alt="유플러스 휴대폰 본인확인 신청하기"></a></li> <li><a href="http://sir.kr/main/service/inicis_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_06.jpg" alt="KG이니시스 신청하기"></a></li>
<li class="last"><a href="http://sir.kr/main/service/b_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_03.jpg" alt="오케이네임 휴대폰대체인증 신청하기"></a></li>
</ul> </ul>
</div> </div>
<div class="sevice_1 svc_ipin">
<h3>아이핀 본인확인 서비스</h3>
<p>정부가 주관하는 주민등록번호 대체 수단으로 본인의 개인정보를 아이핀 사이트에 한번만 발급해 놓고, 이후부터는 아이디와 패스워드 만으로 본인임을 확인하는 인증수단 입니다. </p>
<h4><a href="http://sir.kr/main/service/b_ipin.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_04.jpg" alt="오케이네임 아이핀 본인확인 신청하기"></a></h4>
</div>
<div class="service_2"> <div class="service_2">
<div class="svc_ri svc_sms"> <div class="svc_ri svc_sms">
<div class="svc_a"> <div class="svc_a">
<h3>SMS 문자 서비스</h3> <h3>SMS 문자 서비스</h3>
<p>주문이나 배송시에 상점운영자 또는 고객에게 휴대폰으로 단문메세지 (최대 한글 40자, 영문 80자)를 발송합니다.</p> <p>주문이나 배송시에 상점운영자 또는 고객에게 휴대폰으로 단문메세지 (최대 한글 40자, 영문 80자)를 발송합니다.</p>
</div> </div>
<div class="svc_btn2"><a href="http://icodekorea.com/res/join_company_fix_a.php?sellid=sir2" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_05.jpg" alt="아이코드 SMS 서비스 신청하기"></a></div> <div class="svc_btn2"><a href="http://icodekorea.com/res/join_company_fix_a.php?sellid=sir2" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_05.jpg" alt="아이코드 SMS 서비스 신청하기"></a></div>
</div> </div>
</div> </div>
+2
View File
@@ -9,4 +9,6 @@ if (!defined('G5_USE_SHOP') || !G5_USE_SHOP)
include_once(G5_ADMIN_PATH.'/admin.lib.php'); include_once(G5_ADMIN_PATH.'/admin.lib.php');
include_once('./admin.shop.lib.php'); include_once('./admin.shop.lib.php');
run_event('admin_common');
check_order_inicis_tmps(); check_order_inicis_tmps();
+1 -3
View File
@@ -49,7 +49,7 @@ if ($w == "")
where SUBSTRING(ca_id,1,$len) = '$ca_id' "; where SUBSTRING(ca_id,1,$len) = '$ca_id' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
$subid = base_convert($row['max_subid'], 36, 10); $subid = base_convert((string)$row['max_subid'], 36, 10);
$subid += 36; $subid += 36;
if ($subid >= 36 * 36) if ($subid >= 36 * 36)
{ {
@@ -157,7 +157,6 @@ else {
<form name="fcategoryform" action="./categoryformupdate.php" onsubmit="return fcategoryformcheck(this);" method="post" enctype="multipart/form-data"> <form name="fcategoryform" action="./categoryformupdate.php" onsubmit="return fcategoryformcheck(this);" method="post" enctype="multipart/form-data">
<input type="hidden" name="codedup" value="<?php echo $default['de_code_dup_use']; ?>">
<input type="hidden" name="w" value="<?php echo $w; ?>"> <input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="sst" value="<?php echo $sst; ?>"> <input type="hidden" name="sst" value="<?php echo $sst; ?>">
<input type="hidden" name="sod" value="<?php echo $sod; ?>"> <input type="hidden" name="sod" value="<?php echo $sod; ?>">
@@ -184,7 +183,6 @@ else {
<?php if ($w == "") { ?> <?php if ($w == "") { ?>
<?php echo help("자동으로 보여지는 분류코드를 사용하시길 권해드리지만 직접 입력한 값으로도 사용할 수 있습니다.\n분류코드는 나중에 수정이 되지 않으므로 신중하게 결정하여 사용하십시오.\n\n분류코드는 2자리씩 10자리를 사용하여 5단계를 표현할 수 있습니다.\n0~z까지 입력이 가능하며 한 분류당 최대 1296가지를 표현할 수 있습니다.\n그러므로 총 3656158440062976가지의 분류를 사용할 수 있습니다."); ?> <?php echo help("자동으로 보여지는 분류코드를 사용하시길 권해드리지만 직접 입력한 값으로도 사용할 수 있습니다.\n분류코드는 나중에 수정이 되지 않으므로 신중하게 결정하여 사용하십시오.\n\n분류코드는 2자리씩 10자리를 사용하여 5단계를 표현할 수 있습니다.\n0~z까지 입력이 가능하며 한 분류당 최대 1296가지를 표현할 수 있습니다.\n그러므로 총 3656158440062976가지의 분류를 사용할 수 있습니다."); ?>
<input type="text" name="ca_id" value="<?php echo $subid; ?>" id="ca_id" required class="required frm_input" size="<?php echo $sublen; ?>" maxlength="<?php echo $sublen; ?>"> <input type="text" name="ca_id" value="<?php echo $subid; ?>" id="ca_id" required class="required frm_input" size="<?php echo $sublen; ?>" maxlength="<?php echo $sublen; ?>">
<!-- <?php if ($default['de_code_dup_use']) { ?><a href="javascript:;" onclick="codedupcheck(document.getElementById('ca_id').value)">코드 중복검사</a><?php } ?> -->
<?php } else { ?> <?php } else { ?>
<input type="hidden" name="ca_id" value="<?php echo $ca['ca_id']; ?>"> <input type="hidden" name="ca_id" value="<?php echo $ca['ca_id']; ?>">
<span class="frm_ca_id"><?php echo $ca['ca_id']; ?></span> <span class="frm_ca_id"><?php echo $ca['ca_id']; ?></span>
-20
View File
@@ -1,20 +0,0 @@
<?php
include_once('./_common.php');
$name = '';
if ($it_id)
{
$row = get_shop_item($it_id, true);
$code = $it_id;
$name = $row['it_name'];
}
else if ($ca_id)
{
$sql = " select ca_name from {$g5['g5_shop_category_table']} where ca_id = '$ca_id' ";
$row = sql_fetch($sql);
$code = $ca_id;
$name = $row['ca_name'];
}
echo '{ "code": "' . $code . '", "name": "' . $name . '" }';
+4 -9
View File
@@ -625,7 +625,7 @@ if(!$default['de_kakaopay_cancelpwd']){
<tr id="inicis_vbank_url" class="pg_vbank_url"> <tr id="inicis_vbank_url" class="pg_vbank_url">
<th scope="row">KG이니시스 가상계좌 입금통보 URL</th> <th scope="row">KG이니시스 가상계좌 입금통보 URL</th>
<td> <td>
<?php echo help("KG이니시스 가상계좌 사용시 다음 주소를 <strong><a href=\"https://iniweb.inicis.com/\" target=\"_blank\">KG이니시스 관리자</a> &gt; 거래조회 &gt; 가상계좌 &gt; 입금통보방식선택 &gt; URL 수신 설정</strong>에 넣으셔야 상점에 자동으로 입금 통보됩니다."); ?> <?php echo help("KG이니시스 가상계좌 사용시 다음 주소를 <strong><a href=\"https://iniweb.inicis.com/\" target=\"_blank\">KG이니시스 관리자</a> &gt; 거래내역 &gt; 가상계좌 &gt; 입금통보방식선택 &gt; URL 수신 설정</strong>에 넣으셔야 상점에 자동으로 입금 통보됩니다."); ?>
<?php echo G5_SHOP_URL; ?>/settle_inicis_common.php</td> <?php echo G5_SHOP_URL; ?>/settle_inicis_common.php</td>
</tr> </tr>
<tr> <tr>
@@ -919,6 +919,7 @@ if(!$default['de_kakaopay_cancelpwd']){
<input type="text" name="de_kakaopay_hashkey" value="<?php echo get_sanitize_input($default['de_kakaopay_hashkey']); ?>" id="de_kakaopay_hashkey" class="frm_input" size="20"> <input type="text" name="de_kakaopay_hashkey" value="<?php echo get_sanitize_input($default['de_kakaopay_hashkey']); ?>" id="de_kakaopay_hashkey" class="frm_input" size="20">
</td> </td>
</tr> </tr>
<?php if (defined('G5_SHOP_DIRECT_NAVERPAY') && G5_SHOP_DIRECT_NAVERPAY) { ?>
<tr class="naver_info_fld"> <tr class="naver_info_fld">
<th scope="row"> <th scope="row">
<label for="de_naverpay_mid">네이버페이 가맹점 아이디</label> <label for="de_naverpay_mid">네이버페이 가맹점 아이디</label>
@@ -982,6 +983,7 @@ if(!$default['de_kakaopay_cancelpwd']){
<input type="text" name="de_naverpay_sendcost" value="<?php echo get_sanitize_input($default['de_naverpay_sendcost']); ?>" id="de_naverpay_sendcost" class="frm_input" size="70"> <input type="text" name="de_naverpay_sendcost" value="<?php echo get_sanitize_input($default['de_naverpay_sendcost']); ?>" id="de_naverpay_sendcost" class="frm_input" size="70">
</td> </td>
</tr> </tr>
<?php } // defined('G5_SHOP_DIRECT_NAVERPAY') ?>
<tr> <tr>
<th scope="row">에스크로 사용</th> <th scope="row">에스크로 사용</th>
<td> <td>
@@ -1396,13 +1398,6 @@ if(!$default['de_kakaopay_cancelpwd']){
<?php echo get_member_level_select('de_level_sell', 1, 10, $default['de_level_sell']); ?> <?php echo get_member_level_select('de_level_sell', 1, 10, $default['de_level_sell']); ?>
</td> </td>
</tr> </tr>
<tr>
<th scope="row"><label for="de_code_dup_use">코드 중복검사</label></th>
<td>
<?php echo help("분류, 상품 등을 추가할 때 자동으로 코드 중복검사를 하려면 체크하십시오."); ?>
<input type="checkbox" name="de_code_dup_use" value="1" id="de_code_dup_use"<?php echo $default['de_code_dup_use']?' checked':''; ?>> 사용
</td>
</tr>
<tr> <tr>
<th scope="row"><label for="de_cart_keep_term">장바구니 보관기간</label></th> <th scope="row"><label for="de_cart_keep_term">장바구니 보관기간</label></th>
<td> <td>
@@ -1602,7 +1597,7 @@ function byte_check(el_cont, el_byte)
<input type="password" name="cf_icode_pw" value="<?php echo get_sanitize_input($config['cf_icode_pw']); ?>" class="frm_input" id="cf_icode_pw"> <input type="password" name="cf_icode_pw" value="<?php echo get_sanitize_input($config['cf_icode_pw']); ?>" class="frm_input" id="cf_icode_pw">
</td> </td>
</tr> </tr>
<tr class="icode_old_version" <?php if(!(isset($userinfo['payment']) && $userinfo['payment'])){ echo 'cf_tr_hide'; } ?>"> <tr class="icode_old_version <?php if(!(isset($userinfo['payment']) && $userinfo['payment'])){ echo 'cf_tr_hide'; } ?>">
<th scope="row">요금제<br>(구버전)</th> <th scope="row">요금제<br>(구버전)</th>
<td> <td>
<input type="hidden" name="cf_icode_server_ip" value="<?php echo get_sanitize_input($config['cf_icode_server_ip']); ?>"> <input type="hidden" name="cf_icode_server_ip" value="<?php echo get_sanitize_input($config['cf_icode_server_ip']); ?>">
+15 -7
View File
@@ -239,7 +239,11 @@ $check_sanitize_keys = array(
); );
foreach( $check_sanitize_keys as $key ){ foreach( $check_sanitize_keys as $key ){
$$key = isset($_POST[$key]) ? clean_xss_tags($_POST[$key], 1, 1) : ''; if( in_array($key, array('de_bank_account')) ){
$$key = isset($_POST[$key]) ? clean_xss_tags($_POST[$key], 1, 1, 0, 0) : '';
} else {
$$key = isset($_POST[$key]) ? clean_xss_tags($_POST[$key], 1, 1) : '';
}
} }
$warning_msg = ''; $warning_msg = '';
@@ -427,17 +431,19 @@ $sql = " update {$g5['g5_shop_default_table']}
de_kakaopay_enckey = '{$de_kakaopay_enckey}', de_kakaopay_enckey = '{$de_kakaopay_enckey}',
de_kakaopay_hashkey = '{$de_kakaopay_hashkey}', de_kakaopay_hashkey = '{$de_kakaopay_hashkey}',
de_kakaopay_cancelpwd = '{$de_kakaopay_cancelpwd}', de_kakaopay_cancelpwd = '{$de_kakaopay_cancelpwd}',
de_naverpay_mid = '{$de_naverpay_mid}',
de_naverpay_cert_key = '{$de_naverpay_cert_key}',
de_naverpay_button_key = '{$de_naverpay_button_key}',
de_naverpay_test = '{$de_naverpay_test}',
de_naverpay_mb_id = '{$de_naverpay_mb_id}',
de_naverpay_sendcost = '{$de_naverpay_sendcost}',
de_member_reg_coupon_use = '{$de_member_reg_coupon_use}', de_member_reg_coupon_use = '{$de_member_reg_coupon_use}',
de_member_reg_coupon_term = '{$de_member_reg_coupon_term}', de_member_reg_coupon_term = '{$de_member_reg_coupon_term}',
de_member_reg_coupon_price = '{$de_member_reg_coupon_price}', de_member_reg_coupon_price = '{$de_member_reg_coupon_price}',
de_member_reg_coupon_minimum = '{$de_member_reg_coupon_minimum}' de_member_reg_coupon_minimum = '{$de_member_reg_coupon_minimum}'
"; ";
if (defined('G5_SHOP_DIRECT_NAVERPAY') && G5_SHOP_DIRECT_NAVERPAY) {
$sql .= " ,de_naverpay_mid = '{$de_naverpay_mid}',
de_naverpay_cert_key = '{$de_naverpay_cert_key}',
de_naverpay_button_key = '{$de_naverpay_button_key}',
de_naverpay_test = '{$de_naverpay_test}',
de_naverpay_mb_id = '{$de_naverpay_mb_id}',
de_naverpay_sendcost = '{$de_naverpay_sendcost}' ";
}
sql_query($sql); sql_query($sql);
// 환경설정 > 포인트 사용 // 환경설정 > 포인트 사용
@@ -456,6 +462,8 @@ $sql = " update {$g5['config_table']}
cf_lg_mert_key = '{$cf_lg_mert_key}' "; cf_lg_mert_key = '{$cf_lg_mert_key}' ";
sql_query($sql); sql_query($sql);
run_event('shop_admin_configformupdate');
if( $warning_msg ){ if( $warning_msg ){
alert($warning_msg, "./configform.php"); alert($warning_msg, "./configform.php");
} else { } else {
+1 -1
View File
@@ -139,7 +139,7 @@ if($w == '') {
} }
// 쿠폰생성알림 발송 // 쿠폰생성알림 발송
if($w == '' && ($_POST['cp_sms_send'] || $_POST['cp_email_send'])) { if ($w == '' && (isset($_POST['cp_sms_send']) || isset($_POST['cp_email_send']))) {
include_once(G5_LIB_PATH.'/mailer.lib.php'); include_once(G5_LIB_PATH.'/mailer.lib.php');
$sms_count = 0; $sms_count = 0;
+1 -1
View File
@@ -232,7 +232,7 @@ $od_b_addr1 = clean_xss_tags($data['od_b_addr1']);
$od_b_addr2 = clean_xss_tags($data['od_b_addr2']); $od_b_addr2 = clean_xss_tags($data['od_b_addr2']);
$od_b_addr3 = clean_xss_tags($data['od_b_addr3']); $od_b_addr3 = clean_xss_tags($data['od_b_addr3']);
$od_b_addr_jibeon = preg_match("/^(N|R)$/", $data['od_b_addr_jibeon']) ? $data['od_b_addr_jibeon'] : ''; $od_b_addr_jibeon = preg_match("/^(N|R)$/", $data['od_b_addr_jibeon']) ? $data['od_b_addr_jibeon'] : '';
$od_memo = clean_xss_tags($data['od_memo']); $od_memo = clean_xss_tags($data['od_memo'], 0, 1, 0, 0);
$od_deposit_name = clean_xss_tags($data['od_deposit_name']); $od_deposit_name = clean_xss_tags($data['od_deposit_name']);
$od_tax_flag = $default['de_tax_flag_use']; $od_tax_flag = $default['de_tax_flag_use'];
$od_receipt_price = $tot_ct_price + $od_send_cost + $od_send_cost2 - ($od_temp_point + $tot_cp_price + $tot_sc_cp_price); $od_receipt_price = $tot_ct_price + $od_send_cost + $od_send_cost2 - ($od_temp_point + $tot_cp_price + $tot_sc_cp_price);
+28 -28
View File
@@ -10,7 +10,7 @@ auth_check_menu($auth, $sub_menu, "w");
function only_number($n) function only_number($n)
{ {
return preg_replace('/[^0-9]/', '', $n); return preg_replace('/[^0-9]/', '', (string)$n);
} }
$is_upload_file = (isset($_FILES['excelfile']['tmp_name']) && $_FILES['excelfile']['tmp_name']) ? 1 : 0; $is_upload_file = (isset($_FILES['excelfile']['tmp_name']) && $_FILES['excelfile']['tmp_name']) ? 1 : 0;
@@ -50,44 +50,44 @@ if($is_upload_file) {
$it_id = (string) $rowData[0][$j++]; $it_id = (string) $rowData[0][$j++];
$it_id = preg_match('/[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)/', $it_id) ? addslashes(sprintf("%.0f", $it_id)) : preg_replace('/[^0-9a-z_\-]/i', '', $it_id); $it_id = preg_match('/[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)/', $it_id) ? addslashes(sprintf("%.0f", $it_id)) : preg_replace('/[^0-9a-z_\-]/i', '', $it_id);
$ca_id = addslashes($rowData[0][$j++]); $ca_id = addslashes($rowData[0][$j++]);
$ca_id2 = addslashes($rowData[0][$j++]); $ca_id2 = addslashes((string)$rowData[0][$j++]);
$ca_id3 = addslashes($rowData[0][$j++]); $ca_id3 = addslashes((string)$rowData[0][$j++]);
$it_name = addslashes($rowData[0][$j++]); $it_name = addslashes($rowData[0][$j++]);
$it_maker = addslashes($rowData[0][$j++]); $it_maker = addslashes((string)$rowData[0][$j++]);
$it_origin = addslashes($rowData[0][$j++]); $it_origin = addslashes((string)$rowData[0][$j++]);
$it_brand = addslashes($rowData[0][$j++]); $it_brand = addslashes((string)$rowData[0][$j++]);
$it_model = addslashes($rowData[0][$j++]); $it_model = addslashes((string)$rowData[0][$j++]);
$it_type1 = addslashes($rowData[0][$j++]); $it_type1 = addslashes((string)$rowData[0][$j++]);
$it_type2 = addslashes($rowData[0][$j++]); $it_type2 = addslashes((string)$rowData[0][$j++]);
$it_type3 = addslashes($rowData[0][$j++]); $it_type3 = addslashes((string)$rowData[0][$j++]);
$it_type4 = addslashes($rowData[0][$j++]); $it_type4 = addslashes((string)$rowData[0][$j++]);
$it_type5 = addslashes($rowData[0][$j++]); $it_type5 = addslashes((string)$rowData[0][$j++]);
$it_basic = addslashes($rowData[0][$j++]); $it_basic = addslashes((string)$rowData[0][$j++]);
$it_explan = addslashes($rowData[0][$j++]); $it_explan = addslashes((string)$rowData[0][$j++]);
$it_mobile_explan = addslashes($rowData[0][$j++]); $it_mobile_explan = addslashes((string)$rowData[0][$j++]);
$it_cust_price = addslashes(only_number($rowData[0][$j++])); $it_cust_price = addslashes(only_number($rowData[0][$j++]));
$it_price = addslashes(only_number($rowData[0][$j++])); $it_price = addslashes(only_number($rowData[0][$j++]));
$it_tel_inq = addslashes($rowData[0][$j++]); $it_tel_inq = addslashes((string)$rowData[0][$j++]);
$it_point = addslashes(only_number($rowData[0][$j++])); $it_point = addslashes(only_number($rowData[0][$j++]));
$it_point_type = addslashes(only_number($rowData[0][$j++])); $it_point_type = addslashes(only_number($rowData[0][$j++]));
$it_sell_email = addslashes($rowData[0][$j++]); $it_sell_email = addslashes((string)$rowData[0][$j++]);
$it_use = addslashes($rowData[0][$j++]); $it_use = addslashes((string)$rowData[0][$j++]);
$it_stock_qty = addslashes(only_number($rowData[0][$j++])); $it_stock_qty = addslashes(only_number($rowData[0][$j++]));
$it_noti_qty = addslashes(only_number($rowData[0][$j++])); $it_noti_qty = addslashes(only_number($rowData[0][$j++]));
$it_buy_min_qty = addslashes(only_number($rowData[0][$j++])); $it_buy_min_qty = addslashes(only_number($rowData[0][$j++]));
$it_buy_max_qty = addslashes(only_number($rowData[0][$j++])); $it_buy_max_qty = addslashes(only_number($rowData[0][$j++]));
$it_notax = addslashes(only_number($rowData[0][$j++])); $it_notax = addslashes(only_number($rowData[0][$j++]));
$it_order = addslashes(only_number($rowData[0][$j++])); $it_order = addslashes(only_number($rowData[0][$j++]));
$it_img1 = addslashes($rowData[0][$j++]); $it_img1 = addslashes((string)$rowData[0][$j++]);
$it_img2 = addslashes($rowData[0][$j++]); $it_img2 = addslashes((string)$rowData[0][$j++]);
$it_img3 = addslashes($rowData[0][$j++]); $it_img3 = addslashes((string)$rowData[0][$j++]);
$it_img4 = addslashes($rowData[0][$j++]); $it_img4 = addslashes((string)$rowData[0][$j++]);
$it_img5 = addslashes($rowData[0][$j++]); $it_img5 = addslashes((string)$rowData[0][$j++]);
$it_img6 = addslashes($rowData[0][$j++]); $it_img6 = addslashes((string)$rowData[0][$j++]);
$it_img7 = addslashes($rowData[0][$j++]); $it_img7 = addslashes((string)$rowData[0][$j++]);
$it_img8 = addslashes($rowData[0][$j++]); $it_img8 = addslashes((string)$rowData[0][$j++]);
$it_img9 = addslashes($rowData[0][$j++]); $it_img9 = addslashes((string)$rowData[0][$j++]);
$it_img10 = addslashes($rowData[0][$j++]); $it_img10 = addslashes((string)$rowData[0][$j++]);
$it_explan2 = strip_tags(trim($it_explan)); $it_explan2 = strip_tags(trim($it_explan));
if(!$it_id || !$ca_id || !$it_name) { if(!$it_id || !$ca_id || !$it_name) {
+3 -34
View File
@@ -210,7 +210,6 @@ if(!sql_query(" select it_skin from {$g5['g5_shop_item_table']} limit 1", false)
<form name="fitemform" action="./itemformupdate.php" method="post" enctype="MULTIPART/FORM-DATA" autocomplete="off" onsubmit="return fitemformcheck(this)"> <form name="fitemform" action="./itemformupdate.php" method="post" enctype="MULTIPART/FORM-DATA" autocomplete="off" onsubmit="return fitemformcheck(this)">
<input type="hidden" name="codedup" value="<?php echo $default['de_code_dup_use']; ?>">
<input type="hidden" name="w" value="<?php echo $w; ?>"> <input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="sca" value="<?php echo $sca; ?>"> <input type="hidden" name="sca" value="<?php echo $sca; ?>">
<input type="hidden" name="sst" value="<?php echo $sst; ?>"> <input type="hidden" name="sst" value="<?php echo $sst; ?>">
@@ -333,11 +332,8 @@ if(!sql_query(" select it_skin from {$g5['g5_shop_item_table']} limit 1", false)
<th scope="row">상품코드</th> <th scope="row">상품코드</th>
<td colspan="2"> <td colspan="2">
<?php if ($w == '') { // 추가 ?> <?php if ($w == '') { // 추가 ?>
<!-- 최근에 입력한 코드(자동 생성시)가 목록의 상단에 출력되게 하려면 아래의 코드로 대체하십시오. -->
<!-- <input type=text class=required name=it_id value="<?php echo 10000000000-time()?>" size=12 maxlength=10 required> <a href='javascript:;' onclick="codedupcheck(document.all.it_id.value)"><img src='./img/btn_code.gif' border=0 align=absmiddle></a> -->
<?php echo help("상품의 코드는 10자리 숫자로 자동생성합니다. <b>직접 상품코드를 입력할 수도 있습니다.</b>\n상품코드는 영문자, 숫자, - 만 입력 가능합니다."); ?> <?php echo help("상품의 코드는 10자리 숫자로 자동생성합니다. <b>직접 상품코드를 입력할 수도 있습니다.</b>\n상품코드는 영문자, 숫자, - 만 입력 가능합니다."); ?>
<input type="text" name="it_id" value="<?php echo time(); ?>" id="it_id" required class="frm_input required" size="20" maxlength="20"> <input type="text" name="it_id" value="<?php echo time(); ?>" id="it_id" required class="frm_input required" size="20" maxlength="20">
<!-- <?php if ($default['de_code_dup_use']) { ?><button type="button" class="btn_frmline" onclick="codedupcheck(document.all.it_id.value)">중복검사</a><?php } ?> -->
<?php } else { ?> <?php } else { ?>
<input type="hidden" name="it_id" value="<?php echo $it['it_id']; ?>"> <input type="hidden" name="it_id" value="<?php echo $it['it_id']; ?>">
<span class="frm_ca_id"><?php echo $it['it_id']; ?></span> <span class="frm_ca_id"><?php echo $it['it_id']; ?></span>
@@ -1782,35 +1778,6 @@ $(function() {
}); });
<?php } ?> <?php } ?>
function codedupcheck(id)
{
if (!id) {
alert('상품코드를 입력하십시오.');
f.it_id.focus();
return;
}
var it_id = id.replace(/[A-Za-z0-9\-_]/g, "");
if(it_id.length > 0) {
alert("상품코드는 영문자, 숫자, -, _ 만 사용할 수 있습니다.");
return false;
}
$.post(
"./codedupcheck.php",
{ it_id: id },
function(data) {
if(data.name) {
alert("코드 '"+data.code+"' 는 '".data.name+"' (으)로 이미 등록되어 있으므로\n\n사용하실 수 없습니다.");
return false;
} else {
alert("'"+data.code+"' 은(는) 등록된 코드가 없으므로 사용하실 수 있습니다.");
document.fitemform.codedup.value = '';
}
}, "json"
);
}
function fitemformcheck(f) function fitemformcheck(f)
{ {
if (!f.ca_id.value) { if (!f.ca_id.value) {
@@ -1843,8 +1810,10 @@ function fitemformcheck(f)
if(f.it_point_type.value == "1" || f.it_point_type.value == "2") { if(f.it_point_type.value == "1" || f.it_point_type.value == "2") {
var point = parseInt(f.it_point.value); var point = parseInt(f.it_point.value);
if(point > 99) { if(point < 0 || point > 99) {
alert("포인트 비율을 0과 99 사이의 값으로 입력해 주십시오."); alert("포인트 비율을 0과 99 사이의 값으로 입력해 주십시오.");
f.it_point.focus();
f.it_point.select();
return false; return false;
} }
} }
+4 -4
View File
@@ -218,6 +218,10 @@ if ($w == "" || $w == "u")
@set_cookie("ck_origin", stripslashes($it_origin), time() + 86400*31); @set_cookie("ck_origin", stripslashes($it_origin), time() + 86400*31);
} }
// 관련상품을 삭제한 뒤에 경고가 노출되어 등록, 수정 없이 관련상품만 삭제될 수 있는 오류 수정 (squared2님,210617)
// 포인트 비율 값 체크
if(($it_point_type == 1 || $it_point_type == 2) && ($it_point < 0 || $it_point > 99))
alert("포인트 비율을 0과 99 사이의 값으로 입력해 주십시오.");
// 관련상품을 우선 삭제함 // 관련상품을 우선 삭제함
sql_query(" delete from {$g5['g5_shop_item_relation_table']} where it_id = '$it_id' "); sql_query(" delete from {$g5['g5_shop_item_relation_table']} where it_id = '$it_id' ");
@@ -287,10 +291,6 @@ for($i=0; $i<$count_ii_article; $i++) {
} }
$it_info_value = addslashes(serialize($value_array)); $it_info_value = addslashes(serialize($value_array));
// 포인트 비율 값 체크
if(($it_point_type == 1 || $it_point_type == 2) && $it_point > 99)
alert("포인트 비율을 0과 99 사이의 값으로 입력해 주십시오.");
$it_name = isset($_POST['it_name']) ? strip_tags(clean_xss_attributes(trim($_POST['it_name']))) : ''; $it_name = isset($_POST['it_name']) ? strip_tags(clean_xss_attributes(trim($_POST['it_name']))) : '';
// KVE-2019-0708 // KVE-2019-0708
+2 -2
View File
@@ -35,8 +35,8 @@ if ($post_act_button == "선택수정") {
$p_it_stock_qty = (isset($_POST['it_stock_qty']) && is_array($_POST['it_stock_qty'])) ? strip_tags($_POST['it_stock_qty'][$k]) : ''; $p_it_stock_qty = (isset($_POST['it_stock_qty']) && is_array($_POST['it_stock_qty'])) ? strip_tags($_POST['it_stock_qty'][$k]) : '';
$p_it_skin = (isset($_POST['it_skin']) && is_array($_POST['it_skin'])) ? strip_tags($_POST['it_skin'][$k]) : ''; $p_it_skin = (isset($_POST['it_skin']) && is_array($_POST['it_skin'])) ? strip_tags($_POST['it_skin'][$k]) : '';
$p_it_mobile_skin = (isset($_POST['it_mobile_skin']) && is_array($_POST['it_mobile_skin'])) ? strip_tags($_POST['it_mobile_skin'][$k]) : ''; $p_it_mobile_skin = (isset($_POST['it_mobile_skin']) && is_array($_POST['it_mobile_skin'])) ? strip_tags($_POST['it_mobile_skin'][$k]) : '';
$p_it_use = (isset($_POST['it_use']) && is_array($_POST['it_use'])) ? strip_tags($_POST['it_use'][$k]) : ''; $p_it_use = isset($_POST['it_use'][$k]) ? clean_xss_tags($_POST['it_use'][$k], 1, 1) : 0;
$p_it_soldout = (isset($_POST['it_soldout']) && is_array($_POST['it_soldout'])) ? strip_tags($_POST['it_soldout'][$k]) : ''; $p_it_soldout = isset($_POST['it_soldout'][$k]) ? clean_xss_tags($_POST['it_soldout'][$k], 1, 1) : 0;
$p_it_order = (isset($_POST['it_order']) && is_array($_POST['it_order'])) ? strip_tags($_POST['it_order'][$k]) : ''; $p_it_order = (isset($_POST['it_order']) && is_array($_POST['it_order'])) ? strip_tags($_POST['it_order'][$k]) : '';
$p_it_id = isset($_POST['it_id'][$k]) ? preg_replace('/[^a-z0-9_\-]/i', '', $_POST['it_id'][$k]) : ''; $p_it_id = isset($_POST['it_id'][$k]) ? preg_replace('/[^a-z0-9_\-]/i', '', $_POST['it_id'][$k]) : '';
+3 -3
View File
@@ -171,9 +171,9 @@ $listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'" class="ov_listall">전체목
<?php echo $row['it_id']; ?> <?php echo $row['it_id']; ?>
</td> </td>
<td class="td_left"><a href="<?php echo $href; ?>"><?php echo get_it_image($row['it_id'], 50, 50); ?> <?php echo cut_str(stripslashes($row['it_name']), 60, "&#133"); ?></a></td> <td class="td_left"><a href="<?php echo $href; ?>"><?php echo get_it_image($row['it_id'], 50, 50); ?> <?php echo cut_str(stripslashes($row['it_name']), 60, "&#133"); ?></a></td>
<td class="td_num<?php echo $it_stock_qty_st; ?>"><?php echo $it_stock_qty; ?></td> <td class="td_num<?php echo $it_stock_qty_st; ?>"><?php echo (int)$it_stock_qty; ?></td>
<td class="td_num"><?php echo number_format($wait_qty); ?></td> <td class="td_num"><?php echo number_format((float)$wait_qty); ?></td>
<td class="td_num"><?php echo number_format($temporary_qty); ?></td> <td class="td_num"><?php echo number_format((float)$temporary_qty); ?></td>
<td class="td_num"> <td class="td_num">
<label for="stock_qty_<?php echo $i; ?>" class="sound_only">재고수정</label> <label for="stock_qty_<?php echo $i; ?>" class="sound_only">재고수정</label>
<input type="text" name="it_stock_qty[<?php echo $i; ?>]" value="<?php echo $row['it_stock_qty']; ?>" id="stock_qty_<?php echo $i; ?>" class="frm_input" size="10" autocomplete="off"> <input type="text" name="it_stock_qty[<?php echo $i; ?>]" value="<?php echo $row['it_stock_qty']; ?>" id="stock_qty_<?php echo $i; ?>" class="frm_input" size="10" autocomplete="off">
+1 -46
View File
@@ -21,7 +21,6 @@ if(! function_exists('column_char')) {
} }
} }
if (phpversion() >= '5.2.0') {
include_once(G5_LIB_PATH.'/PHPExcel.php'); include_once(G5_LIB_PATH.'/PHPExcel.php');
$headers = array('주문번호', '주문자명', '주문자전화1', '주문자전화2', '배송자명', '배송지전화1', '배송지전화2', '배송지주소', '배송회사', '운송장번호'); $headers = array('주문번호', '주문자명', '주문자전화1', '주문자전화2', '배송자명', '배송지전화1', '배송지전화2', '배송지주소', '배송회사', '운송장번호');
@@ -47,7 +46,7 @@ if (phpversion() >= '5.2.0') {
$data = array_merge(array($headers), $rows); $data = array_merge(array($headers), $rows);
$excel = new PHPExcel(); $excel = new PHPExcel();
$excel->setActiveSheetIndex(0)->getStyle( "A1:${last_char}1" )->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB($header_bgcolor); $excel->setActiveSheetIndex(0)->getStyle( "A1:{$last_char}1" )->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setARGB($header_bgcolor);
$excel->setActiveSheetIndex(0)->getStyle( "A:$last_char" )->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)->setWrapText(true); $excel->setActiveSheetIndex(0)->getStyle( "A:$last_char" )->getAlignment()->setVertical(PHPExcel_Style_Alignment::VERTICAL_CENTER)->setWrapText(true);
foreach($widths as $i => $w) $excel->setActiveSheetIndex(0)->getColumnDimension( column_char($i) )->setWidth($w); foreach($widths as $i => $w) $excel->setActiveSheetIndex(0)->getColumnDimension( column_char($i) )->setWidth($w);
$excel->getActiveSheet()->fromArray($data,NULL,'A1'); $excel->getActiveSheet()->fromArray($data,NULL,'A1');
@@ -58,47 +57,3 @@ if (phpversion() >= '5.2.0') {
$writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5'); $writer = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
$writer->save('php://output'); $writer->save('php://output');
} else {
/*================================================================================
php_writeexcel http://www.bettina-attack.de/jonny/view.php/projects/php_writeexcel/
=================================================================================*/
include_once(G5_LIB_PATH.'/Excel/php_writeexcel/class.writeexcel_workbook.inc.php');
include_once(G5_LIB_PATH.'/Excel/php_writeexcel/class.writeexcel_worksheet.inc.php');
$fname = tempnam(G5_DATA_PATH, "tmp-deliverylist.xls");
$workbook = new writeexcel_workbook($fname);
$worksheet = $workbook->addworksheet();
// Put Excel data
$data = array('주문번호', '주문자명', '주문자전화1', '주문자전화2', '배송자명', '배송지전화1', '배송지전화2', '배송지주소', '배송회사', '운송장번호');
$data = array_map('iconv_euckr', $data);
$col = 0;
foreach($data as $cell) {
$worksheet->write(0, $col++, $cell);
}
for($i=1; $row=sql_fetch_array($result); $i++) {
$row = array_map('iconv_euckr', $row);
$worksheet->write($i, 0, ' '.$row['od_id']);
$worksheet->write($i, 1, $row['od_name']);
$worksheet->write($i, 2, ' '.$row['od_tel']);
$worksheet->write($i, 3, ' '.$row['od_hp']);
$worksheet->write($i, 4, $row['od_b_name']);
$worksheet->write($i, 5, ' '.$row['od_b_tel']);
$worksheet->write($i, 6, ' '.$row['od_b_hp']);
$worksheet->write($i, 7, print_address($row['od_b_addr1'], $row['od_b_addr2'], $row['od_b_addr3'], $row['od_b_addr_jibeon']));
$worksheet->write($i, 8, $row['od_delivery_company']);
$worksheet->write($i, 9, $row['od_invoice']);
}
$workbook->close();
header("Content-Type: application/x-msexcel; name=\"deliverylist-".date("ymd", time()).".xls\"");
header("Content-Disposition: inline; filename=\"deliverylist-".date("ymd", time()).".xls\"");
$fh=fopen($fname, "rb");
fpassthru($fh);
unlink($fname);
}
Loaded 100 of 391 files, more files were not shown because too many files have changed in this diff. Show more