From 704ae9863f28c8333f785f46ec29e69a28d4d0ae Mon Sep 17 00:00:00 2001 From: thisgun Date: Thu, 1 Nov 2018 09:46:26 +0900 Subject: [PATCH] =?UTF-8?q?=EC=AA=BD=EC=A7=80=20=EB=B0=8F=20=EA=B2=8C?= =?UTF-8?q?=EC=8B=9C=ED=8C=90=20=ED=9A=8C=EC=9B=90=20=EC=BD=94=EB=93=9C=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- adm/member_form.php | 8 +-- adm/member_form_update.php | 4 +- bbs/formmail.php | 5 ++ bbs/list.php | 8 ++- bbs/memo_form.php | 11 ++- bbs/memo_form_update.php | 17 ++++- bbs/new.php | 32 +++++++-- bbs/profile.php | 6 +- bbs/register_form.php | 8 +-- bbs/register_form_update.php | 4 +- extend/g5_54version_update.extend.php | 27 ++++++++ install/gnuboard5.sql | 7 +- lib/common.lib.php | 67 ++++++++++++++----- mobile/skin/member/basic/memo_form.skin.php | 4 +- mobile/skin/member/basic/memo_view.skin.php | 2 +- skin/member/basic/memo_form.skin.php | 4 +- skin/member/basic/memo_view.skin.php | 2 +- .../skin/member/basic/memo_form.skin.php | 4 +- .../skin/member/basic/memo_view.skin.php | 2 +- .../skin/member/basic/memo_form.skin.php | 4 +- .../skin/member/basic/memo_view.skin.php | 2 +- 21 files changed, 173 insertions(+), 55 deletions(-) create mode 100644 extend/g5_54version_update.extend.php diff --git a/adm/member_form.php b/adm/member_form.php index efeed3d77..696584c37 100644 --- a/adm/member_form.php +++ b/adm/member_form.php @@ -240,9 +240,9 @@ add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js '; echo '삭제'; } @@ -256,9 +256,9 @@ add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js '; echo '삭제'; } diff --git a/adm/member_form_update.php b/adm/member_form_update.php index 757a9d1ad..54b90839b 100644 --- a/adm/member_form_update.php +++ b/adm/member_form_update.php @@ -116,13 +116,13 @@ else if ($w == 'u') alert('이미 존재하는 이메일입니다.\\nID : '.$row['mb_id'].'\\n이름 : '.$row['mb_name'].'\\n닉네임 : '.$row['mb_nick'].'\\n메일 : '.$row['mb_email']); $mb_dir = substr($mb_id,0,2); + $mb_icon_img = get_mb_icon_name($mb_id).'.gif'; // 회원 아이콘 삭제 if ($del_mb_icon) - @unlink(G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_id.'.gif'); + @unlink(G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_icon_img); $image_regex = "/(\.(gif|jpe?g|png))$/i"; - $mb_icon_img = $mb_id.'.gif'; // 아이콘 업로드 if (isset($_FILES['mb_icon']) && is_uploaded_file($_FILES['mb_icon']['tmp_name'])) { diff --git a/bbs/formmail.php b/bbs/formmail.php index fe099d23e..fdd045ecf 100644 --- a/bbs/formmail.php +++ b/bbs/formmail.php @@ -8,6 +8,11 @@ if (!$config['cf_email_use']) if (!$is_member && $config['cf_formmail_is_member']) alert_close('회원만 이용하실 수 있습니다.'); +$mb_id = isset($mb_id) ? $mb_id : ''; +$mb_hash = isset($mb_hash) ? $mb_hash : ''; + +$mb_id = get_search_string(get_member_by_hash($mb_id, $mb_hash)); + if ($is_member && !$member['mb_open'] && $is_admin != "super" && $member['mb_id'] != $mb_id) alert_close('자신의 정보를 공개하지 않으면 다른분에게 메일을 보낼 수 없습니다.\\n\\n정보공개 설정은 회원정보수정에서 하실 수 있습니다.'); diff --git a/bbs/list.php b/bbs/list.php index 85f179c7c..8e089bad0 100644 --- a/bbs/list.php +++ b/bbs/list.php @@ -36,9 +36,9 @@ $stx = trim($stx); //검색인지 아닌지 구분하는 변수 초기화 $is_search_bbs = false; -if ($sca || $stx || $stx === '0') { //검색이면 +if ($sca || $stx || $mb_hash || $stx === '0') { //검색이면 $is_search_bbs = true; //검색구분변수 true 지정 - $sql_search = get_sql_search($sca, $sfl, $stx, $sop); + $sql_search = get_sql_search($sca, $sfl, $stx, $sop, $mb_hash); // 가장 작은 번호를 얻어서 변수에 저장 (하단의 페이징에서 사용) $sql = " select MIN(wr_num) as min_wr_num from {$write_table} "; @@ -202,6 +202,10 @@ if($page_rows > 0) { g5_latest_cache_data($board['bo_table'], $list); +if( $mb_hash ){ + $qstr.="&mb_hash=$mb_hash"; +} + $write_pages = get_paging(G5_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, get_pretty_url($bo_table, '', $qstr.'&page=')); $list_href = ''; diff --git a/bbs/memo_form.php b/bbs/memo_form.php index 4ada2ccc3..7fff33cf4 100644 --- a/bbs/memo_form.php +++ b/bbs/memo_form.php @@ -10,9 +10,18 @@ if (!$member['mb_open'] && $is_admin != 'super' && $member['mb_id'] != $mb_id) $content = ""; // 탈퇴한 회원에게 쪽지 보낼 수 없음 -if ($me_recv_mb_id) + +$mb_id = isset($mb_id) ? $mb_id : ''; +$mb_hash = isset($mb_hash) ? $mb_hash : ''; +$me_recv_mb_nicks = ''; + +if ($mb_id || $mb_hash) { + $me_recv_mb_id = get_search_string(get_member_by_hash($mb_id, $mb_hash)); + $mb = get_member($me_recv_mb_id); + $me_recv_mb_nicks = $mb['mb_nick']; + if (!$mb['mb_id']) alert_close('회원정보가 존재하지 않습니다.\\n\\n탈퇴하였을 수 있습니다.'); diff --git a/bbs/memo_form_update.php b/bbs/memo_form_update.php index 2835b9a76..ae5a3a9f0 100644 --- a/bbs/memo_form_update.php +++ b/bbs/memo_form_update.php @@ -9,16 +9,21 @@ if (!chk_captcha()) { alert('자동등록방지 숫자가 틀렸습니다.'); } -$recv_list = explode(',', trim($_POST['me_recv_mb_id'])); +$recv_list = explode(',', trim($_POST['me_recv_mb_nicks'])); $str_nick_list = ''; $msg = ''; $error_list = array(); -$member_list = array(); +$member_list = array('id'=>array(), 'nick'=>array()); start_event('memo_form_update_before', $recv_list); for ($i=0; $i \ No newline at end of file diff --git a/install/gnuboard5.sql b/install/gnuboard5.sql index c820c6375..5042bbc1f 100644 --- a/install/gnuboard5.sql +++ b/install/gnuboard5.sql @@ -515,12 +515,17 @@ CREATE TABLE IF NOT EXISTS `g5_member` ( DROP TABLE IF EXISTS `g5_memo`; CREATE TABLE IF NOT EXISTS `g5_memo` ( - `me_id` int(11) NOT NULL default '0', + `me_id` INT(11) NOT NULL AUTO_INCREMENT, `me_recv_mb_id` varchar(20) NOT NULL default '', `me_send_mb_id` varchar(20) NOT NULL default '', `me_send_datetime` datetime NOT NULL default '0000-00-00 00:00:00', `me_read_datetime` datetime NOT NULL default '0000-00-00 00:00:00', `me_memo` text NOT NULL, + `me_send_id` INT(11) NOT NULL DEFAULT '0', + `me_type` ENUM('send','receive') NOT NULL DEFAULT 'receive', + `me_readed` TINYINT(4) NOT NULL DEFAULT '0', + `me_send_ip` VARCHAR(100) NOT NULL DEFAULT '', + `me_memo` text NOT NULL, PRIMARY KEY (`me_id`), KEY `me_recv_mb_id` (`me_recv_mb_id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8; diff --git a/lib/common.lib.php b/lib/common.lib.php index aeb72a309..846d15472 100644 --- a/lib/common.lib.php +++ b/lib/common.lib.php @@ -598,7 +598,7 @@ function html_purifier($html) // 검색 구문을 얻는다. -function get_sql_search($search_ca_name, $search_field, $search_text, $search_operator='and') +function get_sql_search($search_ca_name, $search_field, $search_text, $search_operator='and', $mb_hashkey='') { global $g5; @@ -609,7 +609,7 @@ function get_sql_search($search_ca_name, $search_field, $search_text, $search_op $search_text = strip_tags(($search_text)); $search_text = trim(stripslashes($search_text)); - if (!$search_text && $search_text !== '0') { + if (!$search_text && $search_text !== '0' && !$mb_hashkey) { if ($search_ca_name) { return $str; } else { @@ -657,6 +657,11 @@ function get_sql_search($search_ca_name, $search_field, $search_text, $search_op $str .= $op2; switch ($field[$k]) { case "mb_id" : + if( $is_admin ){ + $str .= " $field[$k] = '$s[$i]' "; + $mb_hashkey = ''; + } + break; case "wr_name" : $str .= " $field[$k] = '$s[$i]' "; break; @@ -687,6 +692,12 @@ function get_sql_search($search_ca_name, $search_field, $search_text, $search_op $op1 = " $search_operator "; } + + if ($mb_hashkey){ + $str .= (preg_match('/[a-z]/i', $str) ? " $search_operator" : '' )." mb_id = '".get_string_check_decrypt($mb_hashkey, 'mb_id')."' "; + $not_comment = 1; + } + $str .= " ) "; if ($not_comment) $str .= " and wr_is_comment = '0' "; @@ -844,12 +855,19 @@ function is_admin($mb_id) { global $config, $group, $board; - if (!$mb_id) return; + if (!$mb_id) return ''; - if ($config['cf_admin'] == $mb_id) return 'super'; - if (isset($group['gr_admin']) && ($group['gr_admin'] == $mb_id)) return 'group'; - if (isset($board['bo_admin']) && ($board['bo_admin'] == $mb_id)) return 'board'; - return ''; + $is_authority = ''; + + if ($config['cf_admin'] == $mb_id){ + $is_authority = 'super'; + } else if (isset($group['gr_admin']) && ($group['gr_admin'] == $mb_id)){ + $is_authority = 'group'; + } else if (isset($board['bo_admin']) && ($board['bo_admin'] == $mb_id)){ + $is_authority = 'board'; + } + + return apply_replace('is_admin', $is_authority, $mb_id); } @@ -1263,8 +1281,7 @@ function get_sideview($mb_id, $name='', $email='', $homepage='') global $g5; global $bo_table, $sca, $is_admin, $member; - $email_enc = new str_encrypt(); - $email = $email_enc->encrypt($email); + $email = get_string_encrypt($email); $homepage = set_http(clean_xss_tags($homepage)); $name = get_text($name, 0, true); @@ -1272,18 +1289,27 @@ function get_sideview($mb_id, $name='', $email='', $homepage='') $homepage = get_text($homepage); $tmp_name = ""; + $en_mb_id = $mb_id; + + if( $is_admin ){ + $mb_params = 'mb_id='.$mb_id; + } else { + $en_mb_id = get_string_encrypt($mb_id); + $mb_params = 'mb_hash='.$en_mb_id; + } + if ($mb_id) { //$tmp_name = "$name"; $tmp_name = ''; if ($config['cf_use_member_icon']) { $mb_dir = substr($mb_id,0,2); - $icon_file = G5_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_id.'.gif'; + $icon_file = G5_DATA_PATH.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb_id).'.gif'; if (file_exists($icon_file)) { $width = $config['cf_member_icon_width']; $height = $config['cf_member_icon_height']; - $icon_file_url = G5_DATA_URL.'/member/'.$mb_dir.'/'.$mb_id.'.gif'; + $icon_file_url = G5_DATA_URL.'/member/'.$mb_dir.'/'.get_mb_icon_name($mb_id).'.gif'; $tmp_name .= ''; if ($config['cf_use_member_icon'] == 2) // 회원아이콘+이름 @@ -1316,21 +1342,26 @@ function get_sideview($mb_id, $name='', $email='', $homepage='') $str2 = "\n"; if($mb_id) - $str2 .= "쪽지보내기\n"; + $str2 .= "쪽지보내기\n"; if($email) - $str2 .= "메일보내기\n"; + $str2 .= "메일보내기\n"; if($homepage) $str2 .= "홈페이지\n"; if($mb_id) - $str2 .= "자기소개\n"; + $str2 .= "자기소개\n"; if($bo_table) { - if($mb_id) - $str2 .= "아이디로 검색\n"; - else + if($mb_id) { + if( $is_admin ){ + $str2 .= "아이디로 검색\n"; + } else { + $str2 .= "아이디로 검색\n"; + } + } else { $str2 .= "이름으로 검색\n"; + } } if($mb_id) - $str2 .= "전체게시물\n"; + $str2 .= "전체게시물\n"; if($is_admin == "super" && $mb_id) { $str2 .= "회원정보변경\n"; $str2 .= "포인트내역\n"; diff --git a/mobile/skin/member/basic/memo_form.skin.php b/mobile/skin/member/basic/memo_form.skin.php index 66fc1b0ed..6a33bb96c 100644 --- a/mobile/skin/member/basic/memo_form.skin.php +++ b/mobile/skin/member/basic/memo_form.skin.php @@ -18,9 +18,9 @@ add_stylesheet('',

쪽지쓰기