Compare commits

..
174 Commits
Author SHA1 Message Date
thisgun ff0bfd168b Merge branch 'g54' of github.com:gnuboard/g5 into 54 2019-10-01 17:39:58 +09:00
thisgun 355ddc5c57 5.4.0.2 버전 수정 2019-10-01 16:16:04 +09:00
thisgun 3979ac6dbb 게시판 order by 지정시 오류 수정 2019-10-01 16:04:37 +09:00
thisgun e3c68f982b 일부 css 수정 2019-10-01 12:03:09 +09:00
thisgun f98eba0a9d 충돌 수정 2019-09-30 18:16:28 +09:00
thisgun 5b25e110c4 일부 훅 추가 2019-09-30 15:52:19 +09:00
thisgun 6157fe8b3b hook 구문을 더 추가 2019-09-30 11:01:24 +09:00
thisgun 91df653dfb hook 코드 추가 2019-09-20 11:03:48 +09:00
thisgun 0bc4ca7b47 일부 후킹 추가 2019-09-18 15:50:59 +09:00
thisgun 9a68f86230 게시글 수정시 글 제목을 수정했을때 나타나는 오류 수정 2019-09-17 19:08:26 +09:00
thisgun a0a2ca2a9f 5.3.3.3 버전 merge 2019-09-17 18:24:39 +09:00
thisgun 0042ab0144 5.3 버전 merge 2019-09-17 18:24:02 +09:00
thisgun 545d081f2d 잘못된 코드 수정 2019-09-10 10:54:34 +09:00
thisgun a0b9cd39cb hook 추가 및 여러 코드 수정 2019-08-09 09:24:08 +09:00
thisgun 35ca744794 충돌수정 2019-08-07 17:12:51 +09:00
thisgun 75328dff71 Merge branch 'g54' of github.com:gnuboard/g5 into 54 2019-07-19 20:22:44 +09:00
thisgun 7163838706 회원찾기 form 오류 수정 2019-07-19 20:15:39 +09:00
thisgun 31e98a85b8 Merge branch 'master' of github.com:gnuboard/g5 into g54 2019-07-19 20:03:30 +09:00
thisgun 05981661e7 5.4.0.1 2019-07-19 17:52:30 +09:00
thisgun e0cb64e0a7 Merge branch 'g54' of github.com:gnuboard/g5 into 54 2019-07-19 10:50:52 +09:00
thisgun d663ca90d3 충돌 수정 2019-07-19 10:49:10 +09:00
thisgun 0eea266500 잘못된 링크 코드 변경 2019-07-19 10:48:01 +09:00
thisgun b8ba893090 Merge branch 'g54' of github.com:gnuboard/g5 into 54 2019-06-24 17:30:45 +09:00
thisgun e632542c75 충돌 수정 2019-06-24 12:07:46 +09:00
thisgun 26bbc9829d 최신글 라이브러리 잘못된 코드 수정 2019-06-10 12:14:02 +09:00
thisgun f7c8fa4a8e 잘못된 BBS 폴더 지정 구문 수정 2019-05-31 15:28:51 +09:00
thisgun 12f53f4c3a master 충돌 수정 2019-05-30 16:34:46 +09:00
thisgun 3a8e3a4654 글 제목 체크 추가 2019-05-29 17:54:45 +09:00
thisgun 2bd6a639d4 충돌 수정 2019-05-08 14:13:50 +09:00
thisgun 78dc1a91d3 잘못된 코드 수정 2019-05-08 14:10:38 +09:00
thisgun f8f33e3439 5.4 베타버전 추가 및 시작 2019-05-03 21:30:42 +09:00
thisgun 85fcbbbdb7 패스워드 호환 코드 수정 2019-05-03 20:55:09 +09:00
thisgun 15c73972de 이전 패스워드 호환 2019-05-03 20:38:06 +09:00
thisgun e8730704c1 테마 이미지 수정 2019-05-03 17:08:21 +09:00
thisgun 934e944fad 잘못된 코드 수정 2019-05-03 11:07:58 +09:00
thisgun 66e0880ebb 잘못된 코드 수정2 2019-04-24 18:18:35 +09:00
thisgun 99f09a5bf1 잘못된 로그인 스킨 코드 수정 2019-04-24 15:44:48 +09:00
thisgun 96dd706456 잘못된 코드 수정 2019-04-22 17:54:35 +09:00
thisgun dc27423fe6 rewrite 설정 다시 수정 2019-03-21 12:26:30 +09:00
thisgun c086efa040 rewrite 표시 코드 수정 2019-03-21 12:06:06 +09:00
thisgun 41ff66d35c Merge branch 'g54' of github.com:gnuboard/g5 into g54 2019-03-21 11:20:09 +09:00
thisgun 1ad87b3e6c rewrite 설정 수정 2019-03-21 11:09:37 +09:00
thisgun d26ee21322 Merge branch 'g54' of github.com:gnuboard/g5 into g54 2019-03-20 16:43:41 +09:00
thisgun e19e856c53 5.4 버전 테마 수정중 2019-03-20 16:19:17 +09:00
thisgun 75a1289b1a 5.4 버전 추가수정 2019-03-20 15:39:55 +09:00
thisgun 9f26c993a1 5.4 버전 수정중 2019-03-20 15:39:43 +09:00
thisgun eb803ae9c9 hook 함수명 수정 2019-03-18 16:19:11 +09:00
thisgun 9af0d855b3 Merge branch 'master' of https://github.com/gnuboard/g5 into g54_theme2 2019-03-14 12:07:59 +09:00
thisgun 352856759d Merge branch 'master' of https://github.com/gnuboard/g5 into g54_theme2 2019-02-18 15:14:45 +09:00
thisgun 0d968a52fa Merge branch 'g54_theme2' of https://github.com/gnuboard/g5 into g54_theme2 2019-01-21 14:10:53 +09:00
thisgun 172b3dba98 테마 메뉴 관련 코드 수정 2019-01-21 14:09:52 +09:00
thisgun 63f4d7973c 충돌 수정 2019-01-18 18:15:18 +09:00
thisgun dc21287913 master 충돌 수정 2019-01-18 17:53:17 +09:00
thisgun c5593c56be 최신글 코드 수정 2019-01-15 15:32:48 +09:00
thisgun 29c4330e7a Merge branch 'master' of github.com:gnuboard/g5 into g54_theme2 2019-01-15 15:31:02 +09:00
leebokyung 579190c786 공지가 없습니다 추가 2019-01-11 16:08:07 +09:00
leebokyung 266772d6dc 포인트 팝업 색상 변경 2019-01-11 15:51:59 +09:00
leebokyung 61c784eb57 오류검사 2019-01-11 15:33:44 +09:00
leebokyung 2a8a283a77 갤러리 글자크기 2019-01-11 14:57:42 +09:00
thisgun 6a1f6c89f6 오브젝트명 수정 2019-01-04 18:45:56 +09:00
thisgun 85cd83ecf1 Merge branch 'g54_theme2' of https://github.com/gnuboard/g5 into g54_theme2 2019-01-04 17:46:53 +09:00
thisgun 95c5b5ecd8 코드 수정 2019-01-04 17:46:42 +09:00
thisgun bfdb44324f 일부 코드 수정 2019-01-04 17:46:02 +09:00
thisgun 2e84d5fbf4 필요없는 구문 수정 2019-01-04 15:30:05 +09:00
thisgun 7539f2517c Merge branch 'g54_theme2' of https://github.com/gnuboard/g5 into g54_theme2 2019-01-04 11:55:44 +09:00
thisgun e43fc63e42 Merge branch 'g54_theme2' of https://github.com/gnuboard/g5 into g54_theme2 2019-01-04 11:44:23 +09:00
thisgun 371788ee9f Merge branch 'g54' of https://github.com/gnuboard/g5 into g54 2019-01-04 11:43:56 +09:00
thisgun 7c01ae4619 일부 틀린 구문 수정 2019-01-04 11:36:46 +09:00
thisgun 6766ef2e1f 5.4 버전 테마 수정중 2018-12-31 19:30:49 +09:00
thisgun bf7d907ae7 모바일 슬라이더 적용중 2018-12-28 17:33:50 +09:00
thisgun b83f82b3d7 master 와 merge 2018-12-26 16:05:22 +09:00
thisgun 7f62fffca4 버전 5.4 에 적용코드 2018-12-26 16:01:46 +09:00
thisgun d38a44ba62 rss 주소 수정 2018-12-13 11:34:42 +09:00
thisgun 641ede57ef 쪽지관련 수정중 2018-12-13 11:32:14 +09:00
thisgun 39f944e684 Merge branch 'master' of github.com:gnuboard/g5 into g54 2018-12-06 09:46:23 +09:00
leebokyung b71274a429 모바일qa 2018-12-04 17:09:08 +09:00
leebokyung 11dc38b883 모바일 qa input 전체 수정 2018-12-04 15:48:44 +09:00
leebokyung ce50abd4b5 안쓰는 이미지 삭제2 2018-12-04 15:03:14 +09:00
leebokyung ea478310d9 안쓰는 이미지 삭제, 웹표준 검사 pc 2018-12-04 14:51:59 +09:00
leebokyung e1a510b013 갤러리 리스트 아이콘 2018-12-04 14:04:05 +09:00
leebokyung 8aad35f416 모바일 테스트 2018-12-04 12:09:20 +09:00
leebokyung d57372907d 모바일 팝업 여백 2018-12-04 11:37:01 +09:00
leebokyung ee6948e580 모바일 테스트중 2018-12-04 11:30:37 +09:00
leebokyung 8b0c24b8c3 비회원 댓글쓰기 2018-12-04 11:17:14 +09:00
leebokyung 6a4ac064c0 투표하기 클라스 추가 2018-12-04 11:05:36 +09:00
leebokyung 09be21e31f 회원가입 폼 input 2018-12-04 10:03:15 +09:00
leebokyung 038087546a IE 수정 2018-12-04 09:58:09 +09:00
leebokyung e8f233c280 모바일 파일첨부 틀어짐 2018-12-03 17:59:23 +09:00
leebokyung dc5adce95f 모바일 테스트중 2018-12-03 17:51:37 +09:00
leebokyung 8d14c95e5c 최신글 모바일 링크 변경 2018-12-03 17:46:26 +09:00
leebokyung 546424a045 모바일 게시판 뒤로가기 추가 2018-12-03 17:24:31 +09:00
leebokyung cd2deb541f 최신글 basic 글자크기 조절 2018-12-03 17:07:48 +09:00
leebokyung 2acac99875 최신댓글 수정 2018-12-03 17:04:40 +09:00
leebokyung b08204d5a8 투표 input radio 색상 변경, 피씨 테스트 수정중 2018-12-03 16:44:06 +09:00
leebokyung 6ee46fd0c9 설문조사 팝업 여백 2018-12-03 16:34:28 +09:00
leebokyung 95234c0da5 공유하기 틀어진것 잡음 2018-12-03 16:30:19 +09:00
leebokyung fb7fd98b77 버튼목록 팝업처리 백그라운드 이미지2 2018-12-03 16:27:36 +09:00
leebokyung da14696e0c 버튼목록 팝업처리 백그라운드 이미지 2018-12-03 16:26:48 +09:00
leebokyung b8f5356c93 댓글 비밀글 2018-12-03 16:12:15 +09:00
leebokyung 304984db63 댓글창 수정 2018-12-03 15:41:30 +09:00
leebokyung e7e0649173 게시판 글쓰기 랙 2018-12-03 15:27:55 +09:00
leebokyung cfe9003154 테스트중 오류 정리중 2018-12-03 15:01:50 +09:00
leebokyung f4b30a878e 테마 테스트중 2018-12-03 13:21:30 +09:00
leebokyung 1eb10c9367 모바일 완료, PC+모바일 테스트중 2018-11-30 17:58:20 +09:00
leebokyung 4b6f94fe8c 모바일 정리중 2018-11-29 18:01:14 +09:00
thisgun 669770c1f1 Merge branch 'master' of https://github.com/gnuboard/g5 into g54 2018-11-28 19:12:15 +09:00
leebokyung 37737d5554 게 시 판 2018-11-28 17:25:16 +09:00
leebokyung fe0f35a59c 모바일 게시판 회원가입 2018-11-28 12:04:34 +09:00
leebokyung 7414fed364 모바일 퍼블리싱 / 금요일 오후 작업 포함 2018-11-27 11:51:27 +09:00
thisgun c43dc3ee9e Merge branch 'master' of github.com:gnuboard/g5 into g54 2018-11-22 18:16:52 +09:00
leebokyung 71f6c8e852 모바일 사이드메뉴, 검색창, 인기검색어, 접속자집계, 최신글 수정중 2018-11-22 17:45:36 +09:00
leebokyung d23eda245f faq, 포인트, 아웃로그인 2018-11-22 12:18:01 +09:00
leebokyung 4922c46e7b ¸ð¹ÙÀÏ »õ±Û, ¹湮ÀÚ, °˻ö, ¼³¹®Á¶»ç 2018-11-21 17:58:50 +09:00
leebokyung a382a049c6 PC 정리 완료~ 2018-11-20 16:44:30 +09:00
leebokyung db813d69bd qa, write, view, comment 2018-11-19 17:46:12 +09:00
leebokyung 9dacee38d3 팝업창 정리중, 게시판뷰 수정, 갤러리, 쪽지 2018-11-16 17:44:54 +09:00
leebokyung 6510d79217 faq 2018-11-15 17:48:59 +09:00
leebokyung 579e9ba598 로그인, 투표결과, 새글, 포인트, 스크랩 2018-11-15 17:00:34 +09:00
leebokyung 6877f818e1 검색창 옵션 or&and 2018-11-14 18:00:09 +09:00
leebokyung 0913dba0ee 검색, 방문자, 게시판 수정중 2018-11-14 16:57:32 +09:00
leebokyung 961d45b607 게시판 옵션 수정중 2018-11-14 12:14:27 +09:00
leebokyung d11010e6d4 회원가입,소셜,쪽지 수정중 2018-11-13 17:52:50 +09:00
leebokyung 17d10c3c37 아이콘 전체 수정, 최신글 코드 변경, tnb 2018-11-13 12:21:05 +09:00
leebokyung aad3eca303 메인 정리, 게시판 작업중 2018-11-12 17:58:58 +09:00
leebokyung 5f766ae06b 최신글, header, 접속자집계, gnb 푸터 수정중 2018-11-12 12:20:17 +09:00
leebokyung 8ba8b87690 로그인, 최신글, 설문조사, 헤더 수정중 2018-11-09 17:55:41 +09:00
leebokyung 3faf265c46 메인화면 정리중 2018-11-09 12:28:09 +09:00
leebokyung 7c01ab8f32 5.4버전 테마폴더 생성 2018-11-08 09:42:42 +09:00
thisgun 4376f39504 아이디 암호화 복호화 함수 원래대로 수정 2018-11-02 14:36:16 +09:00
thisgun 8b76de6650 잘못된 인스톨 코드 수정 2018-11-02 10:42:17 +09:00
thisgun 575a54b766 url 설정 설명문 수정 2018-11-02 10:35:49 +09:00
thisgun 517ce64fda 잘못된 취소 링크 수정 2018-11-02 09:36:43 +09:00
thisgun e1c071a596 게시판 비밀번호 저장 방식 및 여러가지 문제점 수정 2018-11-02 09:02:37 +09:00
thisgun 704ae9863f 쪽지 및 게시판 회원 코드 수정 2018-11-01 09:46:26 +09:00
thisgun fd1d53931a 충돌 수정 2018-10-31 12:28:29 +09:00
thisgun 8fcfc3a7ed Merge branch 'master' of https://github.com/gnuboard/g5 into g54 2018-10-31 12:26:20 +09:00
thisgun c55a0e4600 틀린 코드 수정 2018-10-31 11:38:46 +09:00
thisgun 73fa80fc52 hook 코드 및 회원 조회 함수명 변경 2018-10-30 18:08:57 +09:00
thisgun 0954bd8b5f 잘못된 rewrite 규칙 수정 2018-10-24 18:32:54 +09:00
thisgun cf566e3512 URL 타이틀 지정 코드 수정 2018-10-24 13:53:44 +09:00
thisgun eca24d196e url 관련 코드 수정 2018-10-24 11:05:48 +09:00
thisgun 7f22566ecd 잘못된 구문 수정 2018-10-22 19:07:50 +09:00
thisgun c84efa72a4 Merge branch 'master' of https://github.com/gnuboard/g5 into g54 2018-10-22 17:55:29 +09:00
thisgun 866f49ec47 pbkdf2 암호화 적용 2018-10-22 17:53:38 +09:00
thisgun e40344fe96 Merge branch 'master' of https://github.com/gnuboard/g5 into g54 2018-10-18 11:43:40 +09:00
thisgun ffdbaa5680 Merge branch 'g54' of https://github.com/gnuboard/g5 into g54 2018-10-12 18:01:48 +09:00
thisgun 6f19c8141a Merge branch 'master' of https://github.com/gnuboard/g5 into g54 2018-10-12 17:57:45 +09:00
thisgun 082f0c43ee seo_title 저장 코드 수정 2018-10-12 17:57:34 +09:00
thisgun c8a9576d63 패스워드 체크 과정 빠진 부분 추가 2018-10-11 11:27:18 +09:00
thisgun a5bd3841dd Merge branch 'master' of github.com:gnuboard/g5 into pbkdf2 2018-10-11 11:07:30 +09:00
thisgun 352cf06944 pbkdf2 암호화 함수 적용 2018-10-11 09:59:42 +09:00
thisgun c4a326cd48 Merge branch 'g54' of github.com:gnuboard/g5 into g54 2018-10-04 10:58:34 +09:00
thisgun c742b3fff8 권한 문구 수정 2018-10-04 10:58:20 +09:00
thisgun 100328a031 일부 리라이트 규칙 수정 2018-10-04 10:52:24 +09:00
thisgun e21429167b 리라이트 규칙 수정 2018-10-02 17:04:54 +09:00
thisgun 8d7c0005e4 틀린 구문 수정 2018-10-02 11:47:29 +09:00
thisgun f5155c4fed 충돌 수정 2018-10-01 18:47:09 +09:00
thisgun f6d994d810 리라이트 규칙 수정 2018-10-01 18:35:08 +09:00
thisgun 2757fb46f1 Merge branch 'g54' of github.com:gnuboard/g5 into g54 2018-10-01 14:23:55 +09:00
thisgun e17e4dc869 KVE-2018-0732 취약점 수정 2018-10-01 11:49:08 +09:00
thisgun 75b6116057 짧은 주소 적용 2018-09-21 18:16:54 +09:00
thisgun cbeef0e453 짧은 주소 url 수정 2018-09-20 09:29:08 +09:00
thisgun 7547b6e0ab Merge branch 'master' of github.com:gnuboard/g5 into g54 2018-09-18 09:18:47 +09:00
thisgun e61dc3534f rewrite 수정 2018-09-18 09:18:39 +09:00
thisgun 92a27cb64a 충돌 수정 2018-09-14 16:16:56 +09:00
thisgun db2b8a2f9b Merge branch 'g54' of https://github.com/gnuboard/g5 into g54 2018-09-14 09:41:58 +09:00
thisgun 561d2ffd52 rewrite 수정 2018-09-14 09:41:35 +09:00
thisgun 6b9cbb9612 버그 수정 2018-09-13 13:47:47 +09:00
thisgun 27e0a541c7 잘못된 구문 수정 2018-09-13 12:22:02 +09:00
thisgun 16907801b7 짧은 주소 작업중 2018-09-13 10:42:56 +09:00
thisgun 7c1e1e6240 짧은 URL 적용중 2018-09-11 09:32:08 +09:00
thisgun 58b86e556a 짧은 URL 적용 수정중 2018-09-07 18:00:46 +09:00
thisgun f66300a394 짧은주소 수정중 2018-09-06 18:34:14 +09:00
thisgun 25bd7430fc 일부 코드 수정 2018-09-06 17:21:27 +09:00
169 changed files with 489 additions and 5558 deletions
+1 -1
View File
@@ -101,7 +101,7 @@ function imageview(id, w, h)
<h1><?php echo $config['cf_title'] ?></h1>
<div id="hd_top">
<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 $config['cf_title'] ?> 관리자"></a></div>
<div id="tnb">
<ul>
+1 -1
View File
@@ -108,7 +108,7 @@ function get_ajax_token()
}
$(function() {
$(document).on("click", "form input:submit, form button:submit", function() {
$(document).on("click", "form input:submit", function() {
var f = this.form;
var token = get_ajax_token();
+1 -14
View File
@@ -31,7 +31,7 @@ include_once(G5_PATH.'/head.sub.php');
</tr>
<tr>
<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 $board['bo_subject'] ?>" id="target_subject" required class="required frm_input" maxlength="120"></td>
</tr>
<tr>
<th scope="col">복사 유형</th>
@@ -58,19 +58,6 @@ include_once(G5_PATH.'/head.sub.php');
<script>
function fboardcopy_check(f)
{
<?php
if(!$w){
$js_array = get_bo_table_banned_word();
echo "var banned_array = ". json_encode($js_array) . ";\n";
}
?>
// 게시판명이 금지된 단어로 되어 있으면
if( (typeof banned_array != 'undefined') && jQuery.inArray(f.target_table.value, banned_array) !== -1 ){
alert("입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.");
return false;
}
if (f.bo_table.value == f.target_table.value) {
alert("원본 테이블명과 복사할 테이블명이 달라야 합니다.");
return false;
-7
View File
@@ -11,17 +11,10 @@ check_admin_token();
$target_table = trim($_POST['target_table']);
$target_subject = trim($_POST['target_subject']);
$target_subject = strip_tags(clean_xss_attributes($target_subject));
if (!preg_match('/[A-Za-z0-9_]{1,20}/', $target_table)) {
alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)');
}
// 게시판명이 금지된 단어로 되어 있으면
if ( $w == '' && in_array($target_table, get_bo_table_banned_word()) ){
alert('입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.');
}
$row = sql_fetch(" select count(*) as cnt from {$g5['board_table']} where bo_table = '$target_table' ");
if ($row['cnt'])
alert($target_table.'은(는) 이미 존재하는 게시판 테이블명 입니다.\\n복사할 테이블명으로 사용할 수 없습니다.');
-3
View File
@@ -26,9 +26,6 @@ sql_query(" delete from {$g5['board_file_table']} where bo_table = '{$tmp_bo_tab
// 게시판 테이블 DROP
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}' ");
delete_cache_latest($tmp_bo_table);
// 게시판 폴더 전체 삭제
-13
View File
@@ -1372,19 +1372,6 @@ jQuery(function($){
function fboardform_submit(f)
{
<?php
if(!$w){
$js_array = get_bo_table_banned_word();
echo "var banned_array = ". json_encode($js_array) . ";\n";
}
?>
// 게시판명이 금지된 단어로 되어 있으면
if( (typeof banned_array != 'undefined') && jQuery.inArray(f.bo_table.value, banned_array) !== -1 ){
alert("입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.");
return false;
}
<?php echo get_editor_js("bo_content_head"); ?>
<?php echo get_editor_js("bo_content_tail"); ?>
<?php echo get_editor_js("bo_mobile_content_head"); ?>
+7 -17
View File
@@ -17,11 +17,6 @@ if (!$bo_table) { alert('게시판 TABLE명은 반드시 입력하세요.'); }
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) { alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); }
if (!$_POST['bo_subject']) { alert('게시판 제목을 입력하세요.'); }
// 게시판명이 금지된 단어로 되어 있으면
if ( $w == '' && in_array($bo_table, get_bo_table_banned_word()) ){
alert('입력한 게시판 TABLE명을 사용할수 없습니다. 다른 이름으로 입력해 주세요.');
}
$bo_include_head = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($bo_include_head, 0, 255));
$bo_include_tail = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($bo_include_tail, 0, 255));
@@ -60,11 +55,6 @@ if(!is_include_path_check($bo_include_tail, 1)) {
alert('하단 파일 경로에 포함시킬수 없는 문자열이 있습니다.');
}
if( function_exists('filter_input_include_path') ){
$bo_include_head = filter_input_include_path($bo_include_head);
$bo_include_tail = filter_input_include_path($bo_include_tail);
}
$board_path = G5_DATA_PATH.'/file/'.$bo_table;
// 게시판 디렉토리 생성
@@ -81,12 +71,12 @@ $f = @fopen($file, 'w');
// 분류에 & 나 = 는 사용이 불가하므로 2바이트로 바꾼다.
$src_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 = str_replace($src_char, $dst_char, $bo_category_list);
//https://github.com/gnuboard/gnuboard5/commit/f5f4925d4eb28ba1af728e1065fc2bdd9ce1da58 에 따른 조치
$str_bo_category_list = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", "", $bo_category_list);
$str_bo_category_list = isset($_POST['bo_category_list']) ? preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)\/\^\*]/", "", $_POST['bo_category_list']) : '';
$_POST['bo_subject'] = strip_tags(clean_xss_attributes($_POST['bo_subject']));
$_POST['bo_mobile_subject'] = strip_tags(clean_xss_attributes($_POST['bo_mobile_subject']));
$_POST['bo_subject'] = strip_tags($_POST['bo_subject']);
$_POST['bo_mobile_subject'] = strip_tags($_POST['bo_mobile_subject']);
$sql_common = " gr_id = '{$gr_id}',
bo_subject = '{$_POST['bo_subject']}',
@@ -204,7 +194,7 @@ if ($w == '') {
$file = file('./sql_write.sql');
$file = get_db_create_replace($file);
$sql = implode("\n", $file);
$sql = implode($file, "\n");
$create_table = $g5['write_prefix'] . $bo_table;
@@ -294,7 +284,7 @@ if (is_checked('chk_grp_write_point')) $grp_fields .= " , bo_write_poin
if (is_checked('chk_grp_comment_point')) $grp_fields .= " , bo_comment_point = '{$bo_comment_point}' ";
if (is_checked('chk_grp_download_point')) $grp_fields .= " , bo_download_point = '{$bo_download_point}' ";
if (is_checked('chk_grp_category_list')) {
$grp_fields .= " , bo_category_list = '{$str_bo_category_list}' ";
$grp_fields .= " , bo_category_list = '{$bo_category_list}' ";
$grp_fields .= " , bo_use_category = '{$bo_use_category}' ";
}
if (is_checked('chk_grp_use_sideview')) $grp_fields .= " , bo_use_sideview = '{$bo_use_sideview}' ";
@@ -383,7 +373,7 @@ if (is_checked('chk_all_write_point')) $all_fields .= " , bo_write_poin
if (is_checked('chk_all_comment_point')) $all_fields .= " , bo_comment_point = '{$bo_comment_point}' ";
if (is_checked('chk_all_download_point')) $all_fields .= " , bo_download_point = '{$bo_download_point}' ";
if (is_checked('chk_all_category_list')) {
$all_fields .= " , bo_category_list = '{$str_bo_category_list}' ";
$all_fields .= " , bo_category_list = '{$bo_category_list}' ";
$all_fields .= " , bo_use_category = '{$bo_use_category}' ";
}
if (is_checked('chk_all_use_sideview')) $all_fields .= " , bo_use_sideview = '{$bo_use_sideview}' ";
+1 -1
View File
@@ -33,7 +33,7 @@ if ($_POST['act_button'] == "선택수정") {
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($_POST['bo_subject'][$k]) : '';
$sql = " update {$g5['board_table']}
set gr_id = '".sql_real_escape_string(strip_tags($_POST['gr_id'][$k]))."',
+1 -1
View File
@@ -16,7 +16,7 @@ if (!preg_match("/^([A-Za-z0-9_]{1,10})$/", $_POST['gr_id']))
if (!$gr_subject) alert('그룹 제목을 입력하세요.');
$gr_subject = isset($_POST['gr_subject']) ? strip_tags(clean_xss_attributes($_POST['gr_subject'])) : '';
$gr_subject = isset($_POST['gr_subject']) ? strip_tags($_POST['gr_subject']) : '';
$sql_common = " gr_subject = '{$gr_subject}',
gr_device = '{$_POST['gr_device']}',
+4 -4
View File
@@ -124,10 +124,10 @@ $colspan = 10;
<tr class="<?php echo $bg; ?>">
<td class="td_chk">
<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 $row['gr_subject'] ?> 그룹</label>
<input type="checkbox" name="chk[]" value="<?php echo $i ?>" id="chk_<?php echo $i ?>">
</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 get_pretty_url(G5_GROUP_DIR, $row['gr_id']); ?>"><?php echo $row['gr_id'] ?></a></td>
<td class="td_input">
<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">
@@ -135,9 +135,9 @@ $colspan = 10;
<td class="td_mng td_input">
<?php if ($is_admin == 'super'){ ?>
<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 $row['gr_admin'] ?>" id="gr_admin_<?php echo $i ?>" class="tbl_input" size="10" maxlength="20">
<?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 $row['gr_admin'] ?>"><?php echo $row['gr_admin'] ?>
<?php } ?>
</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>
+2 -2
View File
@@ -19,8 +19,8 @@ for ($i=0; $i<$count; $i++)
{
$k = $_POST['chk'][$i];
$gr_id = preg_replace('/[^a-z0-9_]/i', '', $_POST['group_id'][$k]);
$gr_subject = is_array($_POST['gr_subject']) ? strip_tags(clean_xss_attributes($_POST['gr_subject'][$k])) : '';
$gr_admin = is_array($_POST['gr_admin']) ? strip_tags(clean_xss_attributes($_POST['gr_admin'][$k])) : '';
$gr_subject = is_array($_POST['gr_subject']) ? strip_tags($_POST['gr_subject'][$k]) : '';
$gr_admin = is_array($_POST['gr_admin']) ? strip_tags($_POST['gr_admin'][$k]) : '';
if($_POST['act_button'] == '선택수정') {
$sql = " update {$g5['group_table']}
+1 -1
View File
@@ -85,7 +85,7 @@ $colspan = 4;
<label for="chk_<?php echo $i; ?>" class="sound_only"><?php echo $row['gr_subject'] ?> 그룹</label>
<input type="checkbox" name="chk[]" value="<?php echo $row['gm_id'] ?>" id="chk_<?php echo $i ?>">
</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_grid"><a href="<?php echo get_pretty_url(G5_GROUP_DIR, $row['gr_id']); ?>"><?php echo $row['gr_id'] ?></a></td>
<td class="td_category"><?php echo $row['gr_subject'] ?></td>
<td class="td_datetime"><?php echo $row['gm_datetime'] ?></td>
</tr>
+1 -1
View File
@@ -321,7 +321,7 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
<tbody>
<tr>
<th scope="row"><label for="cf_title">홈페이지 제목<strong class="sound_only">필수</strong></label></th>
<td colspan="3"><input type="text" name="cf_title" value="<?php echo get_sanitize_input($config['cf_title']); ?>" id="cf_title" required class="required frm_input" size="40"></td>
<td colspan="3"><input type="text" name="cf_title" value="<?php echo $config['cf_title'] ?>" id="cf_title" required class="required frm_input" size="40"></td>
</tr>
<tr>
<th scope="row"><label for="cf_admin">최고관리자<strong class="sound_only">필수</strong></label></th>
+1 -1
View File
@@ -26,7 +26,7 @@ if(!$_POST['cf_cert_use']) {
$cf_social_servicelist = !empty($_POST['cf_social_servicelist']) ? implode(',', $_POST['cf_social_servicelist']) : '';
$_POST['cf_title'] = strip_tags(clean_xss_attributes($_POST['cf_title']));
$_POST['cf_title'] = strip_tags($_POST['cf_title']);
$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');
+1 -6
View File
@@ -21,7 +21,7 @@ if ($w == "" || $w == "u")
}
$co_id = preg_replace('/[^a-z0-9_]/i', '', $co_id);
$co_subject = strip_tags(clean_xss_attributes($co_subject));
$co_subject = strip_tags($co_subject);
$co_include_head = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($co_include_head, 0, 255));
$co_include_tail = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($co_include_tail, 0, 255));
$co_tag_filter_use = isset($_POST['co_tag_filter_use']) ? (int) $_POST['co_tag_filter_use'] : 1;
@@ -71,11 +71,6 @@ if( $co_include_tail && ! is_include_path_check($co_include_tail, 1) ){
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.';
}
if( function_exists('filter_input_include_path') ){
$co_include_head = filter_input_include_path($co_include_head);
$co_include_tail = filter_input_include_path($co_include_tail);
}
$co_seo_title = exist_seo_title_recursive('content', generate_seo_title($co_subject), $g5['content_table'], $co_id);
$sql_common = " co_include_head = '$co_include_head',
-16
View File
@@ -147,22 +147,6 @@ if(!isset($member['mb_memo_cnt'])) {
$is_check = true;
}
// 스크랩 읽은 수 추가
if(!isset($member['mb_scrap_cnt'])) {
sql_query(" ALTER TABLE `{$g5['member_table']}`
ADD `mb_scrap_cnt` int(11) NOT NULL DEFAULT '0' AFTER `mb_memo_cnt`", true);
$is_check = true;
}
// 짧은 URL 주소를 사용 여부 필드 추가
if (!isset($config['cf_bbs_rewrite'])) {
sql_query(" ALTER TABLE `{$g5['config_table']}`
ADD `cf_bbs_rewrite` tinyint(4) NOT NULL DEFAULT '0' AFTER `cf_link_target` ", true);
$is_check = true;
}
// 파일테이블에 추가 칼럼
$sql = " SHOW COLUMNS FROM `{$g5['board_file_table']}` LIKE 'bf_fileurl' ";
+3 -5
View File
@@ -68,17 +68,15 @@ $result = sql_query($sql);
$num = $i + 1;
$bg = 'bg'.($i%2);
$fa_subject = conv_content($row['fa_subject'], 1);
?>
<tr class="<?php echo $bg; ?>">
<td class="td_num"><?php echo $num; ?></td>
<td class="td_left"><?php echo $fa_subject; ?></td>
<td class="td_left"><?php echo stripslashes($row['fa_subject']); ?></td>
<td class="td_num"><?php echo $row['fa_order']; ?></td>
<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="./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="./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 stripslashes($row['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 stripslashes($row['fa_subject']); ?> </span>삭제</a>
</td>
</tr>
+1 -1
View File
@@ -18,7 +18,7 @@ check_admin_token();
if ($fm_himg_del) @unlink(G5_DATA_PATH."/faq/{$fm_id}_h");
if ($fm_timg_del) @unlink(G5_DATA_PATH."/faq/{$fm_id}_t");
$fm_subject = strip_tags(clean_xss_attributes($fm_subject));
$fm_subject = strip_tags($fm_subject);
$sql_common = " set fm_subject = '$fm_subject',
fm_head_html = '$fm_head_html',
+1 -1
View File
@@ -42,7 +42,7 @@ include_once('./admin.head.php');
<tbody>
<tr>
<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 $ma['ma_subject'] ?>" id="ma_subject" required class="required frm_input" size="100"></td>
</tr>
<tr>
<th scope="row"><label for="ma_content">메일 내용<strong class="sound_only">필수</strong></label></th>
+1 -1
View File
@@ -10,7 +10,7 @@ auth_check($auth[$sub_menu], 'w');
check_admin_token();
$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($_POST['ma_subject']) : '';
if ($w == '')
{
+1 -1
View File
@@ -52,7 +52,7 @@ if($sql) {
<?php }
switch($type) {
case 'group':
$link = G5_BBS_URL.'/group.php?gr_id='.$row['id'];
$link = get_pretty_url(G5_GROUP_DIR, $row['id']);
break;
case 'board':
$link = get_pretty_url($row['id']);
+2 -2
View File
@@ -21,11 +21,11 @@ for ($i=0; $i<$count; $i++)
{
$_POST = array_map_deep('trim', $_POST);
$_POST['me_link'][$i] = is_array($_POST['me_link']) ? clean_xss_tags(clean_xss_attributes($_POST['me_link'][$i], 1)) : '';
$_POST['me_link'][$i] = is_array($_POST['me_link']) ? clean_xss_tags($_POST['me_link'][$i], 1) : '';
$code = is_array($_POST['code']) ? strip_tags($_POST['code'][$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($_POST['me_link'][$i]);
if(!$code || !$me_name || !$me_link)
continue;
+1 -1
View File
@@ -12,7 +12,7 @@ else
check_admin_token();
$nw_subject = isset($_POST['nw_subject']) ? strip_tags(clean_xss_attributes($_POST['nw_subject'])) : '';
$nw_subject = isset($_POST['nw_subject']) ? strip_tags($_POST['nw_subject']) : '';
$sql_common = " nw_device = '{$_POST['nw_device']}',
nw_begin_time = '{$_POST['nw_begin_time']}',
+3 -3
View File
@@ -6,9 +6,9 @@ auth_check($auth[$sub_menu], 'w');
check_admin_token();
$mb_id = strip_tags(clean_xss_attributes($_POST['mb_id']));
$po_point = strip_tags(clean_xss_attributes($_POST['po_point']));
$po_content = strip_tags(clean_xss_attributes($_POST['po_content']));
$mb_id = strip_tags($_POST['mb_id']);
$po_point = strip_tags($_POST['po_point']);
$po_content = strip_tags($_POST['po_content']);
$expire = preg_replace('/[^0-9]/', '', $_POST['po_expire_term']);
$mb = get_member($mb_id);
+1 -1
View File
@@ -37,7 +37,7 @@ include_once('./admin.head.php');
<tbody>
<tr>
<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 $po['po_subject'] ?>" id="po_subject" required class="required frm_input" size="80" maxlength="125"></td>
</tr>
<?php
+1 -1
View File
@@ -40,7 +40,7 @@ foreach( $_POST as $key=>$value ){
if( empty($value) ) continue;
if( in_array($key, $check_keys) ) {
$_POST[$key] = strip_tags(clean_xss_attributes($value));
$_POST[$key] = strip_tags($value);
}
}
+5 -5
View File
@@ -133,7 +133,7 @@ if(!isset($qaconfig['qa_include_head'])) {
<tr>
<th scope="row"><label for="qa_title">타이틀<strong class="sound_only">필수</strong></label></th>
<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 $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>
</td>
</tr>
@@ -141,7 +141,7 @@ if(!isset($qaconfig['qa_include_head'])) {
<th scope="row"><label for="qa_category">분류<strong class="sound_only">필수</strong></label></th>
<td>
<?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 $qaconfig['qa_category'] ?>" id="qa_category" required class="required frm_input" size="70">
</td>
</tr>
<tr>
@@ -184,21 +184,21 @@ if(!isset($qaconfig['qa_include_head'])) {
<th scope="row"><label for="qa_send_number">SMS 발신번호</label></th>
<td>
<?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 $qaconfig['qa_send_number'] ?>" id="qa_send_number" class="frm_input" size="30">
</td>
</tr>
<tr>
<th scope="row"><label for="qa_admin_hp">관리자 휴대폰번호</label></th>
<td>
<?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 $qaconfig['qa_admin_hp'] ?>" id="qa_admin_hp" class="frm_input" size="30">
</td>
</tr>
<tr>
<th scope="row"><label for="qa_admin_email">관리자 이메일</label></th>
<td>
<?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 $qaconfig['qa_admin_email'] ?>" id="qa_admin_email" class="frm_input" size="50">
</td>
</tr>
<tr>
+1 -10
View File
@@ -12,12 +12,6 @@ $error_msg = '';
$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');
foreach($check_keys as $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_tail = preg_replace(array("#[\\\]+$#", "#(<\?php|<\?)#i"), "", substr($qa_include_tail, 0, 255));
@@ -56,10 +50,7 @@ if( $qa_include_tail && ! is_include_path_check($qa_include_tail, 1) ){
$error_msg = '/data/file/ 또는 /data/editor/ 포함된 문자를 하단 파일 경로에 포함시킬수 없습니다.';
}
if( function_exists('filter_input_include_path') ){
$qa_include_head = filter_input_include_path($qa_include_head);
$qa_include_tail = filter_input_include_path($qa_include_tail);
}
$_POST['qa_title'] = strip_tags($_POST['qa_title']);
$sql = " update {$g5['qa_config_table']}
set qa_title = '{$_POST['qa_title']}',
+2 -2
View File
@@ -4,8 +4,8 @@ include_once("./_common.php");
auth_check($auth[$sub_menu], "w");
$fo_name = isset($fo_name) ? strip_tags(clean_xss_attributes($fo_name)) : '';
$fo_content = isset($fo_content) ? strip_tags(clean_xss_attributes($fo_content)) : '';
$fo_name = isset($fo_name) ? strip_tags($fo_name) : '';
$fo_content = isset($fo_content) ? strip_tags($fo_content) : '';
$g5['title'] = "이모티콘 업데이트";
+1 -3
View File
@@ -6,8 +6,6 @@ auth_check($auth[$sub_menu], "w");
$g5['title'] = "이모티콘 ";
$fg_no = isset($fg_no) ? (int) $fg_no : '';
if ($w == 'u' && is_numeric($fo_no)) {
$write = sql_fetch("select * from {$g5['sms5_form_table']} where fo_no='$fo_no'");
$g5['title'] .= '수정';
@@ -50,7 +48,7 @@ include_once(G5_ADMIN_PATH.'/admin.head.php');
</tr>
<tr>
<th scope="row"><label for="fo_name">제목<strong class="sound_only"> 필수</strong></label></th>
<td><input type="text" name="fo_name" id="fo_name" required value="<?php echo get_sanitize_input($write['fo_name']); ?>" class="frm_input required" size="70"></td>
<td><input type="text" name="fo_name" id="fo_name" required value="<?php echo $write['fo_name']?>" class="frm_input required" size="70"></td>
</tr>
<tr>
<th scope="row">메세지</th>
-1
View File
@@ -53,7 +53,6 @@ eval("\$file = \"$file\";");
$f = explode(";", $file);
for ($i=0; $i<count($f); $i++) {
if (trim($f[$i]) == "") continue;
$f[$i] = get_db_create_replace($f[$i]);
sql_query($f[$i]) or die(mysqli_error());
}
// 테이블 생성 ------------------------------------
+2 -4
View File
@@ -16,8 +16,6 @@ if ($page < 1) $page = 1;
$bg_no = isset($bg_no) ? (int) $bg_no : 0;
$st = isset($st) ? preg_replace('/[^a-z0-9]/i', '', $st) : '';
$sql_korean = $sql_group = $sql_search = $sql_no_hp = '';
if (is_numeric($bg_no))
$sql_group = " and bg_no='$bg_no' ";
else
@@ -129,9 +127,9 @@ function no_hp_click(val)
<label for="bg_no" class="sound_only">그룹명</label>
<select name="bg_no" id="bg_no" onchange="location.href='<?php echo $_SERVER['SCRIPT_NAME']?>?bg_no='+this.value;">
<option value=""<?php echo get_selected('', $bg_no); ?>> 전체 </option>
<option value="<?php echo $no_group['bg_no']?>"<?php echo get_selected($no_group['bg_no'], $bg_no); ?>> <?php echo $no_group['bg_name']?> (<?php echo number_format($no_group['bg_count'])?> 명) </option>
<option value="<?php echo $no_group['bg_no']?>"<?php echo get_selected($bg_no, $no_group['bg_no']); ?>> <?php echo $no_group['bg_name']?> (<?php echo number_format($no_group['bg_count'])?> 명) </option>
<?php for($i=0; $i<count($group); $i++) {?>
<option value="<?php echo $group[$i]['bg_no']?>"<?php echo get_selected($group[$i]['bg_no'], $bg_no);?>> <?php echo $group[$i]['bg_name']?> (<?php echo number_format($group[$i]['bg_count'])?> 명) </option>
<option value="<?php echo $group[$i]['bg_no']?>"<?php echo get_selected($bg_no, $group[$i]['bg_no']);?>> <?php echo $group[$i]['bg_name']?> (<?php echo number_format($group[$i]['bg_count'])?> 명) </option>
<?php } ?>
</select>
<input type="checkbox" name="no_hp" id="no_hp" <?php echo $no_hp_checked?> onclick="no_hp_click(this.checked)">
+2 -2
View File
@@ -129,7 +129,7 @@ function num_group_submit(f)
<select name="select_bg_no_999" id="select_bg_no_999" onchange="move(<?php echo $no_group['bg_no']?>, '<?php echo $no_group['bg_name']?>', this);" >
<option value=""></option>
<?php for ($i=0; $i<count($group); $i++) { ?>
<option value="<?php echo $group[$i]['bg_no']?>"> <?php echo get_sanitize_input($group[$i]['bg_name']); ?> </option>
<option value="<?php echo $group[$i]['bg_no']?>"> <?php echo $group[$i]['bg_name']?> </option>
<?php } ?>
</select>
</td>
@@ -150,7 +150,7 @@ function num_group_submit(f)
</td>
<td>
<label for="bg_name_<?php echo $i; ?>" class="sound_only">그룹명</label>
<input type="text" name="bg_name[<?php echo $i; ?>]" value="<?php echo get_sanitize_input($group[$i]['bg_name']); ?>" id="bg_name_<?php echo $i; ?>" class="frm_input">
<input type="text" name="bg_name[<?php echo $i; ?>]" value="<?php echo $group[$i]['bg_name']?>" id="bg_name_<?php echo $i; ?>" class="frm_input">
</td>
<td class="td_num"><?php echo number_format($group[$i]['bg_count'])?></td>
<td class="td_num"><?php echo number_format($group[$i]['bg_member'])?></td>
+5 -5
View File
@@ -11,7 +11,7 @@ if ($w == 'u') // 업데이트
// 실제 번호를 넘김
$k = $_POST['chk'][$i];
$bg_no = (int) $_POST['bg_no'][$k];
$bg_name = strip_tags(clean_xss_attributes($_POST['bg_name'][$k]));
$bg_name = strip_tags($_POST['bg_name'][$k]);
if (!is_numeric($bg_no))
alert('그룹 고유번호가 없습니다.');
@@ -23,11 +23,11 @@ if ($w == 'u') // 업데이트
if (!strlen(trim($bg_name)))
alert('그룹명을 입력해주세요');
$res = sql_fetch("select bg_name from {$g5['sms5_book_group_table']} where bg_no<>'$bg_no' and bg_name='".sql_real_escape_string($bg_name)."'");
$res = sql_fetch("select bg_name from {$g5['sms5_book_group_table']} where bg_no<>'$bg_no' and bg_name='$bg_name'");
if ($res)
alert('같은 그룹명이 존재합니다.');
sql_query("update {$g5['sms5_book_group_table']} set bg_name='".sql_real_escape_string($bg_name)."' where bg_no='$bg_no'");
sql_query("update {$g5['sms5_book_group_table']} set bg_name='".addslashes($bg_name)."' where bg_no='$bg_no'");
}
}
else if ($w == 'de') // 그룹삭제
@@ -63,7 +63,7 @@ else if ($w == 'em') // 비우기
}
else // 등록
{
$bg_name = strip_tags(clean_xss_attributes($bg_name));
$bg_name = strip_tags($bg_name);
if (!strlen(trim($bg_name)))
alert('그룹명을 입력해주세요');
@@ -72,7 +72,7 @@ else // 등록
if ($res)
alert('같은 그룹명이 존재합니다.');
sql_query("insert into {$g5['sms5_book_group_table']} set bg_name='$bg_name'");
sql_query("insert into {$g5['sms5_book_group_table']} set bg_name='".addslashes($bg_name)."'");
}
goto_url('./num_group.php');
-2
View File
@@ -7,8 +7,6 @@ while ($res = sql_fetch_array($qry)) array_push($group, $res);
$res = sql_fetch("select count(*) as cnt from `{$g5['sms5_form_table']}` where fg_no=0");
$no_count = $res['cnt'];
$fg_no = isset($fg_no) ? (int) $fg_no : '';
?>
<form name="emo_frm">
+3 -3
View File
@@ -29,7 +29,7 @@ if(!in_array($type, $arr_type)) {
}
if($type == 'board') {
$keys = run_replace('theme_config_load_keys', array('bo_gallery_cols', 'bo_gallery_width', 'bo_gallery_height', 'bo_mobile_gallery_width', 'bo_mobile_gallery_height', 'bo_image_width'), $type);
$keys = array('bo_gallery_cols', 'bo_gallery_width', 'bo_gallery_height', 'bo_mobile_gallery_width', 'bo_mobile_gallery_height', 'bo_image_width');
$tconfig = get_theme_config_value($config['cf_theme'], implode(',', $keys));
$i = 0;
@@ -43,7 +43,7 @@ if($type == 'board') {
if($i == 0)
$data['error'] = '적용할 게시판 이미지 설정이 없습니다.';
} else if($type == 'conf_skin') {
$keys = run_replace('theme_config_load_keys', array('cf_new_skin', 'cf_mobile_new_skin', 'cf_search_skin', 'cf_mobile_search_skin', 'cf_connect_skin', 'cf_mobile_connect_skin', 'cf_faq_skin', 'cf_mobile_faq_skin'), $type);
$keys = array('cf_new_skin', 'cf_mobile_new_skin', 'cf_search_skin', 'cf_mobile_search_skin', 'cf_connect_skin', 'cf_mobile_connect_skin', 'cf_faq_skin', 'cf_mobile_faq_skin');
$tconfig = get_theme_config_value($config['cf_theme'], implode(',', $keys));
@@ -58,7 +58,7 @@ if($type == 'board') {
if($i == 0)
$data['error'] = '적용할 기본환경 스킨 설정이 없습니다.';
} else if($type == 'conf_member') {
$keys = run_replace('theme_config_load_keys', array('cf_member_skin', 'cf_mobile_member_skin'), $type);
$keys = array('cf_member_skin', 'cf_mobile_member_skin');
$tconfig = get_theme_config_value($config['cf_theme'], implode(',', $keys));
-2
View File
@@ -68,7 +68,5 @@ if($_POST['set_default_skin'] == 1) {
}
}
run_event('adm_theme_update', $theme, $_POST['set_default_skin']);
die('');
?>
+1 -9
View File
@@ -3,18 +3,10 @@ include_once('./_common.php');
$call = isset($_REQUEST['call']) ? strtolower(preg_replace('/[^a-z0-9_]/i', '', $_REQUEST['call'])) : '';
if( ! $call ){
if( ! $call || ! $is_admin ){
return;
}
if( ! $is_admin ){
$sql = " select count(*) as cnt from {$g5['auth_table']} where mb_id = '{$member['mb_id']}' ";
$row = sql_fetch($sql);
if ( ! $row['cnt']) {
return;
}
}
run_event('admin_request_handler_'.$call, $arr_query, $token);
$sub_menu = admin_menu_find_by($call, 'sub_menu');
+12 -12
View File
@@ -6,27 +6,27 @@ check_demo();
auth_check($auth[$sub_menu], 'r');
$g5['title'] = '글,댓글 현황';
include_once ('./admin.head.php');
// http://www.jqplot.com/
add_stylesheet('<link rel="stylesheet" href="'.G5_PLUGIN_URL.'/jqplot/jquery.jqplot.css">', 1);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jquery.jqplot.js"></script>', 1);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.canvasTextRenderer.min.js"></script>', 1);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.categoryAxisRenderer.min.js"></script>', 1);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.pointLabels.min.js"></script>', 1);
add_javascript('<!--[if lt IE 9]><script src="'.G5_PLUGIN_URL.'/jqplot/excanvas.js"></script><![endif]-->', 1);
add_stylesheet('<link rel="stylesheet" href="'.G5_PLUGIN_URL.'/jqplot/jquery.jqplot.css">', 0);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jquery.jqplot.js"></script>', 0);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.canvasTextRenderer.min.js"></script>', 0);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.categoryAxisRenderer.min.js"></script>', 0);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/plugins/jqplot.pointLabels.min.js"></script>', 0);
add_javascript('<!--[if lt IE 9]><script src="'.G5_PLUGIN_URL.'/jqplot/excanvas.js"></script><![endif]-->', 0);
if (!($graph == 'line' || $graph == 'bar'))
$graph = 'line';
if ($graph == 'bar') {
// 바 타입으로 사용하는 코드입니다.
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jqplot.barRenderer.min.js"></script>', 1);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jqplot.categoryAxisRenderer.min.js"></script>', 1);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jqplot.pointLabels.min.js"></script>', 1);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jqplot.barRenderer.min.js"></script>', 0);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jqplot.categoryAxisRenderer.min.js"></script>', 0);
add_javascript('<script src="'.G5_PLUGIN_URL.'/jqplot/jqplot.pointLabels.min.js"></script>', 0);
}
$g5['title'] = '글,댓글 현황';
include_once ('./admin.head.php');
$period_array = array(
'오늘'=>array('시간', 0),
'어제'=>array('시간', 0),
+1 -1
View File
@@ -88,5 +88,5 @@ delete_cache_latest($bo_table);
run_event('bbs_delete_comment', $comment_id, $board);
goto_url(short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$write['wr_parent'].'&amp;page='.$page. $qstr));
goto_url(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$write['wr_parent'].'&amp;page='.$page. $qstr);
?>
+1 -5
View File
@@ -83,8 +83,6 @@ if(isset($_POST['js']) && $_POST['js'] === "on") {
$row = sql_fetch($sql);
$count = $row['count'];
run_event('bbs_increase_good_json', $bo_table, $wr_id, $good);
print_result($error, $count);
}
@@ -94,7 +92,7 @@ if(isset($_POST['js']) && $_POST['js'] === "on") {
if (!$is_member)
{
$href = G5_BBS_URL.'/login.php?'.$qstr.'&amp;url='.urlencode(get_pretty_url($bo_table, $wr_id));
$href = './login.php?'.$qstr.'&amp;url='.urlencode(get_pretty_url($bo_table, $wr_id));
alert('회원만 가능합니다.', $href);
}
@@ -149,8 +147,6 @@ if(isset($_POST['js']) && $_POST['js'] === "on") {
$status = '비추천';
$href = get_pretty_url($bo_table, $wr_id);
run_event('bbs_increase_good_html', $bo_table, $wr_id, $good, $href);
alert("이 글을 $status 하셨습니다.", '', false);
}
+1 -1
View File
@@ -39,7 +39,7 @@ $sql .= " order by bo_order ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$lt_style = "";
if ($i%3 !== 0) $lt_style = "margin-left:2%";
if ($i%2==1) $lt_style = "margin-left:2%";
else $lt_style = "";
?>
<div style="float:left;<?php echo $lt_style ?>" class="lt_wr">
+5 -4
View File
@@ -76,8 +76,7 @@ for ($i=0; $i<count($member_list['id']); $i++) {
// 보내는 회원 쪽지 INSERT
$sql = " insert into {$g5['memo_table']} ( me_recv_mb_id, me_send_mb_id, me_send_datetime, me_memo, me_read_datetime, me_send_id, me_type , me_send_ip ) values ( '$recv_mb_id', '{$member['mb_id']}', '".G5_TIME_YMDHIS."', '{$_POST['me_memo']}', '0000-00-00 00:00:00', '$me_id', 'send', '{$_SERVER['REMOTE_ADDR']}' ) ";
sql_query($sql);
$member_list['me_id'][$i] = $me_id;
}
// 실시간 쪽지 알림 기능
@@ -94,14 +93,16 @@ if ($member_list) {
$redirect_url = G5_HTTP_BBS_URL."/memo.php?kind=send";
$str_nick_list = implode(',', $member_list['nick']);
run_event('memo_form_update_after', $member_list, $str_nick_list, $redirect_url, $_POST['me_memo']);
run_event('memo_form_update_after', $member_list, $str_nick_list, $redirect_url);
alert($str_nick_list." 님께 쪽지를 전달하였습니다.", $redirect_url, false);
} else {
$redirect_url = G5_HTTP_BBS_URL."/memo_form.php";
run_event('memo_form_update_failed', $member_list, $redirect_url, $_POST['me_memo']);
run_event('memo_form_update_failed', $member_list, $redirect_url);
exit;
alert("회원아이디 오류 같습니다.", $redirect_url, false);
}
+3 -6
View File
@@ -31,17 +31,14 @@ else
alert($kind.' 값을 넘겨주세요.');
}
$g5['title'] = $t.' 쪽지 보기';
include_once(G5_PATH.'/head.sub.php');
$sql = " select * from {$g5['memo_table']}
where me_id = '$me_id'
and me_{$kind}_mb_id = '{$member['mb_id']}' ";
$memo = sql_fetch($sql);
set_session('ss_memo_delete_token', $token = uniqid(time()));
$del_link = 'memo_delete.php?me_id='.$memo['me_id'].'&amp;token='.$token.'&amp;kind='.$kind;
$g5['title'] = $t.' 쪽지 보기';
include_once(G5_PATH.'/head.sub.php');
// 이전 쪽지
$sql = " select me.*, a.rownum from `{$g5['memo_table']}` as me inner join ( select me_id , (@rownum:=@rownum+1) as rownum from `{$g5['memo_table']}` as memo, (select @rownum:=0) tmp where me_{$kind}_mb_id = '{$member['mb_id']}' and memo.me_type = '$kind' order by me_id desc ) as a on a.me_id = me.me_id where me.me_id < '$me_id' and me.me_{$kind}_mb_id = '{$member['mb_id']}' and me.me_type = '$kind' order by me.me_id desc limit 1 ";
+7 -7
View File
@@ -8,25 +8,24 @@ if ($is_admin != 'super')
$board = array();
$save_bo_table = array();
$save_wr_id = array();
for($i=0;$i<count($_POST['chk_bn_id']);$i++)
{
// 실제 번호를 넘김
$k = $_POST['chk_bn_id'][$i];
$bo_table = isset($_POST['bo_table'][$k]) ? preg_replace('/[^a-z0-9_]/i', '', $_POST['bo_table'][$k]) : '';
$wr_id = isset($_POST['wr_id'][$k]) ? preg_replace('/[^0-9]/i', '', $_POST['wr_id'][$k]) : 0;
$bo_table = $_POST['bo_table'][$k];
$wr_id = $_POST['wr_id'][$k];
$save_bo_table[$i] = $bo_table;
$save_wr_id[$i] = $wr_id;
$save_bo_table[] = $bo_table;
$write_table = $g5['write_prefix'].$bo_table;
if ($board['bo_table'] != $bo_table)
$board = sql_fetch(" select bo_subject, bo_write_point, bo_comment_point, bo_notice from {$g5['board_table']} where bo_table = '$bo_table' ");
$write = get_write($write_table, $wr_id);
$sql = " select * from $write_table where wr_id = '$wr_id' ";
$write = sql_fetch($sql);
if (!$write) continue;
// 원글 삭제
@@ -139,11 +138,12 @@ for($i=0;$i<count($_POST['chk_bn_id']);$i++)
}
}
$save_bo_table = array_unique($save_bo_table);
foreach ($save_bo_table as $key=>$value) {
delete_cache_latest($value);
}
run_event('bbs_new_delete', $chk_bn_id, $save_bo_table, $save_wr_id);
run_event('bbs_new_delete', $chk_bn_id, $save_bo_table);
goto_url("new.php?sfl=$sfl&stx=$stx&page=$page");
?>
-1
View File
@@ -14,7 +14,6 @@ $msg = array();
// 1:1문의 설정값
$qaconfig = get_qa_config();
$qa_id = isset($qa_id) ? (int) $qa_id : 0;
if(trim($qaconfig['qa_category'])) {
if($w != 'a') {
+1 -10
View File
@@ -12,13 +12,10 @@ set_session("ss_cert_no", "");
set_session("ss_cert_hash", "");
set_session("ss_cert_type", "");
$is_social_login_modify = false;
if( $provider && function_exists('social_nonce_is_valid') ){ //모바일로 소셜 연결을 했다면
if( social_nonce_is_valid(get_session("social_link_token"), $provider) ){ //토큰값이 유효한지 체크
$w = 'u'; //회원 수정으로 처리
$_POST['mb_id'] = $member['mb_id'];
$is_social_login_modify = true;
}
}
@@ -78,14 +75,8 @@ if ($w == "") {
// 수정 후 다시 이 폼으로 돌아오기 위해 임시로 저장해 놓음
set_session("ss_tmp_password", $_POST[mb_password]);
*/
if($_POST['mb_id'] && ! (isset($_POST['mb_password']) && $_POST['mb_password'])){
if( ! $is_social_login_modify ){
alert('비밀번호를 입력해 주세요.');
}
}
if (isset($_POST['mb_password'])) {
if ($_POST['mb_password']) {
// 수정된 정보를 업데이트후 되돌아 온것이라면 비밀번호가 암호화 된채로 넘어온것임
if ($_POST['is_update']) {
$tmp_password = $_POST['mb_password'];
-1
View File
@@ -119,7 +119,6 @@ else
}
$comment_action_url = https_url(G5_BBS_DIR)."/write_comment_update.php";
$comment_common_url = short_url_clean(G5_BBS_URL.'/board.php?'.clean_query_string($_SERVER['QUERY_STRING']));
include_once($board_skin_path.'/view_comment.skin.php');
+31 -61
View File
@@ -23,87 +23,57 @@ if(strpos($filename, G5_DATA_DIR.'/editor')) {
$filepath = G5_DATA_PATH.'/file/'.$bo_table.'/'.$filename;
}
$file_exists = (is_file($filepath) && file_exists($filepath)) ? 1 : 0;
if($file_exists = run_replace('exists_view_image', $file_exists, $filepath, $editor_file)) {
$size = $file_exists ? run_replace('get_view_imagesize', @getimagesize($filepath), $filepath, $editor_file) : array();
if(is_file($filepath)) {
$size = @getimagesize($filepath);
if(empty($size))
alert_close('이미지 파일이 아닙니다.');
$width = (isset($size[0]) && $size[0]) ? (int) $size[0] : 0;
$height = (isset($size[1]) && $size[1]) ? (int) $size[1] : 0;
$width = $size[0];
$height = $size[1];
if($editor_file)
$fileurl = run_replace('get_editor_content_url', G5_DATA_URL.'/'.$editor_file);
$fileurl = G5_DATA_URL.'/'.$editor_file;
else
$fileurl = run_replace('get_file_board_url', G5_DATA_URL.'/file/'.$bo_table.'/'.$filename, $bo_table);
$fileurl = G5_DATA_URL.'/file/'.$bo_table.'/'.$filename;
$img_attr = ($width && $height) ? 'width="'.$width.'" height="'.$height.'"' : '';
$img = '<img src="'.$fileurl.'" alt="" '.$img_attr.' class="draggable" style="position:relative;top:0;left:0;cursor:move;">';
$img = '<img src="'.$fileurl.'" alt="" width="'.$width.'" height="'.$height.'" class="draggable" style="position:relative;top:0;left:0;cursor:move;">';
} else {
alert_close('파일이 존재하지 않습니다.');
}
?>
<div class="bbs-view-image"><?php echo $img ?></div>
<div><?php echo $img ?></div>
<script>
var win_w = <?php echo $width ?>;
var win_h = <?php echo $height ?> + 70;
var win_l = (screen.width - win_w) / 2;
var win_t = (screen.height - win_h) / 2;
jQuery(function($){
if(win_w > screen.width) {
win_l = 0;
win_w = screen.width - 20;
$.fn.imgLoad = function(callback) {
return this.each(function() {
if (callback) {
if (this.complete || /*for IE 10-*/ $(this).height() > 0) {
callback.apply(this);
}
else {
$(this).on('load', function(){
callback.apply(this);
});
}
}
});
};
if(win_h > screen.height) {
win_t = 0;
win_h = screen.height - 40;
}
}
$(".bbs-view-image img").imgLoad(function(){
if(win_h > screen.height) {
win_t = 0;
win_h = screen.height - 40;
var win_w = <?php echo $width ?>;
var win_h = <?php echo $height ?> + 70;
if(win_w > screen.width) {
win_w = screen.width - 20;
win_l = 0;
}
}
if( !win_w || !win_h ){
win_w = $(this).width();
win_h = $(this).height();
}
var win_l = (screen.width - win_w) / 2;
var win_t = (screen.height - win_h) / 2;
if(win_w > screen.width) {
win_l = 0;
win_w = screen.width - 20;
if(win_h > screen.height) {
win_t = 0;
win_h = screen.height - 40;
}
}
if(win_h > screen.height) {
win_t = 0;
win_h = screen.height - 40;
if(win_w > screen.width) {
win_w = screen.width - 20;
win_l = 0;
}
}
window.moveTo(win_l, win_t);
window.resizeTo(win_w, win_h);
});
window.moveTo(win_l, win_t);
window.resizeTo(win_w, win_h);
$(function() {
var is_draggable = false;
var x = y = 0;
var pos_x = pos_y = 0;
+3 -3
View File
@@ -42,7 +42,7 @@ if ($w == '') {
if ($member['mb_id']) {
alert('글을 쓸 권한이 없습니다.');
} else {
alert("글을 쓸 권한이 없습니다.\\n회원이시라면 로그인 후 이용해 보십시오.", G5_BBS_URL.'/login.php?'.$qstr.'&amp;url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));
alert("글을 쓸 권한이 없습니다.\\n회원이시라면 로그인 후 이용해 보십시오.", './login.php?'.$qstr.'&amp;url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));
}
}
@@ -64,7 +64,7 @@ if ($w == '') {
if ($member['mb_id']) {
alert('글을 수정할 권한이 없습니다.');
} else {
alert('글을 수정할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', G5_BBS_URL.'/login.php?'.$qstr.'&amp;url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));
alert('글을 수정할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', './login.php?'.$qstr.'&amp;url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));
}
}
@@ -97,7 +97,7 @@ if ($w == '') {
if ($member['mb_id'])
alert('글을 답변할 권한이 없습니다.');
else
alert('답변글을 작성할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', G5_BBS_URL.'/login.php?'.$qstr.'&amp;url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));
alert('답변글을 작성할 권한이 없습니다.\\n\\n회원이시라면 로그인 후 이용해 보십시오.', './login.php?'.$qstr.'&amp;url='.urlencode($_SERVER['SCRIPT_NAME'].'?bo_table='.$bo_table));
}
$tmp_point = isset($member['mb_point']) ? $member['mb_point'] : 0;
+4 -4
View File
@@ -20,8 +20,6 @@ if (substr_count($wr_content, "&#") > 50) {
$w = $_POST["w"];
$wr_name = trim($_POST['wr_name']);
$wr_email = '';
$reply_array = array();
if (!empty($_POST['wr_email']))
$wr_email = get_email_address(trim($_POST['wr_email']));
@@ -87,7 +85,9 @@ if ($w == 'c') // 댓글 입력
// 댓글 답변
if ($comment_id)
{
$reply_array = get_write($write_table, $comment_id, true);
$sql = " select wr_id, wr_parent, wr_comment, wr_comment_reply from $write_table
where wr_id = '$comment_id' ";
$reply_array = sql_fetch($sql);
if (!$reply_array['wr_id'])
alert('답변할 댓글이 없습니다.\\n\\n답변하는 동안 댓글이 삭제되었을 수 있습니다.');
@@ -341,7 +341,7 @@ delete_cache_latest($bo_table);
$redirect_url = short_url_clean(G5_HTTP_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr['wr_parent'].'&amp;'.$qstr.'&amp;#c_'.$comment_id);
run_event('comment_update_after', $board, $wr_id, $w, $qstr, $redirect_url, $comment_id, $reply_array);
run_event('comment_update_after', $board, $wr_id, $w, $qstr, $redirect_url);
goto_url($redirect_url);
?>
+1 -1
View File
@@ -333,7 +333,7 @@ if ($w == '' || $w == 'r') {
alert('자신의 글이 아니므로 수정할 수 없습니다.', $return_url);
} else {
if ($write['mb_id'])
alert('로그인 후 수정하세요.', G5_BBS_URL.'/login.php?url='.urlencode($return_url));
alert('로그인 후 수정하세요.', './login.php?url='.urlencode($return_url));
}
if ($member['mb_id']) {
+5 -36
View File
@@ -38,7 +38,7 @@ function g5_path()
$server_script_filename = preg_replace('/\/+/', '/', str_replace('\\', '/', $_SERVER['SCRIPT_FILENAME']));
$tilde_remove = preg_replace('/^\/\~[^\/]+(.*)$/', '$1', $server_script_name);
$document_root = str_replace($tilde_remove, '', $server_script_filename);
$pattern = '/.*?' . preg_quote($document_root, '/') . '/i';
$pattern = '/' . preg_quote($document_root, '/') . '/i';
$root = preg_replace($pattern, '', $result['path']);
$port = ($_SERVER['SERVER_PORT'] == 80 || $_SERVER['SERVER_PORT'] == 443) ? '' : ':'.$_SERVER['SERVER_PORT'];
$http = 'http' . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 's' : '') . '://';
@@ -216,6 +216,10 @@ ini_set("session.gc_divisor", 100); // session.gc_divisor는 session.gc_probabil
session_set_cookie_params(0, '/');
ini_set("session.cookie_domain", G5_COOKIE_DOMAIN);
@session_start();
//==============================================================================
//==============================================================================
// 공용 변수
//------------------------------------------------------------------------------
@@ -223,41 +227,6 @@ ini_set("session.cookie_domain", G5_COOKIE_DOMAIN);
// 기본적으로 사용하는 필드만 얻은 후 상황에 따라 필드를 추가로 얻음
$config = get_config();
// 본인인증 또는 쇼핑몰 사용시에만 secure; SameSite=None 로 설정합니다.
if( $config['cf_cert_use'] || (defined('G5_YOUNGCART_VER') && G5_YOUNGCART_VER) ) {
// Chrome 80 버전부터 아래 이슈 대응
// https://developers-kr.googleblog.com/2020/01/developers-get-ready-for-new.html?fbclid=IwAR0wnJFGd6Fg9_WIbQPK3_FxSSpFLqDCr9bjicXdzy--CCLJhJgC9pJe5ss
if(!function_exists('session_start_samesite')) {
function session_start_samesite($options = array())
{
global $g5;
$res = @session_start($options);
// IE 브라우저 또는 엣지브라우저 일때는 secure; SameSite=None, http 환경에서는 설정하지 않습니다.
if( preg_match('/Edge/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT']) || preg_match('~Trident/7.0(; Touch)?; rv:11.0~',$_SERVER['HTTP_USER_AGENT']) || ! (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ){
return $res;
}
$headers = headers_list();
krsort($headers);
foreach ($headers as $header) {
if (!preg_match('~^Set-Cookie: PHPSESSID=~', $header)) continue;
$header = preg_replace('~; secure(; HttpOnly)?$~', '', $header) . '; secure; SameSite=None';
header($header, false);
$g5['session_cookie_samesite'] = 'none';
break;
}
return $res;
}
}
session_start_samesite();
} else {
@session_start();
}
//==============================================================================
define('G5_HTTP_BBS_URL', https_url(G5_BBS_DIR, false));
define('G5_HTTPS_BBS_URL', https_url(G5_BBS_DIR, true));
if ($config['cf_editor'])
+1 -1
View File
@@ -5,7 +5,7 @@
********************/
define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.4.2.3');
define('G5_GNUBOARD_VER', '5.4.0.2');
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define('_GNUBOARD_', true);
+3 -4
View File
@@ -104,8 +104,7 @@ border:1px solid #558ab7 !important;
/* 메인메뉴 */
#gnb {position:relative;background:#fff}
#gnb > h2 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#gnb .gnb_wrap {margin:0 auto;position:relative}
#gnb .gnb_wrap:hover, #gnb .gnb_wrap:focus, #gnb .gnb_wrap:active{z-index:3}
#gnb .gnb_wrap {margin:0 auto;position:relative;z-index:10}
#gnb #gnb_1dul {font-size:1.083em;padding:0;border-bottom:1px solid #e0e2e5;zoom:1}
#gnb ul:after {display:block;visibility:hidden;clear:both;content:""}
#gnb .gnb_1dli {float:left;line-height:55px;padding:0px;position:relative}
@@ -158,10 +157,10 @@ box-shadow:0 2px 5px rgba(0,0,0,0.2)}
/* 중간 레이아웃 */
#wrapper {}
#container_wr:after {display:block;visibility:hidden;clear:both;content:""}
#container_wr {margin:0 auto;height:100%;zoom:1}
#container_wr {z-index:5;margin:0 auto;height:100%;zoom:1}
#aside {float:right;width:235px;padding:0;height:100%;margin:20px 0 20px 20px}
#container {position:relative;float:left;min-height:500px;height:auto !important;margin:20px 0;height:500px;font-size:1em;width:930px;zoom:1}
#container {z-index:4;position:relative;float:left;min-height:500px;height:auto !important;margin:20px 0;height:500px;font-size:1em;width:930px;zoom:1}
#container:after {display:block;visibility:hidden;clear:both;content:""}
#container_title {font-size:1.333em;margin:0 auto;font-weight:bold}
#container_title span {margin:0 auto 10px;display:block;line-height:30px}
+1 -1
View File
@@ -215,7 +215,7 @@ a.btn_b03, .btn_b03 {display:inline-block;line-height:28px;border:0;background:t
a.btn_b03:hover, .btn_b03:hover {}
a.btn_admin {display:inline-block;color:#d13f4a;font-size:1.4em;text-decoration:none;vertical-align:middle} /* 관리자 전용 버튼 */
a.btn_admin:focus, a.btn_admin:hover {}
.fix_btn {position:fixed;z-index:99;bottom:65px;right:15px;background:#3a8afd;width:50px;height:50px;color:#fff;text-align:center;border-radius:50% !important;font-size:1.8em;line-height:50px !important;-webkit-box-shadow:1px 2px 5px rgba(191, 191, 191, 0.4);
.fix_btn {position:fixed;bottom:65px;right:15px;background:#3a8afd;width:50px;height:50px;color:#fff;text-align:center;border-radius:50% !important;font-size:1.8em;line-height:50px !important;-webkit-box-shadow:1px 2px 5px rgba(191, 191, 191, 0.4);
-moz-box-shadow:1px 2px 5px rgba(191, 191, 191, 0.4);
box-shadow:1px 2px 5px rgba(191, 191, 191, 0.4)}
a.btn,.btn {line-height:35px;width:30px;height:35px;padding:0 5px;text-align:center;font-weight:bold;border:0;font-size:1.4em;
+2 -2
View File
@@ -7,7 +7,7 @@ add_replace('invalid_password', 'g54_return_invalid_password', 10, 3);
function g54_return_invalid_password($bool, $type, $wr){
if($type === 'write' && $bool === false && $wr['wr_password'] && isset($_POST['wr_password'])) {
if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && (strlen($wr['wr_password']) === G5_MYSQL_PASSWORD_LENGTH || strlen($wr['wr_password']) === 16)) {
if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && strlen($wr['wr_password']) === G5_MYSQL_PASSWORD_LENGTH) {
if( sql_password($_POST['wr_password']) === $wr['wr_password'] ){
$bool = true;
}
@@ -22,7 +22,7 @@ function g54_check_bbs_password($type, $wr, $qstr=''){
global $bo_table, $w;
if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && (strlen($wr['wr_password']) === G5_MYSQL_PASSWORD_LENGTH || strlen($wr['wr_password']) === 16)) {
if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && strlen($wr['wr_password']) === G5_MYSQL_PASSWORD_LENGTH) {
if( sql_password($_POST['wr_password']) === $wr['wr_password'] ){
if ($w == 's') {
$ss_name = 'ss_secret_'.$bo_table.'_'.$wr['wr_num'];
+2 -2
View File
@@ -1,6 +1,6 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
define('G5_JS_VER', '191202');
define('G5_CSS_VER', '191202');
define('G5_JS_VER', '171222');
define('G5_CSS_VER', '171222');
?>
+1 -1
View File
@@ -337,7 +337,7 @@ for($i=0; $row=sql_fetch_array($result); $i++) {
// 게시판 테이블 생성
$bo_table = $row['bo_table'];
$file = file(G5_ADMIN_PATH.'/sql_write.sql');
$sql = implode("\n", $file);
$sql = implode($file, "\n");
$create_table = $g5['write_prefix'] . $bo_table;
+25 -4
View File
@@ -1,8 +1,6 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
run_event('pre_head');
if(defined('G5_THEME_PATH')) {
require_once(G5_THEME_PATH.'/head.php');
return;
@@ -112,8 +110,31 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
<ul id="gnb_1dul">
<li class="gnb_1dli gnb_mnal"><button type="button" class="gnb_menu_btn" title="전체메뉴"><i class="fa fa-bars" aria-hidden="true"></i><span class="sound_only">전체메뉴열기</span></button></li>
<?php
$menu_datas = get_menu_db(0, true);
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
$sql = " select *
from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '2'
order by me_order, me_id ";
$result = sql_query($sql, false);
$gnb_zindex = 999; // gnb_1dli z-index 값 설정용
$menu_datas = array();
for ($i=0; $row=sql_fetch_array($result); $i++) {
$menu_datas[$i] = $row;
$sql2 = " select *
from {$g5['menu_table']}
where me_use = '1'
and length(me_code) = '4'
and substring(me_code, 1, 2) = '{$row['me_code']}'
order by me_order, me_id ";
$result2 = sql_query($sql2);
for ($k=0; $row2=sql_fetch_array($result2); $k++) {
$menu_datas[$i]['sub'][$k] = $row2;
}
}
$i = 0;
foreach( $menu_datas as $row ){
if( empty($row) ) continue;
+10 -8
View File
@@ -2,6 +2,8 @@
// 이 파일은 새로운 파일 생성시 반드시 포함되어야 함
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
run_event('head_sub');
// 테마 head.sub.php 파일
if(!defined('G5_IS_ADMIN') && defined('G5_THEME_PATH') && is_file(G5_THEME_PATH.'/head.sub.php')) {
require_once(G5_THEME_PATH.'/head.sub.php');
@@ -82,16 +84,16 @@ var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
<?php } ?>
</script>
<?php
add_javascript('<script src="'.G5_JS_URL.'/jquery-1.12.4.min.js"></script>', 0);
add_javascript('<script src="'.G5_JS_URL.'/jquery-migrate-1.4.1.min.js"></script>', 0);
add_javascript('<script src="'.G5_JS_URL.'/jquery.menu.js?ver='.G5_JS_VER.'"></script>', 0);
add_javascript('<script src="'.G5_JS_URL.'/common.js?ver='.G5_JS_VER.'"></script>', 0);
add_javascript('<script src="'.G5_JS_URL.'/wrest.js?ver='.G5_JS_VER.'"></script>', 0);
add_javascript('<script src="'.G5_JS_URL.'/placeholders.min.js"></script>', 0);
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/font-awesome/css/font-awesome.min.css">', 0);
add_javascript('<script src="'.G5_JS_URL.'/jquery-1.12.4.min.js"></script>', 1);
add_javascript('<script src="'.G5_JS_URL.'/jquery-migrate-1.4.1.min.js"></script>', 1);
add_javascript('<script src="'.G5_JS_URL.'/jquery.menu.js?ver='.G5_JS_VER.'"></script>', 1);
add_javascript('<script src="'.G5_JS_URL.'/common.js?ver='.G5_JS_VER.'"></script>', 1);
add_javascript('<script src="'.G5_JS_URL.'/wrest.js?ver='.G5_JS_VER.'"></script>', 1);
add_javascript('<script src="'.G5_JS_URL.'/placeholders.min.js"></script>', 1);
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/font-awesome/css/font-awesome.min.css">', 1);
if(G5_IS_MOBILE) {
add_javascript('<script src="'.G5_JS_URL.'/modernizr.custom.70111.js"></script>', 1); // overflow scroll 감지
add_javascript('<script src="'.G5_JS_URL.'/modernizr.custom.70111.js"></script>', 2); // overflow scroll 감지
}
if(!defined('G5_IS_ADMIN'))
echo $config['cf_add_script'];
+2 -4
View File
@@ -24,9 +24,7 @@ include_once(G5_PATH.'/head.php');
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
echo latest('pic_list', 'free', 4, 23); // 최소설치시 자동생성되는 자유게시판
echo latest('pic_list', 'qa', 4, 23); // 최소설치시 자동생성되는 질문답변게시판
echo latest('pic_list', 'notice', 4, 23); // 최소설치시 자동생성되는 공지사항게시판
echo latest('pic_list', 'free', 4, 23);
?>
</div>
<div class="latest_wr">
@@ -35,7 +33,7 @@ include_once(G5_PATH.'/head.php');
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
// 사용방법 : latest(스킨, 게시판아이디, 출력라인, 글자수);
// 테마의 스킨을 사용하려면 theme/basic 과 같이 지정
echo latest('pic_block', 'gallery', 4, 23); // 최소설치시 자동생성되는 갤러리게시판
echo latest('pic_block', 'gallery', 4, 23);
?>
<!-- } 사진 최신글2 끝 -->
</div>
+1 -1
View File
@@ -292,7 +292,7 @@ for ($i=0; $i<count($tmp_bo_table); $i++)
// 게시판 테이블 생성
$file = file("../".G5_ADMIN_DIR."/sql_write.sql");
$file = get_db_create_replace($file);
$sql = implode("\n", $file);
$sql = implode($file, "\n");
$create_table = $table_prefix.'write_' . $tmp_bo_table[$i];
-388
View File
@@ -1,388 +0,0 @@
/* This is the core CSS of Tooltipster */
/* GENERAL STRUCTURE RULES (do not edit this section) */
.tooltipster-base {
/* this ensures that a constrained height set by functionPosition,
if greater that the natural height of the tooltip, will be enforced
in browsers that support display:flex */
display: flex;
pointer-events: none;
/* this may be overriden in JS for fixed position origins */
position: absolute;
}
.tooltipster-box {
/* see .tooltipster-base. flex-shrink 1 is only necessary for IE10-
and flex-basis auto for IE11- (at least) */
flex: 1 1 auto;
}
.tooltipster-content {
/* prevents an overflow if the user adds padding to the div */
box-sizing: border-box;
/* these make sure we'll be able to detect any overflow */
max-height: 100%;
max-width: 100%;
overflow: auto;
}
.tooltipster-ruler {
/* these let us test the size of the tooltip without overflowing the window */
bottom: 0;
left: 0;
overflow: hidden;
position: fixed;
right: 0;
top: 0;
visibility: hidden;
}
/* ANIMATIONS */
/* Open/close animations */
/* fade */
.tooltipster-fade {
opacity: 0;
-webkit-transition-property: opacity;
-moz-transition-property: opacity;
-o-transition-property: opacity;
-ms-transition-property: opacity;
transition-property: opacity;
}
.tooltipster-fade.tooltipster-show {
opacity: 1;
}
/* grow */
.tooltipster-grow {
-webkit-transform: scale(0,0);
-moz-transform: scale(0,0);
-o-transform: scale(0,0);
-ms-transform: scale(0,0);
transform: scale(0,0);
-webkit-transition-property: -webkit-transform;
-moz-transition-property: -moz-transform;
-o-transition-property: -o-transform;
-ms-transition-property: -ms-transform;
transition-property: transform;
-webkit-backface-visibility: hidden;
}
.tooltipster-grow.tooltipster-show {
-webkit-transform: scale(1,1);
-moz-transform: scale(1,1);
-o-transform: scale(1,1);
-ms-transform: scale(1,1);
transform: scale(1,1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
}
/* swing */
.tooltipster-swing {
opacity: 0;
-webkit-transform: rotateZ(4deg);
-moz-transform: rotateZ(4deg);
-o-transform: rotateZ(4deg);
-ms-transform: rotateZ(4deg);
transform: rotateZ(4deg);
-webkit-transition-property: -webkit-transform, opacity;
-moz-transition-property: -moz-transform;
-o-transition-property: -o-transform;
-ms-transition-property: -ms-transform;
transition-property: transform;
}
.tooltipster-swing.tooltipster-show {
opacity: 1;
-webkit-transform: rotateZ(0deg);
-moz-transform: rotateZ(0deg);
-o-transform: rotateZ(0deg);
-ms-transform: rotateZ(0deg);
transform: rotateZ(0deg);
-webkit-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 1);
-webkit-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
-moz-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
-ms-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
-o-transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
transition-timing-function: cubic-bezier(0.230, 0.635, 0.495, 2.4);
}
/* fall */
.tooltipster-fall {
-webkit-transition-property: top;
-moz-transition-property: top;
-o-transition-property: top;
-ms-transition-property: top;
transition-property: top;
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
}
.tooltipster-fall.tooltipster-initial {
top: 0 !important;
}
.tooltipster-fall.tooltipster-show {
}
.tooltipster-fall.tooltipster-dying {
-webkit-transition-property: all;
-moz-transition-property: all;
-o-transition-property: all;
-ms-transition-property: all;
transition-property: all;
top: 0 !important;
opacity: 0;
}
/* slide */
.tooltipster-slide {
-webkit-transition-property: left;
-moz-transition-property: left;
-o-transition-property: left;
-ms-transition-property: left;
transition-property: left;
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1);
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-ms-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.15);
}
.tooltipster-slide.tooltipster-initial {
left: -40px !important;
}
.tooltipster-slide.tooltipster-show {
}
.tooltipster-slide.tooltipster-dying {
-webkit-transition-property: all;
-moz-transition-property: all;
-o-transition-property: all;
-ms-transition-property: all;
transition-property: all;
left: 0 !important;
opacity: 0;
}
/* Update animations */
/* We use animations rather than transitions here because
transition durations may be specified in the style tag due to
animationDuration, and we try to avoid collisions and the use
of !important */
/* fade */
@keyframes tooltipster-fading {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.tooltipster-update-fade {
animation: tooltipster-fading 400ms;
}
/* rotate */
@keyframes tooltipster-rotating {
25% {
transform: rotate(-2deg);
}
75% {
transform: rotate(2deg);
}
100% {
transform: rotate(0);
}
}
.tooltipster-update-rotate {
animation: tooltipster-rotating 600ms;
}
/* scale */
@keyframes tooltipster-scaling {
50% {
transform: scale(1.1);
}
100% {
transform: scale(1);
}
}
.tooltipster-update-scale {
animation: tooltipster-scaling 600ms;
}
/**
* DEFAULT STYLE OF THE SIDETIP PLUGIN
*
* All styles are "namespaced" with .tooltipster-sidetip to prevent
* conflicts between plugins.
*/
/* .tooltipster-box */
.tooltipster-sidetip .tooltipster-box {
background: #565656;
border: 2px solid black;
border-radius: 4px;
}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-box {
margin-top: 8px;
}
.tooltipster-sidetip.tooltipster-left .tooltipster-box {
margin-right: 8px;
}
.tooltipster-sidetip.tooltipster-right .tooltipster-box {
margin-left: 8px;
}
.tooltipster-sidetip.tooltipster-top .tooltipster-box {
margin-bottom: 8px;
}
/* .tooltipster-content */
.tooltipster-sidetip .tooltipster-content {
color: white;
line-height: 18px;
padding: 6px 14px;
}
/* .tooltipster-arrow : will keep only the zone of .tooltipster-arrow-uncropped that
corresponds to the arrow we want to display */
.tooltipster-sidetip .tooltipster-arrow {
overflow: hidden;
position: absolute;
}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow {
height: 10px;
/* half the width, for centering */
margin-left: -10px;
top: 0;
width: 20px;
}
.tooltipster-sidetip.tooltipster-left .tooltipster-arrow {
height: 20px;
margin-top: -10px;
right: 0;
/* top 0 to keep the arrow from overflowing .tooltipster-base when it has not
been positioned yet */
top: 0;
width: 10px;
}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow {
height: 20px;
margin-top: -10px;
left: 0;
/* same as .tooltipster-left .tooltipster-arrow */
top: 0;
width: 10px;
}
.tooltipster-sidetip.tooltipster-top .tooltipster-arrow {
bottom: 0;
height: 10px;
margin-left: -10px;
width: 20px;
}
/* common rules between .tooltipster-arrow-background and .tooltipster-arrow-border */
.tooltipster-sidetip .tooltipster-arrow-background, .tooltipster-sidetip .tooltipster-arrow-border {
height: 0;
position: absolute;
width: 0;
}
/* .tooltipster-arrow-background */
.tooltipster-sidetip .tooltipster-arrow-background {
border: 10px solid transparent;
}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-background {
border-bottom-color: #565656;
left: 0;
top: 3px;
}
.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-background {
border-left-color: #565656;
left: -3px;
top: 0;
}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-background {
border-right-color: #565656;
left: 3px;
top: 0;
}
.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-background {
border-top-color: #565656;
left: 0;
top: -3px;
}
/* .tooltipster-arrow-border */
.tooltipster-sidetip .tooltipster-arrow-border {
border: 10px solid transparent;
left: 0;
top: 0;
}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-border {
border-bottom-color: black;
}
.tooltipster-sidetip.tooltipster-left .tooltipster-arrow-border {
border-left-color: black;
}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-border {
border-right-color: black;
}
.tooltipster-sidetip.tooltipster-top .tooltipster-arrow-border {
border-top-color: black;
}
/* tooltipster-arrow-uncropped */
.tooltipster-sidetip .tooltipster-arrow-uncropped {
position: relative;
}
.tooltipster-sidetip.tooltipster-bottom .tooltipster-arrow-uncropped {
top: -10px;
}
.tooltipster-sidetip.tooltipster-right .tooltipster-arrow-uncropped {
left: -10px;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+5 -14
View File
@@ -67,14 +67,8 @@ class FileCache
{
return FALSE;
}
try{
$file_contents = file_get_contents($cache_file_path);
$file_ex = explode("\n\n", $file_contents);
$data = unserialize(base64_decode($file_ex[1]));
} catch(Exception $e){
$data = array('ttl'=>1, 'time'=>time() - 1000);
}
$data = unserialize(file_get_contents( $cache_file_path ));
if ($data['ttl'] > 0 && time() > $data['time'] + $data['ttl'])
{
@@ -141,10 +135,7 @@ class FileCache
'data' => $data
);
$cache_content = "<?php if (!defined('_GNUBOARD_')) exit; ?>\n\n";
$cache_content .= base64_encode(serialize($contents));
if ($this->write_file($cache_file_path, $cache_content))
if ($this->write_file($cache_file_path, serialize($contents)))
{
chmod($cache_file_path, G5_FILE_PERMISSION);
return TRUE;
@@ -176,7 +167,7 @@ class FileCache
if ($ttl !== null) {
$expire = time() + $ttl;
}
return base64_encode(serialize(array($data, $expire)));
return serialize(array($data, $expire));
}
/**
@@ -190,7 +181,7 @@ class FileCache
*/
public function decode($data)
{
return unserialize(base64_decode($data));
return unserialize($data);
}
}
?>
+10 -54
View File
@@ -21,8 +21,7 @@ function get_microtime()
function get_paging($write_pages, $cur_page, $total_page, $url, $add="")
{
//$url = preg_replace('#&amp;page=[0-9]*(&amp;page=)$#', '$1', $url);
$url = preg_replace('#(&amp;)?page=[0-9]*#', '', $url);
$url .= substr($url, -1) === '?' ? 'page=' : '&amp;page=';
$url = preg_replace('#&amp;page=[0-9]*#', '', $url) . '&amp;page=';
$str = '';
if ($cur_page > 1) {
@@ -116,19 +115,6 @@ function goto_url($url)
// 세션변수 생성
function set_session($session_name, $value)
{
global $g5;
static $check_cookie = null;
if( $check_cookie === null ){
$cookie_session_name = session_name();
if( ! isset($g5['session_cookie_samesite']) && ! ($cookie_session_name && isset($_COOKIE[$cookie_session_name]) && $_COOKIE[$cookie_session_name]) && ! headers_sent() ){
@session_regenerate_id(false);
}
$check_cookie = 1;
}
if (PHP_VERSION < '5.3.0')
session_register($session_name);
// PHP 버전별 차이를 없애기 위한 방법
@@ -1801,7 +1787,7 @@ function get_table_define($table, $crlf="\n")
$schema_create .= $crlf . ') ENGINE=MyISAM DEFAULT CHARSET=utf8';
return get_db_create_replace($schema_create);
return $schema_create;
} // end of the 'PMA_getTableDef()' function
@@ -2474,7 +2460,7 @@ function add_stylesheet($stylesheet, $order=0)
{
global $html_process;
if(trim($stylesheet) && method_exists($html_process, 'merge_stylesheet') )
if(trim($stylesheet))
$html_process->merge_stylesheet($stylesheet, $order);
}
@@ -2482,7 +2468,7 @@ function add_javascript($javascript, $order=0)
{
global $html_process;
if(trim($javascript) && method_exists($html_process, 'merge_javascript') )
if(trim($javascript))
$html_process->merge_javascript($javascript, $order);
}
@@ -2594,7 +2580,7 @@ class html_process {
if(!trim($js[1]))
continue;
$js[1] = preg_replace('#\.js([\'\"]?>)<\/script>$#i', '.js?ver='.G5_JS_VER.'$1</script>', $js[1]);
$js[1] = preg_replace('#\.js([\'\"]?>)$#i', '.js?ver='.G5_JS_VER.'$1', $js[1]);
$javascript .= $php_eol.$js[1];
$php_eol = PHP_EOL;
@@ -3022,9 +3008,6 @@ function clean_xss_tags($str, $check_entities=0)
if( $check_entities ){
$result = str_replace(array('&colon;', '&lpar;', '&rpar;', '&NewLine;', '&Tab;'), '', $result);
}
$result = preg_replace('#([^\p{L}]|^)(?:javascript|jar|applescript|vbscript|vbs|wscript|jscript|behavior|mocha|livescript|view-source)\s*:(?:.*?([/\\\;()\'">]|$))#ius',
'$1$2', $result);
if((string)$result === (string)$str) break;
@@ -3038,30 +3021,7 @@ function clean_xss_tags($str, $check_entities=0)
// XSS 어트리뷰트 태그 제거
function clean_xss_attributes($str)
{
$xss_attributes_string = 'onAbort|onActivate|onAttribute|onAfterPrint|onAfterScriptExecute|onAfterUpdate|onAnimationCancel|onAnimationEnd|onAnimationIteration|onAnimationStart|onAriaRequest|onAutoComplete|onAutoCompleteError|onAuxClick|onBeforeActivate|onBeforeCopy|onBeforeCut|onBeforeDeactivate|onBeforeEditFocus|onBeforePaste|onBeforePrint|onBeforeScriptExecute|onBeforeUnload|onBeforeUpdate|onBegin|onBlur|onBounce|onCancel|onCanPlay|onCanPlayThrough|onCellChange|onChange|onClick|onClose|onCommand|onCompassNeedsCalibration|onContextMenu|onControlSelect|onCopy|onCueChange|onCut|onDataAvailable|onDataSetChanged|onDataSetComplete|onDblClick|onDeactivate|onDeviceLight|onDeviceMotion|onDeviceOrientation|onDeviceProximity|onDrag|onDragDrop|onDragEnd|onDragEnter|onDragLeave|onDragOver|onDragStart|onDrop|onDurationChange|onEmptied|onEnd|onEnded|onError|onErrorUpdate|onExit|onFilterChange|onFinish|onFocus|onFocusIn|onFocusOut|onFormChange|onFormInput|onFullScreenChange|onFullScreenError|onGotPointerCapture|onHashChange|onHelp|onInput|onInvalid|onKeyDown|onKeyPress|onKeyUp|onLanguageChange|onLayoutComplete|onLoad|onLoadedData|onLoadedMetaData|onLoadStart|onLoseCapture|onLostPointerCapture|onMediaComplete|onMediaError|onMessage|onMouseDown|onMouseEnter|onMouseLeave|onMouseMove|onMouseOut|onMouseOver|onMouseUp|onMouseWheel|onMove|onMoveEnd|onMoveStart|onMozFullScreenChange|onMozFullScreenError|onMozPointerLockChange|onMozPointerLockError|onMsContentZoom|onMsFullScreenChange|onMsFullScreenError|onMsGestureChange|onMsGestureDoubleTap|onMsGestureEnd|onMsGestureHold|onMsGestureStart|onMsGestureTap|onMsGotPointerCapture|onMsInertiaStart|onMsLostPointerCapture|onMsManipulationStateChanged|onMsPointerCancel|onMsPointerDown|onMsPointerEnter|onMsPointerLeave|onMsPointerMove|onMsPointerOut|onMsPointerOver|onMsPointerUp|onMsSiteModeJumpListItemRemoved|onMsThumbnailClick|onOffline|onOnline|onOutOfSync|onPage|onPageHide|onPageShow|onPaste|onPause|onPlay|onPlaying|onPointerCancel|onPointerDown|onPointerEnter|onPointerLeave|onPointerLockChange|onPointerLockError|onPointerMove|onPointerOut|onPointerOver|onPointerUp|onPopState|onProgress|onPropertyChange|onqt_error|onRateChange|onReadyStateChange|onReceived|onRepeat|onReset|onResize|onResizeEnd|onResizeStart|onResume|onReverse|onRowDelete|onRowEnter|onRowExit|onRowInserted|onRowsDelete|onRowsEnter|onRowsExit|onRowsInserted|onScroll|onSearch|onSeek|onSeeked|onSeeking|onSelect|onSelectionChange|onSelectStart|onStalled|onStorage|onStorageCommit|onStart|onStop|onShow|onSyncRestored|onSubmit|onSuspend|onSynchRestored|onTimeError|onTimeUpdate|onTimer|onTrackChange|onTransitionEnd|onToggle|onTouchCancel|onTouchEnd|onTouchLeave|onTouchMove|onTouchStart|onTransitionCancel|onTransitionEnd|onUnload|onURLFlip|onUserProximity|onVolumeChange|onWaiting|onWebKitAnimationEnd|onWebKitAnimationIteration|onWebKitAnimationStart|onWebKitFullScreenChange|onWebKitFullScreenError|onWebKitTransitionEnd|onWheel';
do {
$count = $temp_count = 0;
$str = preg_replace(
'/(.*)(?:' . $xss_attributes_string . ')(?:\s*=\s*)(?:\'(?:.*?)\'|"(?:.*?)")(.*)/ius',
'$1-$2-$3-$4',
$str,
-1,
$temp_count
);
$count += $temp_count;
$str = preg_replace(
'/(.*)(?:' . $xss_attributes_string . ')\s*=\s*(?:[^\s>]*)(.*)/ius',
'$1$2',
$str,
-1,
$temp_count
);
$count += $temp_count;
} while ($count);
$str = preg_replace('#(onabort|onactivate|onafterprint|onafterupdate|onbeforeactivate|onbeforecopy|onbeforecut|onbeforedeactivate|onbeforeeditfocus|onbeforepaste|onbeforeprint|onbeforeunload|onbeforeupdate|onblur|onbounce|oncellchange|onchange|onclick|oncontextmenu|oncontrolselect|oncopy|oncut|ondataavaible|ondatasetchanged|ondatasetcomplete|ondblclick|ondeactivate|ondrag|ondragdrop|ondragend|ondragenter|ondragleave|ondragover|ondragstart|ondrop|onerror|onerrorupdate|onfilterupdate|onfinish|onfocus|onfocusin|onfocusout|onhelp|onkeydown|onkeypress|onkeyup|onlayoutcomplete|onload|onlosecapture|onmousedown|onmouseenter|onmouseleave|onmousemove|onmoveout|onmouseover|onmouseup|onmousewheel|onmove|onmoveend|onmovestart|onpaste|onpropertychange|onreadystatechange|onreset|onresize|onresizeend|onresizestart|onrowexit|onrowsdelete|onrowsinserted|onscroll|onselect|onselectionchange|onselectstart|onstart|onstop|onsubmit|onunload)\\s*=\\s*\\\?".*?"#is', '', $str);
return $str;
}
@@ -3223,7 +3183,7 @@ function login_password_check($mb, $pass, $hash)
if(!$mb_id)
return false;
if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && (strlen($hash) === G5_MYSQL_PASSWORD_LENGTH || strlen($hash) === 16)) {
if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && strlen($hash) === G5_MYSQL_PASSWORD_LENGTH) {
if( sql_password($pass) === $hash ){
if( ! isset($mb['mb_password2']) ){
@@ -3587,7 +3547,7 @@ function get_member_profile_img($mb_id='', $width='', $height='', $alt='profile_
// 프로필 이미지가 없을때 기본 이미지
$no_profile_img = (defined('G5_THEME_NO_PROFILE_IMG') && G5_THEME_NO_PROFILE_IMG) ? G5_THEME_NO_PROFILE_IMG : G5_NO_PROFILE_IMG;
$tmp = array();
preg_match( '/src="([^"]*)"/i', $no_profile_img, $tmp );
preg_match( '/src="([^"]*)"/i', $foo, $tmp );
$no_profile_cache = $src = isset($tmp[1]) ? $tmp[1] : G5_IMG_URL.'/no_profile.gif';
}
}
@@ -3698,10 +3658,10 @@ function is_include_path_check($path='', $is_input='')
// 장태진 @jtjisgod <jtjisgod@gmail.com> 추가
// 보안 목적 : rar wrapper 차단
if( stripos($path, 'rar:') !== false || stripos($path, 'php:') !== false || stripos($path, 'zlib:') !== false || stripos($path, 'bzip2:') !== false || stripos($path, 'zip:') !== false || stripos($path, 'data:') !== false || stripos($path, 'phar:') !== false || stripos($path, 'file:') !== false || stripos($path, '://') !== false ){
if( stripos($path, 'rar:') !== false || stripos($path, 'php:') !== false || stripos($path, 'zlib:') !== false || stripos($path, 'bzip2:') !== false || stripos($path, 'zip:') !== false || stripos($path, 'data:') !== false || stripos($path, 'phar:') !== false || stripos($path, 'file:') !== false ){
return false;
}
$replace_path = str_replace('\\', '/', $path);
$slash_count = substr_count(str_replace('\\', '/', $_SERVER['SCRIPT_NAME']), '/');
$peer_count = substr_count($replace_path, '../');
@@ -3770,10 +3730,6 @@ function is_include_path_check($path='', $is_input='')
return true;
}
function filter_input_include_path($path){
return str_replace('//', '/', $path);
}
function option_array_checked($option, $arr=array()){
$checked = '';
+1 -50
View File
@@ -50,8 +50,6 @@ function get_board_names(){
global $g5;
static $boards = array();
$boards = run_replace('get_board_names_cache', $boards);
if( ! $boards ){
$sql = " select bo_table from {$g5['board_table']} ";
@@ -90,53 +88,6 @@ function get_board_db($bo_table, $is_cache=false){
return $cache[$key];
}
function get_menu_db($use_mobile=0, $is_cache=false){
global $g5;
static $cache = array();
$cache = run_replace('get_menu_db_cache', $cache, $use_mobile, $is_cache);
$key = md5($use_mobile);
if( $is_cache && isset($cache[$key]) ){
return $cache[$key];
}
$where = $use_mobile ? "me_mobile_use = '1'" : "me_use = '1'";
if( !($cache[$key] = run_replace('get_menu_db', array(), $use_mobile)) ){
$sql = " select *
from {$g5['menu_table']}
where $where
and length(me_code) = '2'
order by me_order, me_id ";
$result = sql_query($sql, false);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$row['ori_me_link'] = $row['me_link'];
$row['me_link'] = short_url_clean($row['me_link']);
$cache[$key][$i] = $row;
$sql2 = " select *
from {$g5['menu_table']}
where $where
and length(me_code) = '4'
and substring(me_code, 1, 2) = '{$row['me_code']}'
order by me_order, me_id ";
$result2 = sql_query($sql2);
for ($k=0; $row2=sql_fetch_array($result2); $k++) {
$row2['ori_me_link'] = $row2['me_link'];
$row2['me_link'] = short_url_clean($row2['me_link']);
$cache[$key][$i]['sub'][$k] = $row2;
}
}
}
return $cache[$key];
}
// 게시판 테이블에서 하나의 행을 읽음
function get_content_by_field($write_table, $type='bbs', $where_field='', $where_value='', $is_cache=false)
{
@@ -329,7 +280,7 @@ function get_db_create_replace($sql_str){
function get_class_encrypt(){
static $cache;
if( $cache && is_object($cache) ){
if( $cache && is_object($obj) ){
return $cache;
}
+1 -1
View File
@@ -31,7 +31,7 @@ function latest($skin_dir='', $bo_table, $rows=10, $subject_len=40, $cache_time=
}
}
$caches = false;
$caches = null;
if(G5_USE_CACHE) {
$cache_file_name = "latest-{$bo_table}-{$skin_dir}-{$rows}-{$subject_len}-".g5_cache_secret_key();
+1 -1
View File
@@ -46,7 +46,7 @@ function create_hash($password, $force_compat = false)
{
// Generate the salt.
if (function_exists('mcrypt_create_iv') && version_compare( PHP_VERSION, '7.2' , '<' ) ) {
if (function_exists('mcrypt_create_iv')) {
$salt = base64_encode(mcrypt_create_iv(PBKDF2_COMPAT_SALT_BYTES, MCRYPT_DEV_URANDOM));
} elseif (@file_exists('/dev/urandom') && $fp = @fopen('/dev/urandom', 'r')) {
$salt = base64_encode(fread($fp, PBKDF2_COMPAT_SALT_BYTES));
+3 -6
View File
@@ -53,7 +53,7 @@ function get_list_thumbnail($bo_table, $wr_id, $thumb_width, $thumb_height, $is_
if(!$filename)
return false;
if( $thumbnail_info = run_replace('get_list_thumbnail_info', array(), array('bo_table'=>$bo_table, 'wr_id'=>$wr_id, 'data_path'=>$data_path, 'edt'=>$edt, 'filename'=>$filename, 'filepath'=>$filepath, 'thumb_width'=>$thumb_width, 'thumb_height'=>$thumb_height, 'is_create'=>$is_create, 'is_crop'=>$is_crop, 'crop_mode'=>$crop_mode, 'is_sharpen'=>$is_sharpen, 'um_value'=>$um_value)) ){
return $thumbnail_info;
}
@@ -202,7 +202,7 @@ function get_view_thumbnail($contents, $thumb_width=0)
}
}
return run_replace('get_view_thumbnail', $contents);
return $contents;
}
function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_height, $is_create, $is_crop=false, $crop_mode='center', $is_sharpen=false, $um_value='80/0.5/3')
@@ -306,11 +306,8 @@ function thumbnail($filename, $source_path, $target_path, $thumb_width, $thumb_h
if(!$thumb_height) {
$thumb_height = round(($thumb_width * $size[1]) / $size[0]);
} else {
if($crop_mode === 'center' && ($size[0] > $thumb_width || $size[1] > $thumb_height)){
$is_large = true;
} else if($size[0] < $thumb_width || $size[1] < $thumb_height) {
if($size[0] < $thumb_width || $size[1] < $thumb_height)
$is_large = false;
}
}
} else {
if($thumb_height) {
+14 -25
View File
@@ -111,27 +111,22 @@ function short_url_clean($string_url, $add_qry=''){
$url=parse_url($string_url);
$page_name = basename($url['path'],".php");
$array_page_names = run_replace('url_clean_page_names', array('board', 'write', 'content'));
$array_page_names = run_replace('url_clean_page_names', array('board', 'write'));
if( stripos(preg_replace('/^https?:/i', '', $string_url), preg_replace('/^https?:/i', '', G5_BBS_URL)) === false || ! in_array($page_name, $array_page_names) ){ //게시판이 아니면 리턴
return run_replace('false_short_url_clean', $string_url, $url, $page_name, $array_page_names);
if( strpos($string_url, G5_BBS_URL) === false || ! in_array($page_name, $array_page_names) ){ //게시판이 아니면 리턴
return $string_url;
}
$return_url = '';
parse_str($url['query'], $vars);
/*
$qstring = parse_str($url['query'], $vars);
// 예) Array ( [scheme] => http [host] => sir.kr [path] => /bbs/board.php [query] => wr_id=1110870&bo_table=cm_free&cpage=1 [fragment] => c_1110946 )
foreach($vars as $k => $v) { $page_name .= "/".$v; }
*/
//while(list($k,$v) = each($vars)) $page_name .= "/".$v;
if( $page_name === 'write' ){
$vars['action'] = 'write';
$allow_param_keys = array('bo_table'=>'', 'action'=>'');
} else if( $page_name === 'content' ){
$vars['action'] = 'content';
$allow_param_keys = array('action'=>'', 'co_id'=>'');
} else {
} else {
$allow_param_keys = array('bo_table'=>'', 'wr_id'=>'');
}
@@ -139,7 +134,7 @@ function short_url_clean($string_url, $add_qry=''){
foreach( $allow_param_keys as $key=>$v ){
if( !isset($vars[$key]) || empty($vars[$key]) ) continue;
$add = '';
$s[$key] = $vars[$key];
}
@@ -148,7 +143,7 @@ function short_url_clean($string_url, $add_qry=''){
if( $get_write['wr_seo_title'] ){
unset($s['wr_id']);
$s['wr_seo_title'] = urlencode($get_write['wr_seo_title']).'/';
$s['wr_seo_title'] = $get_write['wr_seo_title'].'/';
}
}
@@ -158,7 +153,7 @@ function short_url_clean($string_url, $add_qry=''){
if( isset($url['host']) ){
$array_file_paths = run_replace('url_clean_page_paths', array('/'.G5_BBS_DIR.'/board.php', '/'.G5_BBS_DIR.'/write.php', '/'.G5_BBS_DIR.'/content.php'));
$array_file_paths = run_replace('url_clean_page_paths', array('/'.G5_BBS_DIR.'/board.php', '/'.G5_BBS_DIR.'/write.php'));
$str_path = isset($url['path']) ? $url['path'] : '';
$http = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') ? 'https://' : 'http://';
@@ -175,8 +170,8 @@ function short_url_clean($string_url, $add_qry=''){
if( $add_qry ){
$add_param .= $add_param ? '&amp;'.$add_qry : '?'.$add_qry;
}
foreach($s as $k => $v) { $return_url .= '/'.$v; }
while(list($k,$v) = each($s)) $return_url .= '/'.$v;
return $host.$return_url.$add_param.$fragment;
}
@@ -185,12 +180,7 @@ function short_url_clean($string_url, $add_qry=''){
}
function correct_goto_url($url){
if( substr($url, -1) !== '/' ){
return $url.'/';
}
return $url;
return $url.'/';
}
function generate_seo_title($string, $wordLimit=G5_SEO_TITEL_WORD_CUT){
@@ -229,8 +219,7 @@ function exist_seo_url($type, $seo_title, $write_table, $sql_id=0){
global $g5;
$exists_title = '';
$sql_id = preg_replace('/[^a-z0-9_\-]/i', '', $sql_id);
// 영카트 상품코드의 경우 - 하이픈이 들어가야 함
$sql_id = preg_replace('/[^a-z0-9_]/i', '', $sql_id);
if( $type === 'bbs' ){
$sql = "select wr_seo_title FROM {$write_table} WHERE wr_seo_title = '".sql_real_escape_string($seo_title)."' AND wr_id <> '$sql_id' limit 1";
+19 -11
View File
@@ -38,32 +38,40 @@ include_once(G5_LIB_PATH.'/popular.lib.php');
<?php echo outlogin('basic'); // 외부 로그인 ?>
<ul id="gnb_1dul">
<?php
$menu_datas = get_menu_db(1, true);
$i = 0;
foreach( $menu_datas as $row ){
if( empty($row) ) continue;
$sql = " select *
from {$g5['menu_table']}
where me_mobile_use = '1'
and length(me_code) = '2'
order by me_order, me_id ";
$result = sql_query($sql, false);
for($i=0; $row=sql_fetch_array($result); $i++) {
?>
<li class="gnb_1dli">
<a href="<?php echo $row['me_link']; ?>" target="_<?php echo $row['me_target']; ?>" class="gnb_1da"><?php echo $row['me_name'] ?></a>
<?php
$k = 0;
foreach( (array) $row['sub'] as $row2 ){
if( empty($row2) ) continue;
$sql2 = " select *
from {$g5['menu_table']}
where me_mobile_use = '1'
and length(me_code) = '4'
and substring(me_code, 1, 2) = '{$row['me_code']}'
order by me_order, me_id ";
$result2 = sql_query($sql2);
for ($k=0; $row2=sql_fetch_array($result2); $k++) {
if($k == 0)
echo '<button type="button" class="btn_gnb_op"><span class="sound_only">하위분류</span></button><ul class="gnb_2dul">'.PHP_EOL;
?>
<li class="gnb_2dli"><a href="<?php echo $row2['me_link']; ?>" target="_<?php echo $row2['me_target']; ?>" class="gnb_2da"><span></span><?php echo $row2['me_name'] ?></a></li>
<?php
$k++;
} //end foreach $row2
}
if($k > 0)
echo '</ul>'.PHP_EOL;
?>
</li>
<?php
$i++;
} //end foreach $row
}
if ($i == 0) { ?>
<li id="gnb_empty">메뉴 준비 중입니다.<?php if ($is_admin) { ?> <br><a href="<?php echo G5_ADMIN_URL; ?>/menu_list.php">관리자모드 &gt; 환경설정 &gt; 메뉴설정</a>에서 설정하세요.<?php } ?></li>
+5 -5
View File
@@ -75,11 +75,11 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<?php } ?>
<div class="bo_cnt">
<?php if ($list[$i]['is_notice'] || ($is_category && $list[$i]['ca_name'])) { ?>
<div class="bo_cate_ico">
<?php if ($list[$i]['is_notice']) { ?><strong class="notice_icon">공지</strong><?php } ?>
<?php if ($list[$i]['is_notice']) { ?>
<div>
<strong class="notice_icon">공지</strong>
<?php if ($is_category && $list[$i]['ca_name']) { ?>
<a href="<?php echo $list[$i]['ca_name_href'] ?>" class="bo_cate_link"><?php echo $list[$i]['ca_name']; ?></a>
<a href="<?php echo $list[$i]['ca_name_href'] ?>" class="bo_cate_link"><?php echo $list[$i]['ca_name'] ?></a>
<?php } ?>
</div>
<?php } ?>
@@ -108,7 +108,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<div class="bo_info">
<span class="sound_only">작성자</span><?php echo $list[$i]['name'] ?>
<span class="bo_date"><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $list[$i]['datetime2'] ?></span>
<span class="bo_view"><i class="fa fa-eye" aria-hidden="true"></i> <?php echo number_format($list[$i]['wr_hit']) ?><span class="sound_only">회</span></span>
<span class="bo_view"><i class="fa fa-eye" aria-hidden="true"></i> <?php echo number_format($view['wr_hit']) ?><span class="sound_only">회</span></span>
<?php if ($is_good) { ?><span class="sound_only">추천</span><i class="fa fa-thumbs-o-up" aria-hidden="true"></i> <?php echo $list[$i]['wr_good'] ?><?php } ?>
<?php if ($is_nogood) { ?><span class="sound_only">비추천</span><i class="fa fa-thumbs-o-down" aria-hidden="true"></i> <?php echo $list[$i]['wr_nogood'] ?><?php } ?>
</div>
+1 -2
View File
@@ -110,7 +110,6 @@
#bo_v_sns li span {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden}
.bo_cate_link {display:inline-block;background:#e2eaf6;padding:0 5px;line-height:20px;border-radius:5px;font-weight:bold;font-size:11px;color:#3ca1ff !important;text-decoration:none;/*font-size:0.92em*/} /* 글제목줄 분류스타일 */
.bo_cate_ico {margin-bottom:5px}
.bo_cnt {display:block;width:100%;font-size:1.083em;font-weight:bold;line-height:1.4em}
.bo_cnt i {color:#8d96c2;font-size:12px}
.bo_cnt .fa-heart {color:#ff0000}
@@ -299,7 +298,7 @@
.bo_vc_w_wr:after {display:block;visibility:hidden;clear:both;content:""}
.bo_vc_w .bo_vc_secret {display:block}
#bo_vc_send_sns {display:block;margin-bottom:10px}
#bo_vc_send_sns {display:block;float:left}
#bo_vc_sns {display:block;margin:0;padding:0;list-style:none;zoom:1}
#bo_vc_sns:after {display:block;visibility:hidden;clear:both;content:""}
#bo_vc_sns li {float:left;margin:0 5px 0 0}
@@ -20,8 +20,6 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
// if (strstr($list[$i]['wr_option'], "secret"))
// $str = $str;
$str = preg_replace("/\[\<a\s.*href\=\"(http|https|ftp|mms)\:\/\/([^[:space:]]+)\.(mp3|wma|wmv|asf|asx|mpg|mpeg)\".*\<\/a\>\]/i", "<script>doc_write(obj_movie('$1://$2.$3'));</script>", $str);
$c_reply_href = $comment_common_url.'&amp;c_id='.$comment_id.'&amp;w=c#bo_vc_w';
$c_edit_href = $comment_common_url.'&amp;c_id='.$comment_id.'&amp;w=cu#bo_vc_w';
?>
<article id="c_<?php echo $comment_id ?>" <?php if ($cmt_depth) { ?>style="margin-left:<?php echo $cmt_depth ?>px;border-bottom-color:#f8f8f8"<?php } ?>>
<div class="comment_inner">
@@ -69,6 +67,8 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
</p>
<?php if($list[$i]['is_reply'] || $list[$i]['is_edit'] || $list[$i]['is_del']) {
$query_string = clean_query_string($_SERVER['QUERY_STRING']);
if($w == 'cu') {
$sql = " select wr_id, wr_content, mb_id from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";
$cmt = sql_fetch($sql);
@@ -76,6 +76,9 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
$cmt['wr_content'] = '';
$c_wr_content = $cmt['wr_content'];
}
$c_reply_href = './board.php?'.$query_string.'&amp;c_id='.$comment_id.'&amp;w=c#bo_vc_w';
$c_edit_href = './board.php?'.$query_string.'&amp;c_id='.$comment_id.'&amp;w=cu#bo_vc_w';
?>
<?php } ?>
</div>
+1 -1
View File
@@ -76,7 +76,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<?php if ($is_email) { ?>
<div class="write_div">
<label for="wr_email" class="sound_only">이메일</label>
<input type="email" name="wr_email" value="<?php echo $email ?>" id="wr_email" class="frm_input full_input" maxlength="100" placeholder="이메일">
<input type="email" name="wr_email" value="<?php echo $email ?>" id="wr_email" class="frm_input full_input" email" maxlength="100" placeholder="이메일">
</div>
<?php } ?>
+1 -1
View File
@@ -331,7 +331,7 @@
.bo_vc_w_wr:after {display:block;visibility:hidden;clear:both;content:""}
.bo_vc_w .bo_vc_secret {display:block}
#bo_vc_send_sns {display:block;margin-bottom:10px}
#bo_vc_send_sns {display:block;float:left}
#bo_vc_sns {display:block;margin:0;padding:0;list-style:none;zoom:1}
#bo_vc_sns:after {display:block;visibility:hidden;clear:both;content:""}
#bo_vc_sns li {float:left;margin:0 5px 0 0}
@@ -20,8 +20,6 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
// if (strstr($list[$i]['wr_option'], "secret"))
// $str = $str;
$str = preg_replace("/\[\<a\s.*href\=\"(http|https|ftp|mms)\:\/\/([^[:space:]]+)\.(mp3|wma|wmv|asf|asx|mpg|mpeg)\".*\<\/a\>\]/i", "<script>doc_write(obj_movie('$1://$2.$3'));</script>", $str);
$c_reply_href = $comment_common_url.'&amp;c_id='.$comment_id.'&amp;w=c#bo_vc_w';
$c_edit_href = $comment_common_url.'&amp;c_id='.$comment_id.'&amp;w=cu#bo_vc_w';
?>
<article id="c_<?php echo $comment_id ?>" <?php if ($cmt_depth) { ?>style="margin-left:<?php echo $cmt_depth ?>px;border-bottom-color:#f8f8f8"<?php } ?>>
<div class="comment_inner">
@@ -69,6 +67,8 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
</p>
<?php if($list[$i]['is_reply'] || $list[$i]['is_edit'] || $list[$i]['is_del']) {
$query_string = clean_query_string($_SERVER['QUERY_STRING']);
if($w == 'cu') {
$sql = " select wr_id, wr_content, mb_id from $write_table where wr_id = '$c_id' and wr_is_comment = '1' ";
$cmt = sql_fetch($sql);
@@ -76,6 +76,9 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
$cmt['wr_content'] = '';
$c_wr_content = $cmt['wr_content'];
}
$c_reply_href = './board.php?'.$query_string.'&amp;c_id='.$comment_id.'&amp;w=c#bo_vc_w';
$c_edit_href = './board.php?'.$query_string.'&amp;c_id='.$comment_id.'&amp;w=cu#bo_vc_w';
?>
<?php } ?>
</div>
+1 -1
View File
@@ -76,7 +76,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<?php if ($is_email) { ?>
<div class="write_div">
<label for="wr_email" class="sound_only">이메일</label>
<input type="email" name="wr_email" value="<?php echo $email ?>" id="wr_email" class="frm_input full_input" maxlength="100" placeholder="이메일">
<input type="email" name="wr_email" value="<?php echo $email ?>" id="wr_email" class="frm_input full_input" email" maxlength="100" placeholder="이메일">
</div>
<?php } ?>
-1
View File
@@ -5,5 +5,4 @@
.ctt_admin {margin:0 5px;text-align:right}
#ctt header h1 {position:absolute;font-size:0;line-height:0;overflow:hidden}
#ctt_con {padding:10px 0}
#ctt_con img{max-width:100%;height:auto}
.ctt_img {text-align:center}
+6 -15
View File
@@ -98,27 +98,21 @@ echo '<div id="faq_thtml">'.conv_content($fm['fm_mobile_tail_html'], 1).'</div>'
<script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script>
<script>
jQuery(function() {
$(function() {
$(".closer_btn").on("click", function() {
$(this).closest(".con_inner").slideToggle('slow', function() {
var $h3 = $(this).closest("li").find("h3");
$("#faq_con li h3").removeClass("faq_li_open");
if($(this).is(":visible")) {
$h3.addClass("faq_li_open");
}
});
$(this).closest(".con_inner").slideToggle();
});
});
function faq_open(el)
{
var $con = $(el).closest("li").find(".con_inner"),
$h3 = $(el).closest("li").find("h3");
$("h3").on("click", function() {
$(this).addClass("faq_li_open");
});
var $con = $(el).closest("li").find(".con_inner");
if($con.is(":visible")) {
$con.slideUp();
$h3.removeClass("faq_li_open");
} else {
$("#faq_con .con_inner:visible").css("display", "none");
@@ -126,9 +120,6 @@ function faq_open(el)
function() {
// 이미지 리사이즈
$con.viewimageresize2();
$("#faq_con li h3").removeClass("faq_li_open");
$h3.addClass("faq_li_open");
}
);
}
@@ -1,43 +1,6 @@
jQuery(function($){
$(document).ready(function(){
$(".owl-carousel-wrap .sv_member").off('click').off('focusin');
if ($.fn.tooltipster) {
var $member_menu_tip = $('.owl-carousel-wrap .sv_member').tooltipster({
theme: 'tooltipster-sir',
trigger: 'custom',
contentAsHTML: true,
interactive: true,
distance: 5,
position:'bottom',
coord: {
left: 20,
bottom: 0
},
triggerOpen: {
click: true,
tap: true // For touch device
},
triggerClose: {
click: true,
scroll: true,
tap: true
},
functionBefore: function(instance, helper) {
var content = $(helper.origin).parent().find('.sv')[0].outerHTML;
instance.content(content);
},
functionReady : function(instance, helper) {
$(helper.tooltip).find(".tooltipster-arrow").css({left:16});
},
functionPosition: function(instance, helper, position){
position.coord.left += 7;
return position;
}
});
}
var carousels = [],
is_loop = true;
@@ -75,16 +38,6 @@ jQuery(function($){
owl_show_page(event);
},
});
carousels['sel' + index].on('changed.owl.carousel', function(event) {
if ($.fn.tooltipster) {
var instances = $.tooltipster.instances();
$.each(instances, function(i, instance){
instance.close();
});
}
});
$this.on("click", ".lt_page_next", function(e) {
e.preventDefault();
+3 -6
View File
@@ -3,17 +3,14 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
include_once(G5_LIB_PATH.'/thumbnail.lib.php');
add_javascript('<script src="'.G5_JS_URL.'/owlcarousel/owl.carousel.min.js"></script>', 10);
add_javascript('<script src="'.$latest_skin_url.'/latest.carousel.js"></script>', 11);
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/owlcarousel/owl.carousel.min.css">', 10);
add_javascript('<script src="'.G5_JS_URL.'/tooltipster/tooltipster.bundle.min.js"></script>', 11);
add_stylesheet('<link rel="stylesheet" href="'.G5_JS_URL.'/tooltipster/tooltipster.bundle.min.css">', 11);
add_javascript('<script src="'.$latest_skin_url.'/latest.carousel.js?v2"></script>', 12);
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css?v2">', 1);
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);
$thumb_width = 138;
$thumb_height = 80;
$list_count = (is_array($list) && $list) ? count($list) : 0;
$list_count = count($list);
$divisor_count = 4;
$start_page_num = $list_count ? '1' : '0';
$is_show_next_prev = ($list_count > 4) ? 1 : 0;
+2 -8
View File
@@ -15,7 +15,7 @@
.lt .lt_date {color:#828282}
.lt .latest-sel{margin-top:1px}
.lt .lt_more {position:absolute;top:15px;right:15px;color:#3a8afd;background:#fff;border:1px solid #d1d7e5;font-size:0.925em;border-radius:3px;padding:4px 5px;z-index:1}
.lt .lt_more {position:absolute;top:15px;right:15px;color:#3a8afd;background:#fff;border:1px solid #d1d7e5;font-size:0.925em;border-radius:3px;padding:4px 5px}
.lt .lt_cmt {background:#e9eff5;color:#3a8afd;font-size:11px;height:16px;line-height:16px;padding:0 5px;border-radius:3px;vertical-align:middle}
.lt .profile_img img {border-radius:50%;vertical-align:top}
@@ -30,13 +30,7 @@
.lt .comment_icon {background:url('./img/icon_comment.png') no-repeat 50% 50%;display:inline-block;width:20px;height:28px;text-indent:-999px;overflow:hidden;vertical-align:top;background-size:70%;margin:0 0px 0 5px}
.lt .empty_li {text-align:center;padding:40px 0;color:#777}
.lt .owl-carousel .owl-item .profile_img img{width:auto;display:inline}
.tooltipster-content .sv a{display:block;padding:0 10px;line-height:30px;font-weight:normal;color:#bbb}
.tooltipster-content .sv a:hover{background:#000;color:#fff}
.tooltipster-sidetip.tooltipster-sir .tooltipster-content{padding:0}
.tooltipster-sidetip.tooltipster-sir .tooltipster-box{border:0 none;background:#333;border-radius:0}
.tooltipster-sidetip.tooltipster-sir.tooltipster-bottom .tooltipster-arrow-border, .tooltipster-sidetip.tooltipster-sir.tooltipster-bottom .tooltipster-arrow-background{border-bottom-color:#333}
.lt .owl-carousel .owl-item .profile_img img{width:auto}
.lt_page {background:#fff;text-align:center;padding:10px 15px;line-height:25px;border-bottom:1px solid #e5ecee}
.lt_page button {display:inline-block;background:#fff;width:25px;height:25px;border:1px solid #dbdee6;text-align:center;color:#cdcdce}
+3 -3
View File
@@ -3,14 +3,14 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);
$list_count = (is_array($list) && $list) ? count($list) : 0;
?>
<div class="cm_lt">
<h2 class="cm_lt_title"><a href="<?php echo get_pretty_url($bo_table); ?>">최신댓글</a></h2>
<ul>
<?php
for ($i=0; $i<$list_count; $i++) {
$count = count($list);
for ($i=0; $i<$count; $i++) {
?>
<li>
<span class="cm_lt_nick"><?php echo get_member_profile_img($member['mb_id']); ?></span>
@@ -24,7 +24,7 @@ $list_count = (is_array($list) && $list) ? count($list) : 0;
<?php
}
if($list_count ==0)
if($i ==0)
echo '<li class="empty_li">게시물이 없습니다.</li>'.PHP_EOL;
?>
</ul>
+2 -3
View File
@@ -4,13 +4,12 @@ if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
add_stylesheet('<link rel="stylesheet" href="'.$latest_skin_url.'/style.css">', 0);
add_javascript('<script src="'.G5_JS_URL.'/jquery.bxslider.js"></script>', 10);
$list_count = (is_array($list) && $list) ? count($list) : 0;
?>
<div class="notice ft_cnt">
<h2><a href="<?php echo get_pretty_url($bo_table); ?>"><?php echo $bo_subject ?></a></h2>
<ul>
<?php for ($i=0; $i<$list_count; $i++) { ?>
<?php for ($i=0; $i<count($list); $i++) { ?>
<li>
<?php
if ($list[$i]['icon_secret']) echo "<span class=\"lock_icon\"><i class=\"fa fa-lock\" aria-hidden=\"true\"></i></span> ";
@@ -36,7 +35,7 @@ $list_count = (is_array($list) && $list) ? count($list) : 0;
?>
</li>
<?php } ?>
<?php if ($list_count == 0) { //게시물이 없을 때 ?>
<?php if (count($list) == 0) { //게시물이 없을 때 ?>
<li class="empty_li">게시물이 없습니다.</li>
<?php } ?>
</ul>
+1 -1
View File
@@ -35,7 +35,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<a href="<?php echo $list[$i]['view_href'] ?>"><?php echo $memo_preview; ?></a>
</div>
</div>
<?php /* 쪽지 읽은 시간 echo $list[$i]['read_datetime']; */ ?>
<?php// 쪽지 읽은 시간 echo $list[$i]['read_datetime'] ?>
<a href="<?php echo $list[$i]['del_href'] ?>" onclick="del(this.href); return false;" class="memo_del"><i class="fa fa-trash-o" aria-hidden="true"></i> <span class="sound_only">삭제</span></a>
</li>
<?php } ?>
+1 -1
View File
@@ -22,7 +22,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<li>
<label for="me_recv_mb_id" class="sound_only">받는 회원아이디<strong>필수</strong></label>
<input type="text" name="me_recv_mb_id" value="<?php echo $me_recv_mb_id; ?>" id="me_recv_mb_id" required class="frm_input full_input required" size="47" placeholder="받는 회원아이디">
<input type="text" name="me_recv_mb_id" value="<?php echo $me_recv_mb_id; ?>" id="me_recv_mb_id" required class="frm_input full_input required" size="47" placeholder="받는 회원닉네임">
<span class="frm_info">여러 회원에게 보낼때는 컴마(,)로 구분하세요.
<?php if ($config['cf_memo_send_point']) { ?><br>쪽지 보낼때 회원당 <?php echo number_format($config['cf_memo_send_point']); ?>점의 포인트를 차감합니다.<?php } ?>
</span>
+1 -1
View File
@@ -39,7 +39,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<li class="memo_view_nick"><?php echo $nick ?></li>
<li class="memo_view_date"><span class="sound_only"><?php echo $kind_date ?>시간</span><i class="fa fa-clock-o" aria-hidden="true"></i> <?php echo $memo['me_send_datetime'] ?></li>
<li class="memo_op_btn list_btn"><a href="<?php echo $list_link ?>" class="btn_b01 btn"><i class="fa fa-list" aria-hidden="true"></i><span class="sound_only">목록</span></a></li>
<li class="memo_op_btn del_btn"><a href="<?php echo $del_link; ?>" onclick="del(this.href); return false;" class="memo_del btn_b01 btn"><i class="fa fa-trash-o" aria-hidden="true"></i> <span class="sound_only">삭제</span></a></li>
<li class="memo_op_btn del_btn"><a href="<?php echo $list[$i]['del_href'] ?>" onclick="del(this.href); return false;" class="memo_del btn_b01 btn"><i class="fa fa-trash-o" aria-hidden="true"></i> <span class="sound_only">삭제</span></a></li>
</ul>
<div class="memo_btn">
<?php if($prev_link) { ?>
+1 -1
View File
@@ -46,7 +46,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$new_skin_url.'/style.css">', 0);
$wr_subject = get_text(cut_str($list[$i]['wr_subject'], 80));
?>
<li>
<a href="<?php echo get_pretty_url($list[$i]['bo_table']); ?>" class="new_board"><?php echo $bo_subject ?></a>
<a href="./board.php?bo_table=<?php echo $list[$i]['bo_table'] ?>" class="new_board"><?php echo $bo_subject ?></a>
<a href="<?php echo $list[$i]['href'] ?>" class="new_tit"><?php echo $list[$i]['comment'] ?><?php echo $wr_subject ?></a>
<div class="new_info">
<span class="sound_only">작성자</span><?php echo $list[$i]['name'] ?>
+1 -1
View File
@@ -151,7 +151,7 @@ if(!$view['qa_type']) {
</a>
</div>
<div class="li_info">
<span class="li_stat <?php echo ($rel_list[$i]['qa_status'] ? 'txt_done' : 'txt_rdy'); ?>"><?php echo ($rel_list[$i]['qa_status'] ? '답변완료' : '답변대기'); ?></span>
<span class="li_stat <?php echo ($list[$i]['qa_status'] ? 'txt_done' : 'txt_rdy'); ?>"><?php echo ($rel_list[$i]['qa_status'] ? '답변완료' : '답변대기'); ?></span>
<span class="li_date"><?php echo $rel_list[$i]['date']; ?></span>
</div>
</li>
-1
View File
@@ -4,7 +4,6 @@ www.youtube(?:-nocookie)?.com/
serviceapi.rmcnmv.naver.com/
videofarm.daum.net/
player.vimeo.com/
www.google.com/
maps.google.com/
play.afreeca.com/
v.nate.com/
+2 -1
View File
@@ -1,6 +1,7 @@
<?php
<?
// 캡챠 세션값과 비교하여 맞는지? 틀린지? 결과값을 출력합니다.
include_once("_common.php");
//header("Content-Type: text/html; charset=$g4[charset]");
$count = (int)get_session("ss_captcha_count");
if ($count >= 5) { // 설정값 이상이면 자동등록방지 입력 문자가 맞아도 오류 처리
+10 -10
View File
@@ -21,15 +21,15 @@ require('./hpcert.config.php');
**************************************************************************/
/* 공통 리턴 항목 */
//$idcfMbrComCd = $_REQUEST['idcf_mbr_com_cd']; // 고객사코드
//$idcfMbrComCd = $_POST['idcf_mbr_com_cd']; // 고객사코드
$idcfMbrComCd = $memId;
$hsCertSvcTxSeqno = $_REQUEST['hs_cert_svc_tx_seqno']; // 거래번호
$rqstSiteNm = $_REQUEST['rqst_site_nm']; // 접속도메인
$hsCertRqstCausCd = $_REQUEST['hs_cert_rqst_caus_cd']; // 인증요청사유코드 2byte (00:회원가입, 01:성인인증, 02:회원정보수정, 03:비밀번호찾기, 04:상품구매, 99:기타)
$hsCertSvcTxSeqno = $_POST['hs_cert_svc_tx_seqno']; // 거래번호
$rqstSiteNm = $_POST['rqst_site_nm']; // 접속도메인
$hsCertRqstCausCd = $_POST['hs_cert_rqst_caus_cd']; // 인증요청사유코드 2byte (00:회원가입, 01:성인인증, 02:회원정보수정, 03:비밀번호찾기, 04:상품구매, 99:기타)
$resultCd = $_REQUEST['result_cd']; // 결과코드
$resultMsg = $_REQUEST['result_msg']; // 결과메세지
$certDtTm = $_REQUEST['cert_dt_tm']; // 인증일시
$resultCd = $_POST['result_cd']; // 결과코드
$resultMsg = $_POST['result_msg']; // 결과메세지
$certDtTm = $_POST['cert_dt_tm']; // 인증일시
if($resultCd != 'B000') {
alert_close('휴대폰 본인확인 중 오류가 발생했습니다. 오류코드 : '.$resultCd.'\\n\\n문의는 코리아크레딧뷰로 고객센터 02-708-1000 로 해주십시오.');
@@ -38,15 +38,15 @@ if($resultCd != 'B000') {
/**************************************************************************
* 모듈 호출 ; 생년월일 본인 확인서비스 결과 데이터를 복호화한다.
**************************************************************************/
$encInfo = $_REQUEST['encInfo'];
$encInfo = $_POST['encInfo'];
if(preg_match('~[^0-9a-zA-Z+/=]~', $encInfo, $match)) {echo "입력 값 확인이 필요합니다"; exit;}
//KCB서버 공개키
$WEBPUBKEY = trim($_REQUEST['WEBPUBKEY']);
$WEBPUBKEY = trim($_POST['WEBPUBKEY']);
if(preg_match('~[^0-9a-zA-Z+/=]~', $WEBPUBKEY, $match)) {echo "입력 값 확인이 필요합니다"; exit;}
//KCB서버 서명값
$WEBSIGNATURE = trim($_REQUEST['WEBSIGNATURE']);
$WEBSIGNATURE = trim($_POST['WEBSIGNATURE']);
if(preg_match('~[^0-9a-zA-Z+/=]~', $WEBSIGNATURE, $match)) {echo "입력 값 확인이 필요합니다"; exit;}
// ########################################################################
+3 -3
View File
@@ -14,15 +14,15 @@ foreach($check_arrays as $key){
require('./ipin.config.php');
//아이핀팝업에서 조회한 PERSONALINFO이다.
@$encPsnlInfo = $_REQUEST["encPsnlInfo"];
@$encPsnlInfo = $_POST["encPsnlInfo"];
if(preg_match('~[^0-9a-zA-Z+/=]~', $encPsnlInfo, $match)) {echo "입력 값 확인이 필요합니다"; exit;}
//KCB서버 공개키
@$WEBPUBKEY = trim($_REQUEST["WEBPUBKEY"]);
@$WEBPUBKEY = trim($_POST["WEBPUBKEY"]);
if(preg_match('~[^0-9a-zA-Z+/=]~', $WEBPUBKEY, $match)) {echo "입력 값 확인이 필요합니다"; exit;}
//KCB서버 서명값
@$WEBSIGNATURE = trim($_REQUEST["WEBSIGNATURE"]);
@$WEBSIGNATURE = trim($_POST["WEBSIGNATURE"]);
if(preg_match('~[^0-9a-zA-Z+/=]~', $WEBSIGNATURE, $match)) {echo "입력 값 확인이 필요합니다"; exit;}
//아이핀 서버와 통신을 위한 키파일 생성
+3 -6
View File
@@ -26,7 +26,7 @@ class Hybrid_Providers_Kakao extends Hybrid_Provider_Model_OAuth2
parent::initialize();
// Provider API end-points
$this->api->api_base_url = "https://kapi.kakao.com/v2/";
$this->api->api_base_url = "https://kapi.kakao.com/v1/";
$this->api->authorize_url = "https://kauth.kakao.com/oauth/authorize";
$this->api->token_url = "https://kauth.kakao.com/oauth/token";
@@ -72,8 +72,7 @@ class Hybrid_Providers_Kakao extends Hybrid_Provider_Model_OAuth2
*/
function getUserProfile()
{
//$params = array('property_keys'=>'kaccount_email'); // v1 parameter
$params = array('property_keys'=>array('kakao_account.email')); // v2 parameter
$params = array('property_keys'=>'kaccount_email');
$this->api->decode_json = false;
$this->api->curl_header = array( 'Authorization: Bearer ' . $this->api->access_token );
@@ -87,9 +86,7 @@ class Hybrid_Providers_Kakao extends Hybrid_Provider_Model_OAuth2
$this->user->profile->identifier = @ $data->id;
$this->user->profile->displayName = @ $data->properties->nickname;
$this->user->profile->photoURL = @ $data->properties->thumbnail_image;
//$email = @ $data->properties->kaccount_email; // v1 version
$email = @ $data->kakao_account->email; // v2 version
$email = @ $data->kaccount_email;
if( $email ){
$this->user->profile->email = $email;
-5
View File
@@ -53,7 +53,6 @@ if( ! isset($mb_password) || ! $mb_password ){
}
if ($msg = valid_mb_id($mb_id)) alert($msg, "", true, true);
if ($msg = empty_mb_name($mb_name)) alert($msg, "", true, true);
if ($msg = empty_mb_nick($mb_nick)) alert($msg, "", true, true);
if ($msg = empty_mb_email($mb_email)) alert($msg, "", true, true);
@@ -69,10 +68,6 @@ if ($msg = exist_mb_id($mb_id)) alert($msg);
if ($msg = exist_mb_nick($mb_nick, $mb_id)) alert($msg, "", true, true);
if ($msg = exist_mb_email($mb_email, $mb_id)) alert($msg, "", true, true);
if( $mb = get_member($mb_id) ){
alert("이미 등록된 회원이 존재합니다.", G5_URL);
}
$data = array(
'mb_id' => $mb_id,
'mb_password' => get_encrypt_string($mb_password),

Some files were not shown because too many files have changed in this diff Show More