Compare commits

...
36 Commits
Author SHA1 Message Date
chicpro b1f0342921 5.1.13 버전변경 2016-02-22 09:48:17 +09:00
chicpro 63f9e4c8df SIR 도메인 변경 2016-02-19 11:22:17 +09:00
chicpro 6b43e67c40 비밀 댓글 노출 취약점(16-067) 수정 2016-02-11 11:01:04 +09:00
chicpro 9a870506ab Reflected XSS 취약점(16-036) 수정 2016-02-11 11:00:30 +09:00
chicpro 008ae978dd XSS 취약점(16-060) 수정 2016-02-11 10:58:45 +09:00
chicpro 20b1d8c7e5 XSS 취약점(16-059) 수정 2016-02-11 10:58:31 +09:00
thisgun 1e011ba56d 스마트 에디터 2.8.2 에 추가된 파일 적용 2016-02-04 17:31:09 +09:00
thisgun a73e48c3e2 스마트에디터 2.8.2 적용 및 에디터 업로드 보안 수정 2016-02-04 17:30:53 +09:00
chicpro e9fd9f03fd g5_admin_url 코드 수정 2016-02-03 10:42:50 +09:00
chicpro 4913da0a1d g5_admin_url 변수 설정 코드 변경 2016-02-01 11:56:15 +09:00
chicpro 18ef4b0767 메일인증 기능 수정 2016-02-01 11:55:57 +09:00
chicpro d0e368fe2a sca 필터링 코드 수정 2016-01-21 16:00:54 +09:00
chicpro 5185f0c12a 5.1.12 버전변경 2016-01-20 10:03:25 +09:00
chicpro f5f4925d4e sca 필터링 코드 추가 2016-01-12 11:08:58 +09:00
chicpro bd3fd20630 게시글 등록 메일 이미지 출력 오류 수정 2016-01-07 10:55:25 +09:00
chicpro 6797c85480 5.1.11 버전변경 2016-01-05 09:44:47 +09:00
chicpro 2c9ff2bb52 모바일 그룹 정렬 필드 수정 2015-12-23 16:43:20 +09:00
chicpro cc2b5c246d PHPMailer 5.2.14 버전 적용 2015-12-22 15:27:18 +09:00
chicpro c337bfdf88 5.1.10 버전변경 2015-12-21 11:00:46 +09:00
chicpro cb5603008a 분류 사용할 때 분류선택 여부 체크 추가 2015-12-14 11:08:39 +09:00
chicpro 9d147b5e6c 태그 오류 수정 2015-12-10 16:33:15 +09:00
chicpro aabc82ee6c 5.1.9 버전변경 2015-12-07 11:24:10 +09:00
chicpro 40aff270cd 캡챠 폰트 변경 2015-12-07 11:22:39 +09:00
thisgun 851a21a3c1 엑셀 라이브러리 php7 버젼에서 난 오류 수정 2015-11-30 17:33:38 +09:00
chicpro d5b7dd165d new.php XSS 취약점 수정 2015-11-27 14:25:01 +09:00
chicpro beb7a86f2a 토큰 오류 알림 후 이동 url 지정 2015-11-27 14:24:48 +09:00
chicpro a6327afac4 5.1.8 버전변경 2015-11-25 09:55:20 +09:00
chicpro 30305d78dc 1:1문의 SMS 발신번호 사전등록제 관련 코드 수정 2015-11-25 09:48:17 +09:00
chicpro bb1fd4d3ab 관리자 CSRF 취약점 수정 2015-11-24 16:12:22 +09:00
chicpro a75e00f9e0 모바일 게시판 제목 적용되도록 수정 2015-11-19 15:50:27 +09:00
chicpro ad67fca323 파일면 변경으로인한 중복 파일 삭제 2015-11-17 16:39:16 +09:00
chicpro 614dce643c 캡챠 오류 수정 및 파일명 변경 2015-11-17 16:37:30 +09:00
chicpro c0cd45cc18 캡챠이미지 경로 오류수정 2015-11-17 09:07:12 +09:00
chicpro f3e7dbbb43 5.1.7 버전 변경 2015-11-16 16:45:37 +09:00
chicpro 5247359e39 오타 수정 2015-11-16 16:39:09 +09:00
chicpro 4ed4938cf1 캡챠 및 회원가입 값체크 개선 2015-11-16 16:36:04 +09:00
332 changed files with 27275 additions and 27087 deletions

No files matched your search

+1 -1
View File
@@ -2,7 +2,7 @@
프로그램 명칭 : 그누보드5 ( GNU Board 5 ) 프로그램 명칭 : 그누보드5 ( GNU Board 5 )
저작자 : (주)에스아이알소프트 http://sir.co.kr 저작자 : (주)에스아이알소프트 http://sir.kr
라이센스 (License) 라이센스 (License)
+58 -3
View File
@@ -57,12 +57,20 @@ function is_checked(elements_name)
return checked; return checked;
} }
function delete_confirm() function delete_confirm(el)
{ {
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
var token = get_ajax_token();
var href = el.href.replace(/&token=.+$/g, "");
if(!token) {
alert("토큰 정보가 올바르지 않습니다.");
return false;
}
el.href = href+"&token="+token;
return true; return true;
else } else {
return false; return false;
}
} }
function delete_confirm2(msg) function delete_confirm2(msg)
@@ -72,3 +80,50 @@ function delete_confirm2(msg)
else else
return false; return false;
} }
function get_ajax_token()
{
var token = "";
$.ajax({
type: "POST",
url: g5_admin_url+"/ajax.token.php",
cache: false,
async: false,
dataType: "json",
success: function(data) {
if(data.error) {
alert(data.error);
if(data.url)
document.location.href = data.url;
return false;
}
token = data.token;
}
});
return token;
}
$(function() {
$(document).on("click", "form input:submit", function() {
var f = this.form;
var token = get_ajax_token();
if(!token) {
alert("토큰 정보가 올바르지 않습니다.");
return false;
}
var $f = $(f);
if(typeof f.token === "undefined")
$f.prepend('<input type="hidden" name="token" value="">');
$f.find("input[name=token]").val(token);
return true;
});
});
+48
View File
@@ -346,6 +346,54 @@ function order_select($fld, $sel='')
return $s; return $s;
} }
// 불법접근을 막도록 토큰을 생성하면서 토큰값을 리턴
function get_admin_token()
{
$token = md5(uniqid(rand(), true));
set_session('ss_admin_token', $token);
return $token;
}
// POST로 넘어온 토큰과 세션에 저장된 토큰 비교
function check_admin_token()
{
$token = get_session('ss_admin_token');
set_session('ss_admin_token', '');
if(!$token || !$_REQUEST['token'] || $token != $_REQUEST['token'])
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
return true;
}
// 관리자 페이지 referer 체크
function admin_referer_check($return=false)
{
$referer = trim($_SERVER['HTTP_REFERER']);
if(!$referer) {
$msg = '정보가 올바르지 않습니다.';
if($return)
return $msg;
else
alert($msg, G5_URL);
}
$p = @parse_url($referer);
$host = preg_replace('/:[0-9]+$/', '', $_SERVER['HTTP_HOST']);
if($host != $p['host']) {
$msg = '올바른 방법으로 이용해 주십시오.';
if($return)
return $msg;
else
alert($msg, G5_URL);
}
}
// 접근 권한 검사 // 접근 권한 검사
if (!$member['mb_id']) if (!$member['mb_id'])
{ {
+14
View File
@@ -0,0 +1,14 @@
<?php
include_once('./_common.php');
include_once(G5_LIB_PATH.'/json.lib.php');
set_session('ss_admin_token', '');
$error = admin_referer_check(true);
if($error)
die(json_encode(array('error'=>$error, 'url'=>G5_URL)));
$token = get_admin_token();
die(json_encode(array('error'=>'', 'token'=>$token, 'url'=>'')));
?>
+2 -4
View File
@@ -5,8 +5,6 @@ include_once('./_common.php');
if ($is_admin != 'super') if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
$token = get_token();
$sql_common = " from {$g5['auth_table']} a left join {$g5['member_table']} b on (a.mb_id=b.mb_id) "; $sql_common = " from {$g5['auth_table']} a left join {$g5['member_table']} b on (a.mb_id=b.mb_id) ";
$sql_search = " where (1) "; $sql_search = " where (1) ";
@@ -73,7 +71,7 @@ $colspan = 5;
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>"> <input type="hidden" name="token" value="">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
@@ -168,7 +166,7 @@ echo $pagelist;
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>"> <input type="hidden" name="token" value="">
<section id="add_admin"> <section id="add_admin">
<h2 class="h2_frm">관리권한 추가</h2> <h2 class="h2_frm">관리권한 추가</h2>
+1 -1
View File
@@ -7,7 +7,7 @@ check_demo();
if ($is_admin != 'super') if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
check_token(); check_admin_token();
$count = count($_POST['chk']); $count = count($_POST['chk']);
+1 -1
View File
@@ -9,7 +9,7 @@ $mb = get_member($mb_id);
if (!$mb['mb_id']) if (!$mb['mb_id'])
alert('존재하는 회원아이디가 아닙니다.'); alert('존재하는 회원아이디가 아닙니다.');
check_token(); check_admin_token();
$sql = " insert into {$g5['auth_table']} $sql = " insert into {$g5['auth_table']}
set mb_id = '{$_POST['mb_id']}', set mb_id = '{$_POST['mb_id']}',
+3
View File
@@ -8,11 +8,14 @@ $g5['title'] = '게시판 복사';
include_once(G5_PATH.'/head.sub.php'); include_once(G5_PATH.'/head.sub.php');
?> ?>
<script src="<?php echo G5_ADMIN_URL ?>/admin.js"></script>
<div class="new_win"> <div class="new_win">
<h1><?php echo $g5['title']; ?></h1> <h1><?php echo $g5['title']; ?></h1>
<form name="fboardcopy" id="fboardcopy" action="./board_copy_update.php" onsubmit="return fboardcopy_check(this);" method="post"> <form name="fboardcopy" id="fboardcopy" action="./board_copy_update.php" onsubmit="return fboardcopy_check(this);" method="post">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>" id="bo_table"> <input type="hidden" name="bo_table" value="<?php echo $bo_table ?>" id="bo_table">
<input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
+2
View File
@@ -4,6 +4,8 @@ include_once('./_common.php');
auth_check($auth[$sub_menu], 'w'); auth_check($auth[$sub_menu], 'w');
check_admin_token();
$target_table = trim($_POST['target_table']); $target_table = trim($_POST['target_table']);
$target_subject = trim($_POST['target_subject']); $target_subject = trim($_POST['target_subject']);
+1
View File
@@ -166,6 +166,7 @@ $frm_submit .= '</div>';
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="">
<section id="anc_bo_basic"> <section id="anc_bo_basic">
<h2 class="h2_frm">게시판 기본 설정</h2> <h2 class="h2_frm">게시판 기본 설정</h2>
+3 -1
View File
@@ -7,6 +7,8 @@ if ($w == 'u')
auth_check($auth[$sub_menu], 'w'); auth_check($auth[$sub_menu], 'w');
check_admin_token();
if (!$_POST['gr_id']) { alert('그룹 ID는 반드시 선택하세요.'); } if (!$_POST['gr_id']) { alert('그룹 ID는 반드시 선택하세요.'); }
if (!$bo_table) { alert('게시판 TABLE명은 반드시 입력하세요.'); } if (!$bo_table) { alert('게시판 TABLE명은 반드시 입력하세요.'); }
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) { alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); } if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) { alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); }
@@ -182,7 +184,7 @@ if ($w == '') {
// 글수 조정 // 글수 조정
/* /*
엔피씨님의 팁으로 교체합니다. 130308 엔피씨님의 팁으로 교체합니다. 130308
http://sir.co.kr/bbs/board.php?bo_table=g5_tiptech&wr_id=27207 http://sir.kr/g5_tiptech/27207
*/ */
if (isset($_POST['proc_count'])) { if (isset($_POST['proc_count'])) {
// 원글을 얻습니다. // 원글을 얻습니다.
+1 -1
View File
@@ -51,7 +51,7 @@ if ($_POST['act_button'] == "선택수정") {
auth_check($auth[$sub_menu], 'd'); auth_check($auth[$sub_menu], 'd');
check_token(); check_admin_token();
// _BOARD_DELETE_ 상수를 선언해야 board_delete.inc.php 가 정상 작동함 // _BOARD_DELETE_ 상수를 선언해야 board_delete.inc.php 가 정상 작동함
define('_BOARD_DELETE_', true); define('_BOARD_DELETE_', true);
+1
View File
@@ -38,6 +38,7 @@ include_once('./admin.head.php');
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
+2
View File
@@ -9,6 +9,8 @@ auth_check($auth[$sub_menu], 'w');
if ($is_admin != 'super' && $w == '') alert('최고관리자만 접근 가능합니다.'); if ($is_admin != 'super' && $w == '') alert('최고관리자만 접근 가능합니다.');
check_admin_token();
if (!preg_match("/^([A-Za-z0-9_]{1,10})$/", $_POST['gr_id'])) if (!preg_match("/^([A-Za-z0-9_]{1,10})$/", $_POST['gr_id']))
alert('그룹 ID는 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (10자 이내)'); alert('그룹 ID는 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (10자 이내)');
+1 -1
View File
@@ -88,7 +88,7 @@ $colspan = 10;
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>"> <input type="hidden" name="token" value="">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
+2
View File
@@ -8,6 +8,8 @@ check_demo();
auth_check($auth[$sub_menu], 'w'); auth_check($auth[$sub_menu], 'w');
check_admin_token();
$count = count($_POST['chk']); $count = count($_POST['chk']);
if(!$count) if(!$count)
+1 -3
View File
@@ -4,8 +4,6 @@ include_once('./_common.php');
auth_check($auth[$sub_menu], 'w'); auth_check($auth[$sub_menu], 'w');
$token = get_token();
$mb = get_member($mb_id); $mb = get_member($mb_id);
if (!$mb['mb_id']) if (!$mb['mb_id'])
alert('존재하지 않는 회원입니다.'); alert('존재하지 않는 회원입니다.');
@@ -18,7 +16,7 @@ $colspan = 4;
<form name="fboardgroupmember_form" id="fboardgroupmember_form" action="./boardgroupmember_update.php" onsubmit="return boardgroupmember_form_check(this)" method="post"> <form name="fboardgroupmember_form" id="fboardgroupmember_form" action="./boardgroupmember_update.php" onsubmit="return boardgroupmember_form_check(this)" method="post">
<input type="hidden" name="mb_id" value="<?php echo $mb['mb_id'] ?>" id="mb_id"> <input type="hidden" name="mb_id" value="<?php echo $mb['mb_id'] ?>" id="mb_id">
<input type="hidden" name="token" value="<?php echo $token ?>" id="token"> <input type="hidden" name="token" value="" id="token">
<div class="local_cmd01 local_cmd"> <div class="local_cmd01 local_cmd">
<p>아이디 <b><?php echo $mb['mb_id'] ?></b>, 이름 <b><?php echo get_text($mb['mb_name']); ?></b>, 닉네임 <b><?php echo $mb['mb_nick'] ?></b></p> <p>아이디 <b><?php echo $mb['mb_id'] ?></b>, 이름 <b><?php echo get_text($mb['mb_name']); ?></b>, 닉네임 <b><?php echo $mb['mb_nick'] ?></b></p>
<label for="gr_id">그룹지정</label> <label for="gr_id">그룹지정</label>
+2 -2
View File
@@ -28,7 +28,7 @@ if ($w == '')
} }
else else
{ {
check_token(); check_admin_token();
$sql = " insert into {$g5['group_member_table']} $sql = " insert into {$g5['group_member_table']}
set gr_id = '{$_POST['gr_id']}', set gr_id = '{$_POST['gr_id']}',
@@ -45,7 +45,7 @@ else if ($w == 'd' || $w == 'ld')
if(!$count) if(!$count)
alert('삭제할 목록을 하나이상 선택해 주세요.'); alert('삭제할 목록을 하나이상 선택해 주세요.');
check_token(); check_admin_token();
for($i=0; $i<$count; $i++) { for($i=0; $i<$count; $i++) {
$gm_id = $_POST['chk'][$i]; $gm_id = $_POST['chk'][$i];
+5 -7
View File
@@ -4,8 +4,6 @@ include_once('./_common.php');
auth_check($auth[$sub_menu], 'r'); auth_check($auth[$sub_menu], 'r');
$token = get_token();
if ($is_admin != 'super') if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
@@ -229,7 +227,7 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
?> ?>
<form name="fconfigform" id="fconfigform" method="post" onsubmit="return fconfigform_submit(this);"> <form name="fconfigform" id="fconfigform" method="post" onsubmit="return fconfigform_submit(this);">
<input type="hidden" name="token" value="<?php echo $token ?>" id="token"> <input type="hidden" name="token" value="" id="token">
<section id="anc_cf_basic"> <section id="anc_cf_basic">
<h2 class="h2_frm">홈페이지 기본환경 설정</h2> <h2 class="h2_frm">홈페이지 기본환경 설정</h2>
@@ -747,8 +745,8 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
<th scope="row" class="cf_cert_service"><label for="cf_cert_kcb_cd">코리아크레딧뷰로<br>KCB 회원사ID</label></th> <th scope="row" class="cf_cert_service"><label for="cf_cert_kcb_cd">코리아크레딧뷰로<br>KCB 회원사ID</label></th>
<td class="cf_cert_service"> <td class="cf_cert_service">
<?php echo help('KCB 회원사ID를 입력해 주십시오.<br>서비스에 가입되어 있지 않다면, KCB와 계약체결 후 회원사ID를 발급 받으실 수 있습니다.<br>이용하시려는 서비스에 대한 계약을 아이핀, 휴대폰 본인확인 각각 체결해주셔야 합니다.<br>아이핀 본인확인 테스트의 경우에는 KCB 회원사ID가 필요 없으나,<br>휴대폰 본인확인 테스트의 경우 KCB 에서 따로 발급 받으셔야 합니다.') ?> <?php echo help('KCB 회원사ID를 입력해 주십시오.<br>서비스에 가입되어 있지 않다면, KCB와 계약체결 후 회원사ID를 발급 받으실 수 있습니다.<br>이용하시려는 서비스에 대한 계약을 아이핀, 휴대폰 본인확인 각각 체결해주셔야 합니다.<br>아이핀 본인확인 테스트의 경우에는 KCB 회원사ID가 필요 없으나,<br>휴대폰 본인확인 테스트의 경우 KCB 에서 따로 발급 받으셔야 합니다.') ?>
<input type="text" name="cf_cert_kcb_cd" value="<?php echo $config['cf_cert_kcb_cd'] ?>" id="cf_cert_kcb_cd" class="frm_input" size="20"> <a href="http://sir.co.kr/main/service/b_ipin.php" target="_blank" class="btn_frmline">KCB 아이핀 서비스 신청페이지</a> <input type="text" name="cf_cert_kcb_cd" value="<?php echo $config['cf_cert_kcb_cd'] ?>" id="cf_cert_kcb_cd" class="frm_input" size="20"> <a href="http://sir.kr/main/service/b_ipin.php" target="_blank" class="btn_frmline">KCB 아이핀 서비스 신청페이지</a>
<a href="http://sir.co.kr/main/service/b_cert.php" target="_blank" class="btn_frmline">KCB 휴대폰 본인확인 서비스 신청페이지</a> <a href="http://sir.kr/main/service/b_cert.php" target="_blank" class="btn_frmline">KCB 휴대폰 본인확인 서비스 신청페이지</a>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -756,7 +754,7 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
<td class="cf_cert_service"> <td class="cf_cert_service">
<?php echo help('SM으로 시작하는 5자리 사이트 코드중 뒤의 3자리만 입력해 주십시오.<br>서비스에 가입되어 있지 않다면, 본인확인 서비스 신청페이지에서 서비스 신청 후 사이트코드를 발급 받으실 수 있습니다.') ?> <?php echo help('SM으로 시작하는 5자리 사이트 코드중 뒤의 3자리만 입력해 주십시오.<br>서비스에 가입되어 있지 않다면, 본인확인 서비스 신청페이지에서 서비스 신청 후 사이트코드를 발급 받으실 수 있습니다.') ?>
<span class="sitecode">SM</span> <span class="sitecode">SM</span>
<input type="text" name="cf_cert_kcp_cd" value="<?php echo $config['cf_cert_kcp_cd'] ?>" id="cf_cert_kcp_cd" class="frm_input" size="3"> <a href="http://sir.co.kr/main/service/p_cert.php" target="_blank" class="btn_frmline">KCP 휴대폰 본인확인 서비스 신청페이지</a> <input type="text" name="cf_cert_kcp_cd" value="<?php echo $config['cf_cert_kcp_cd'] ?>" id="cf_cert_kcp_cd" class="frm_input" size="3"> <a href="http://sir.kr/main/service/p_cert.php" target="_blank" class="btn_frmline">KCP 휴대폰 본인확인 서비스 신청페이지</a>
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -764,7 +762,7 @@ if ($config['cf_sms_use'] && $config['cf_icode_id'] && $config['cf_icode_pw']) {
<td class="cf_cert_service"> <td class="cf_cert_service">
<?php echo help('LG유플러스 상점아이디 중 si_를 제외한 나머지 아이디만 입력해 주십시오.<br>서비스에 가입되어 있지 않다면, 본인확인 서비스 신청페이지에서 서비스 신청 후 상점아이디를 발급 받으실 수 있습니다.<br><strong>LG유플러스 휴대폰본인확인은 ActiveX 설치가 필요하므로 Internet Explorer 에서만 사용할 수 있습니다.</strong>') ?> <?php echo help('LG유플러스 상점아이디 중 si_를 제외한 나머지 아이디만 입력해 주십시오.<br>서비스에 가입되어 있지 않다면, 본인확인 서비스 신청페이지에서 서비스 신청 후 상점아이디를 발급 받으실 수 있습니다.<br><strong>LG유플러스 휴대폰본인확인은 ActiveX 설치가 필요하므로 Internet Explorer 에서만 사용할 수 있습니다.</strong>') ?>
<span class="sitecode">si_</span> <span class="sitecode">si_</span>
<input type="text" name="cf_lg_mid" value="<?php echo $config['cf_lg_mid'] ?>" id="cf_lg_mid" class="frm_input" size="20"> <a href="http://sir.co.kr/main/service/lg_cert.php" target="_blank" class="btn_frmline">LG유플러스 본인확인 서비스 신청페이지</a> <input type="text" name="cf_lg_mid" value="<?php echo $config['cf_lg_mid'] ?>" id="cf_lg_mid" class="frm_input" size="20"> <a href="http://sir.kr/main/service/lg_cert.php" target="_blank" class="btn_frmline">LG유플러스 본인확인 서비스 신청페이지</a>
</td> </td>
</tr> </tr>
<tr> <tr>
+1 -1
View File
@@ -13,7 +13,7 @@ $mb = get_member($cf_admin);
if (!$mb['mb_id']) if (!$mb['mb_id'])
alert('최고관리자 회원아이디가 존재하지 않습니다.'); alert('최고관리자 회원아이디가 존재하지 않습니다.');
check_token(); check_admin_token();
// 본인확인을 사용할 경우 아이핀, 휴대폰인증 중 하나는 선택되어야 함 // 본인확인을 사용할 경우 아이핀, 휴대폰인증 중 하나는 선택되어야 함
if($_POST['cf_cert_use'] && !$_POST['cf_cert_ipin'] && !$_POST['cf_cert_hp']) if($_POST['cf_cert_use'] && !$_POST['cf_cert_ipin'] && !$_POST['cf_cert_hp'])
+1
View File
@@ -60,6 +60,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<form name="frmcontentform" action="./contentformupdate.php" onsubmit="return frmcontentform_check(this);" method="post" enctype="MULTIPART/FORM-DATA" > <form name="frmcontentform" action="./contentformupdate.php" onsubmit="return frmcontentform_check(this);" method="post" enctype="MULTIPART/FORM-DATA" >
<input type="hidden" name="w" value="<?php echo $w; ?>"> <input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="co_html" value="1"> <input type="hidden" name="co_html" value="1">
<input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
+2
View File
@@ -10,6 +10,8 @@ if ($w == 'd')
else else
auth_check($auth[$sub_menu], "w"); auth_check($auth[$sub_menu], "w");
check_admin_token();
@mkdir(G5_DATA_PATH."/content", G5_DIR_PERMISSION); @mkdir(G5_DATA_PATH."/content", G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH."/content", G5_DIR_PERMISSION); @chmod(G5_DATA_PATH."/content", G5_DIR_PERMISSION);
+1 -1
View File
@@ -78,7 +78,7 @@ $result = sql_query($sql);
<td class="td_mng"> <td class="td_mng">
<a href="./contentform.php?w=u&amp;co_id=<?php echo $row['co_id']; ?>"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span>수정</a> <a href="./contentform.php?w=u&amp;co_id=<?php echo $row['co_id']; ?>"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span>수정</a>
<a href="<?php echo G5_BBS_URL; ?>/content.php?co_id=<?php echo $row['co_id']; ?>"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span> 보기</a> <a href="<?php echo G5_BBS_URL; ?>/content.php?co_id=<?php echo $row['co_id']; ?>"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span> 보기</a>
<a href="./contentformupdate.php?w=d&amp;co_id=<?php echo $row['co_id']; ?>" onclick="return delete_confirm();"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span>삭제</a> <a href="./contentformupdate.php?w=d&amp;co_id=<?php echo $row['co_id']; ?>" onclick="return delete_confirm(this);"><span class="sound_only"><?php echo htmlspecialchars2($row['co_subject']); ?> </span>삭제</a>
</td> </td>
</tr> </tr>
<?php <?php
+1
View File
@@ -31,6 +31,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<input type="hidden" name="w" value="<?php echo $w; ?>"> <input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="fm_id" value="<?php echo $fm_id; ?>"> <input type="hidden" name="fm_id" value="<?php echo $fm_id; ?>">
<input type="hidden" name="fa_id" value="<?php echo $fa_id; ?>"> <input type="hidden" name="fa_id" value="<?php echo $fa_id; ?>">
<input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
+2
View File
@@ -10,6 +10,8 @@ if ($W == 'd')
else else
auth_check($auth[$sub_menu], "w"); auth_check($auth[$sub_menu], "w");
check_admin_token();
$sql_common = " fa_subject = '$fa_subject', $sql_common = " fa_subject = '$fa_subject',
fa_content = '$fa_content', fa_content = '$fa_content',
fa_order = '$fa_order' "; fa_order = '$fa_order' ";
+1 -1
View File
@@ -69,7 +69,7 @@ $result = sql_query($sql);
<td class="td_num"><?php echo $row['fa_order']; ?></td> <td class="td_num"><?php echo $row['fa_order']; ?></td>
<td class="td_mngsmall"> <td class="td_mngsmall">
<a href="./faqform.php?w=u&amp;fm_id=<?php echo $row['fm_id']; ?>&amp;fa_id=<?php echo $row['fa_id']; ?>"><span class="sound_only"><?php echo stripslashes($row['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']; ?>"><span class="sound_only"><?php echo stripslashes($row['fa_subject']); ?> </span>수정</a>
<a href="javascript:del('./faqformupdate.php?w=d&amp;fm_id=<?php echo $row['fm_id']; ?>&amp;fa_id=<?php echo $row['fa_id']; ?>');"><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);"><span class="sound_only"><?php echo stripslashes($row['fa_subject']); ?> </span>삭제</a>
</td> </td>
</tr> </tr>
+1
View File
@@ -36,6 +36,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<form name="frmfaqmasterform" action="./faqmasterformupdate.php" onsubmit="return frmfaqmasterform_check(this);" method="post" enctype="MULTIPART/FORM-DATA"> <form name="frmfaqmasterform" action="./faqmasterformupdate.php" onsubmit="return frmfaqmasterform_check(this);" method="post" enctype="MULTIPART/FORM-DATA">
<input type="hidden" name="w" value="<?php echo $w; ?>"> <input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="fm_id" value="<?php echo $fm_id; ?>"> <input type="hidden" name="fm_id" value="<?php echo $fm_id; ?>">
<input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
+2
View File
@@ -10,6 +10,8 @@ if ($W == 'd')
else else
auth_check($auth[$sub_menu], "w"); auth_check($auth[$sub_menu], "w");
check_admin_token();
@mkdir(G5_DATA_PATH."/faq", G5_DIR_PERMISSION); @mkdir(G5_DATA_PATH."/faq", G5_DIR_PERMISSION);
@chmod(G5_DATA_PATH."/faq", G5_DIR_PERMISSION); @chmod(G5_DATA_PATH."/faq", G5_DIR_PERMISSION);
+1 -1
View File
@@ -107,7 +107,7 @@ $result = sql_query($sql);
<td class="td_mng"> <td class="td_mng">
<a href="./faqmasterform.php?w=u&amp;fm_id=<?php echo $row['fm_id']; ?>"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>수정</a> <a href="./faqmasterform.php?w=u&amp;fm_id=<?php echo $row['fm_id']; ?>"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>수정</a>
<a href="<?php echo G5_BBS_URL; ?>/faq.php?fm_id=<?php echo $row['fm_id']; ?>"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>보기</a> <a href="<?php echo G5_BBS_URL; ?>/faq.php?fm_id=<?php echo $row['fm_id']; ?>"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>보기</a>
<a href="./faqmasterformupdate.php?w=d&amp;fm_id=<?php echo $row['fm_id']; ?>" onclick="return delete_confirm();"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>삭제</a> <a href="./faqmasterformupdate.php?w=d&amp;fm_id=<?php echo $row['fm_id']; ?>" onclick="return delete_confirm(this);"><span class="sound_only"><?php echo stripslashes($row['fm_subject']); ?> </span>삭제</a>
</td> </td>
</tr> </tr>
<?php <?php
+1 -1
View File
@@ -84,7 +84,7 @@ $colspan = 12;
else else
{ {
$s_mod = '<a href="./member_form.php?$qstr&amp;w=u&amp;mb_id='.$row['mb_id'].'">수정</a>'; $s_mod = '<a href="./member_form.php?$qstr&amp;w=u&amp;mb_id='.$row['mb_id'].'">수정</a>';
$s_del = '<a href="javascript:del(\'./member_delete.php?'.$qstr.'&amp;w=d&amp;mb_id='.$row['mb_id'].'&amp;url='.$_SERVER['SCRIPT_NAME'].'\');">삭제</a>'; $s_del = '<a href="./member_delete.php?'.$qstr.'&amp;w=d&amp;mb_id='.$row['mb_id'].'&amp;url='.$_SERVER['SCRIPT_NAME'].'" onclick="return delete_confirm(this);">삭제</a>';
} }
$s_grp = '<a href="./boardgroupmember_form.php?mb_id='.$row['mb_id'].'">그룹</a>'; $s_grp = '<a href="./boardgroupmember_form.php?mb_id='.$row['mb_id'].'">그룹</a>';
+1 -1
View File
@@ -6,7 +6,7 @@ check_demo();
auth_check($auth[$sub_menu], 'd'); auth_check($auth[$sub_menu], 'd');
check_token(); check_admin_token();
$count = count($_POST['chk']); $count = count($_POST['chk']);
+1 -3
View File
@@ -5,8 +5,6 @@ include_once(G5_EDITOR_LIB);
auth_check($auth[$sub_menu], 'r'); auth_check($auth[$sub_menu], 'r');
$token = get_token();
$html_title = '회원메일'; $html_title = '회원메일';
if ($w == 'u') { if ($w == 'u') {
@@ -30,7 +28,7 @@ include_once('./admin.head.php');
<form name="fmailform" id="fmailform" action="./mail_update.php" onsubmit="return fmailform_check(this);" method="post"> <form name="fmailform" id="fmailform" action="./mail_update.php" onsubmit="return fmailform_check(this);" method="post">
<input type="hidden" name="w" value="<?php echo $w ?>" id="w"> <input type="hidden" name="w" value="<?php echo $w ?>" id="w">
<input type="hidden" name="ma_id" value="<?php echo $ma['ma_id'] ?>" id="ma_id"> <input type="hidden" name="ma_id" value="<?php echo $ma['ma_id'] ?>" id="ma_id">
<input type="hidden" name="token" value="<?php echo $token ?>" id="token"> <input type="hidden" name="token" value="" id="token">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
+1 -1
View File
@@ -82,7 +82,7 @@ $colspan = 7;
</div> </div>
<div class="btn_list01 btn_list"> <div class="btn_list01 btn_list">
<button type="submit">선택삭제</button> <input type="submit" value="선택삭제">
</div> </div>
</form> </form>
+1 -3
View File
@@ -4,8 +4,6 @@ include_once('./_common.php');
auth_check($auth[$sub_menu], 'r'); auth_check($auth[$sub_menu], 'r');
$token = get_token();
$ma_last_option = ""; $ma_last_option = "";
$sql_common = " from {$g5['member_table']} "; $sql_common = " from {$g5['member_table']} ";
@@ -69,7 +67,7 @@ include_once('./admin.head.php');
?> ?>
<form name="fmailselectlist" id="fmailselectlist" method="post" action="./mail_select_update.php"> <form name="fmailselectlist" id="fmailselectlist" method="post" action="./mail_select_update.php">
<input type="hidden" name="token" value="<?php echo $token ?>"> <input type="hidden" name="token" value="">
<input type="hidden" name="ma_id" value="<?php echo $ma_id ?>"> <input type="hidden" name="ma_id" value="<?php echo $ma_id ?>">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
+1 -1
View File
@@ -8,7 +8,7 @@ $html_title = '회원메일 발송';
check_demo(); check_demo();
check_token(); check_admin_token();
include_once('./admin.head.php'); include_once('./admin.head.php');
include_once(G5_LIB_PATH.'/mailer.lib.php'); include_once(G5_LIB_PATH.'/mailer.lib.php');
+1 -1
View File
@@ -7,7 +7,7 @@ if ($w == 'u' || $w == 'd')
auth_check($auth[$sub_menu], 'w'); auth_check($auth[$sub_menu], 'w');
check_token(); check_admin_token();
if ($w == '') if ($w == '')
{ {
+1 -1
View File
@@ -17,7 +17,7 @@ else if (is_admin($mb['mb_id']) == "super")
else if ($mb['mb_level'] >= $member['mb_level']) else if ($mb['mb_level'] >= $member['mb_level'])
alert("자신보다 권한이 높거나 같은 회원은 삭제할 수 없습니다."); alert("자신보다 권한이 높거나 같은 회원은 삭제할 수 없습니다.");
check_token(); check_admin_token();
// 회원자료 삭제 // 회원자료 삭제
member_delete($mb['mb_id']); member_delete($mb['mb_id']);
+2 -4
View File
@@ -4,8 +4,6 @@ include_once('./_common.php');
auth_check($auth[$sub_menu], 'w'); auth_check($auth[$sub_menu], 'w');
$token = get_token();
if ($w == '') if ($w == '')
{ {
$required_mb_id = 'required'; $required_mb_id = 'required';
@@ -144,7 +142,7 @@ add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>"> <input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
<table> <table>
@@ -215,7 +213,7 @@ add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
</td> </td>
</tr> </tr>
<tr> <tr>
<th scope="row"><label for="mb_zip1">주소</label></th> <th scope="row">주소</th>
<td colspan="3" class="td_addr_line"> <td colspan="3" class="td_addr_line">
<label for="mb_zip" class="sound_only">우편번호</label> <label for="mb_zip" class="sound_only">우편번호</label>
<input type="text" name="mb_zip" value="<?php echo $mb['mb_zip1'].$mb['mb_zip2']; ?>" id="mb_zip" class="frm_input readonly" size="5" maxlength="6"> <input type="text" name="mb_zip" value="<?php echo $mb['mb_zip1'].$mb['mb_zip2']; ?>" id="mb_zip" class="frm_input readonly" size="5" maxlength="6">
+1 -1
View File
@@ -8,7 +8,7 @@ if ($w == 'u')
auth_check($auth[$sub_menu], 'w'); auth_check($auth[$sub_menu], 'w');
check_token(); check_admin_token();
$mb_id = trim($_POST['mb_id']); $mb_id = trim($_POST['mb_id']);
+1
View File
@@ -114,6 +114,7 @@ $colspan = 16;
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="">
<div class="tbl_head02 tbl_wrap"> <div class="tbl_head02 tbl_wrap">
<table> <table>
+1 -1
View File
@@ -6,7 +6,7 @@ check_demo();
auth_check($auth[$sub_menu], "d"); auth_check($auth[$sub_menu], "d");
check_token(); check_admin_token();
$msg = ""; $msg = "";
for ($i=0; $i<count($chk); $i++) for ($i=0; $i<count($chk); $i++)
+1 -3
View File
@@ -5,8 +5,6 @@ include_once('./_common.php');
if ($is_admin != 'super') if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
$token = get_token();
// 메뉴테이블 생성 // 메뉴테이블 생성
if( !isset($g5['menu_table']) ){ if( !isset($g5['menu_table']) ){
die('<meta charset="utf-8">dbconfig.php 파일에 <strong>$g5[\'menu_table\'] = G5_TABLE_PREFIX.\'menu\';</strong> 를 추가해 주세요.'); die('<meta charset="utf-8">dbconfig.php 파일에 <strong>$g5[\'menu_table\'] = G5_TABLE_PREFIX.\'menu\';</strong> 를 추가해 주세요.');
@@ -40,7 +38,7 @@ $colspan = 7;
</div> </div>
<form name="fmenulist" id="fmenulist" method="post" action="./menu_list_update.php" onsubmit="return fmenulist_submit(this);"> <form name="fmenulist" id="fmenulist" method="post" action="./menu_list_update.php" onsubmit="return fmenulist_submit(this);">
<input type="hidden" name="token" value="<?php echo $token ?>"> <input type="hidden" name="token" value="">
<div class="btn_add01 btn_add"> <div class="btn_add01 btn_add">
<button type="button" onclick="return add_menu();">메뉴추가<span class="sound_only"> 새창</span></button> <button type="button" onclick="return add_menu();">메뉴추가<span class="sound_only"> 새창</span></button>
+1 -1
View File
@@ -7,7 +7,7 @@ check_demo();
if ($is_admin != 'super') if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.'); alert('최고관리자만 접근 가능합니다.');
check_token(); check_admin_token();
// 이전 메뉴정보 삭제 // 이전 메뉴정보 삭제
$sql = " delete from {$g5['menu_table']} "; $sql = " delete from {$g5['menu_table']} ";
+1
View File
@@ -32,6 +32,7 @@ include_once (G5_ADMIN_PATH.'/admin.head.php');
<form name="frmnewwin" action="./newwinformupdate.php" onsubmit="return frmnewwin_check(this);" method="post"> <form name="frmnewwin" action="./newwinformupdate.php" onsubmit="return frmnewwin_check(this);" method="post">
<input type="hidden" name="w" value="<?php echo $w; ?>"> <input type="hidden" name="w" value="<?php echo $w; ?>">
<input type="hidden" name="nw_id" value="<?php echo $nw_id; ?>"> <input type="hidden" name="nw_id" value="<?php echo $nw_id; ?>">
<input type="hidden" name="token" value="">
<div class="local_desc01 local_desc"> <div class="local_desc01 local_desc">
<p>초기화면 접속 시 자동으로 뜰 팝업레이어를 설정합니다.</p> <p>초기화면 접속 시 자동으로 뜰 팝업레이어를 설정합니다.</p>
+2
View File
@@ -10,6 +10,8 @@ if ($w == 'd')
else else
auth_check($auth[$sub_menu], "w"); auth_check($auth[$sub_menu], "w");
check_admin_token();
$sql_common = " nw_device = '{$_POST['nw_device']}', $sql_common = " nw_device = '{$_POST['nw_device']}',
nw_begin_time = '{$_POST['nw_begin_time']}', nw_begin_time = '{$_POST['nw_begin_time']}',
nw_end_time = '{$_POST['nw_end_time']}', nw_end_time = '{$_POST['nw_end_time']}',
+1 -1
View File
@@ -98,7 +98,7 @@ $result = sql_query($sql);
<td class="td_num"><?php echo $row['nw_height']; ?>px</td> <td class="td_num"><?php echo $row['nw_height']; ?>px</td>
<td class="td_mngsmall"> <td class="td_mngsmall">
<a href="./newwinform.php?w=u&amp;nw_id=<?php echo $row['nw_id']; ?>"><span class="sound_only"><?php echo $row['nw_subject']; ?> </span>수정</a> <a href="./newwinform.php?w=u&amp;nw_id=<?php echo $row['nw_id']; ?>"><span class="sound_only"><?php echo $row['nw_subject']; ?> </span>수정</a>
<a href="./newwinformupdate.php?w=d&amp;nw_id=<?php echo $row['nw_id']; ?>" onclick="return delete_confirm();"><span class="sound_only"><?php echo $row['nw_subject']; ?> </span>삭제</a> <a href="./newwinformupdate.php?w=d&amp;nw_id=<?php echo $row['nw_id']; ?>" onclick="return delete_confirm(this);"><span class="sound_only"><?php echo $row['nw_subject']; ?> </span>삭제</a>
</td> </td>
</tr> </tr>
<?php <?php
+1 -3
View File
@@ -4,8 +4,6 @@ include_once('./_common.php');
auth_check($auth[$sub_menu], 'r'); auth_check($auth[$sub_menu], 'r');
$token = get_token();
$sql_common = " from {$g5['point_table']} "; $sql_common = " from {$g5['point_table']} ";
$sql_search = " where (1) "; $sql_search = " where (1) ";
@@ -100,7 +98,7 @@ else
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>"> <input type="hidden" name="token" value="">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
+1 -1
View File
@@ -6,7 +6,7 @@ check_demo();
auth_check($auth[$sub_menu], 'd'); auth_check($auth[$sub_menu], 'd');
check_token(); check_admin_token();
$count = count($_POST['chk']); $count = count($_POST['chk']);
if(!$count) if(!$count)
+1 -1
View File
@@ -4,7 +4,7 @@ include_once('./_common.php');
auth_check($auth[$sub_menu], 'w'); auth_check($auth[$sub_menu], 'w');
check_token(); check_admin_token();
$mb_id = $_POST['mb_id']; $mb_id = $_POST['mb_id'];
$po_point = $_POST['po_point']; $po_point = $_POST['po_point'];
+1 -1
View File
@@ -6,7 +6,7 @@ check_demo();
auth_check($auth[$sub_menu], 'd'); auth_check($auth[$sub_menu], 'd');
check_token(); check_admin_token();
$count = count($_POST['chk']); $count = count($_POST['chk']);
+1 -3
View File
@@ -4,8 +4,6 @@ include_once('./_common.php');
auth_check($auth[$sub_menu], 'w'); auth_check($auth[$sub_menu], 'w');
$token = get_token();
$html_title = '투표'; $html_title = '투표';
if ($w == '') if ($w == '')
$html_title .= ' 생성'; $html_title .= ' 생성';
@@ -28,7 +26,7 @@ include_once('./admin.head.php');
<input type="hidden" name="sst" value="<?php echo $sst ?>"> <input type="hidden" name="sst" value="<?php echo $sst ?>">
<input type="hidden" name="sod" value="<?php echo $sod ?>"> <input type="hidden" name="sod" value="<?php echo $sod ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>"> <input type="hidden" name="token" value="">
<div class="tbl_frm01 tbl_wrap"> <div class="tbl_frm01 tbl_wrap">
+1 -1
View File
@@ -8,7 +8,7 @@ if ($w == 'u' || $w == 'd')
auth_check($auth[$sub_menu], 'w'); auth_check($auth[$sub_menu], 'w');
check_token(); check_admin_token();
if ($w == '') if ($w == '')
{ {
+2 -4
View File
@@ -4,8 +4,6 @@ include_once('./_common.php');
auth_check($auth[$sub_menu], 'r'); auth_check($auth[$sub_menu], 'r');
$token = get_token();
$sql_common = " from {$g5['poll_table']} "; $sql_common = " from {$g5['poll_table']} ";
$sql_search = " where (1) "; $sql_search = " where (1) ";
@@ -79,7 +77,7 @@ $colspan = 7;
<input type="hidden" name="sfl" value="<?php echo $sfl ?>"> <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
<input type="hidden" name="stx" value="<?php echo $stx ?>"> <input type="hidden" name="stx" value="<?php echo $stx ?>">
<input type="hidden" name="page" value="<?php echo $page ?>"> <input type="hidden" name="page" value="<?php echo $page ?>">
<input type="hidden" name="token" value="<?php echo $token ?>"> <input type="hidden" name="token" value="">
<div class="tbl_head01 tbl_wrap"> <div class="tbl_head01 tbl_wrap">
<table> <table>
@@ -134,7 +132,7 @@ $colspan = 7;
</div> </div>
<div class="btn_list01 btn_list"> <div class="btn_list01 btn_list">
<button type="submit">선택삭제</button> <input type="submit" value="선택삭제">
</div> </div>
</form> </form>
+1 -3
View File
@@ -5,8 +5,6 @@ include_once(G5_EDITOR_LIB);
auth_check($auth[$sub_menu], 'r'); auth_check($auth[$sub_menu], 'r');
$token = get_token();
$g5['title'] = '1:1문의 설정'; $g5['title'] = '1:1문의 설정';
include_once ('./admin.head.php'); include_once ('./admin.head.php');
@@ -119,7 +117,7 @@ if(!isset($qaconfig['qa_include_head'])) {
?> ?>
<form name="fqaconfigform" id="fqaconfigform" method="post" onsubmit="return fqaconfigform_submit(this);" autocomplete="off"> <form name="fqaconfigform" id="fqaconfigform" method="post" onsubmit="return fqaconfigform_submit(this);" autocomplete="off">
<input type="hidden" name="token" value="<?php echo $token ?>" id="token"> <input type="hidden" name="token" value="" id="token">
<section id="anc_cf_qa_config"> <section id="anc_cf_qa_config">
<h2 class="h2_frm">1:1문의 설정</h2> <h2 class="h2_frm">1:1문의 설정</h2>
+1 -1
View File
@@ -6,7 +6,7 @@ check_demo();
auth_check($auth[$sub_menu], 'w'); auth_check($auth[$sub_menu], 'w');
check_token(); check_admin_token();
$sql = " update {$g5['qa_config_table']} $sql = " update {$g5['qa_config_table']}
set qa_title = '{$_POST['qa_title']}', set qa_title = '{$_POST['qa_title']}',
+4 -4
View File
@@ -19,9 +19,9 @@ include_once('./admin.head.php');
<p>정보통신망법 23조 2항(주민등록번호의 사용제한)에 따라 기존 주민등록번호 기반의 인증서비스 이용이 불가합니다. 주민등록번호 대체수단으로 최소한의 정보(생년월일, 휴대폰번호, 성별)를 입력받아 본인임을 확인하는 인증수단 입니다</p> <p>정보통신망법 23조 2항(주민등록번호의 사용제한)에 따라 기존 주민등록번호 기반의 인증서비스 이용이 불가합니다. 주민등록번호 대체수단으로 최소한의 정보(생년월일, 휴대폰번호, 성별)를 입력받아 본인임을 확인하는 인증수단 입니다</p>
<ul> <ul>
<li><a href="http://sir.co.kr/main/service/p_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_01.jpg" alt="KCP 휴대폰 본인확인 신청하기"></a></li> <li><a href="http://sir.kr/main/service/p_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_01.jpg" alt="KCP 휴대폰 본인확인 신청하기"></a></li>
<li><a href="http://sir.co.kr/main/service/lg_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_02.jpg" alt="LG유플러스 휴대폰대체인증 신청하기"></a></li> <li><a href="http://sir.kr/main/service/lg_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_02.jpg" alt="LG유플러스 휴대폰대체인증 신청하기"></a></li>
<li class="last"><a href="http://sir.co.kr/main/service/b_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_03.jpg" alt="OKname 휴대폰 본인확인 신청하기"></a></li> <li class="last"><a href="http://sir.kr/main/service/b_cert.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_03.jpg" alt="OKname 휴대폰 본인확인 신청하기"></a></li>
</ul> </ul>
</div> </div>
<div class="sevice_1"> <div class="sevice_1">
@@ -30,7 +30,7 @@ include_once('./admin.head.php');
<p>정부가 주관하는 주민등록번호 대체 수단으로 본인의 개인정보를 아이핀 사이트에 한번만 발급해 놓고, 이후부터는 아이디와 패스워드 만으로 <p>정부가 주관하는 주민등록번호 대체 수단으로 본인의 개인정보를 아이핀 사이트에 한번만 발급해 놓고, 이후부터는 아이디와 패스워드 만으로
본인임을 확인하는 인증수단 입니다.</p> 본인임을 확인하는 인증수단 입니다.</p>
<h4><a href="http://sir.co.kr/main/service/b_ipin.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_04.jpg" alt="OKname 아이핀 본인확인 신청하기"></a></h4> <h4><a href="http://sir.kr/main/service/b_ipin.php" target="_blank"><img src="<?php echo G5_ADMIN_URL ?>/img/svc_btn_04.jpg" alt="OKname 아이핀 본인확인 신청하기"></a></h4>
</div> </div>
<div class="sevice_2"> <div class="sevice_2">
<div class="svc_sms"> <div class="svc_sms">
+2
View File
@@ -6,6 +6,8 @@ auth_check($auth[$sub_menu], "w");
check_demo(); check_demo();
check_admin_token();
$g5['title'] = "SMS 기본설정"; $g5['title'] = "SMS 기본설정";
// 회신번호 체크 // 회신번호 체크
+2
View File
@@ -4,6 +4,8 @@ include_once("./_common.php");
auth_check($auth[$sub_menu], "w"); auth_check($auth[$sub_menu], "w");
check_admin_token();
$g5['title'] = "문자전송중"; $g5['title'] = "문자전송중";
$wr_reply = preg_replace('#[^0-9\-]#', '', trim($wr_reply)); $wr_reply = preg_replace('#[^0-9\-]#', '', trim($wr_reply));
+2
View File
@@ -5,6 +5,8 @@ include_once('./_common.php');
if ($is_admin != 'super') if ($is_admin != 'super')
die('최고관리자만 접근 가능합니다.'); die('최고관리자만 접근 가능합니다.');
admin_referer_check();
$theme = trim($_POST['theme']); $theme = trim($_POST['theme']);
$theme_dir = get_theme_dir(); $theme_dir = get_theme_dir();
+4
View File
@@ -5,8 +5,12 @@ include_once(G5_LIB_PATH.'/register.lib.php');
$mb_email = trim($_POST['reg_mb_email']); $mb_email = trim($_POST['reg_mb_email']);
$mb_id = trim($_POST['reg_mb_id']); $mb_id = trim($_POST['reg_mb_id']);
set_session('ss_check_mb_email', '');
if ($msg = empty_mb_email($mb_email)) die($msg); if ($msg = empty_mb_email($mb_email)) die($msg);
if ($msg = valid_mb_email($mb_email)) die($msg); if ($msg = valid_mb_email($mb_email)) die($msg);
if ($msg = prohibit_mb_email($mb_email)) die($msg); if ($msg = prohibit_mb_email($mb_email)) die($msg);
if ($msg = exist_mb_email($mb_email, $mb_id)) die($msg); if ($msg = exist_mb_email($mb_email, $mb_id)) die($msg);
set_session('ss_check_mb_email', $mb_email);
?> ?>
+4
View File
@@ -4,9 +4,13 @@ include_once(G5_LIB_PATH.'/register.lib.php');
$mb_id = trim($_POST['reg_mb_id']); $mb_id = trim($_POST['reg_mb_id']);
set_session('ss_check_mb_id', '');
if ($msg = empty_mb_id($mb_id)) die($msg); if ($msg = empty_mb_id($mb_id)) die($msg);
if ($msg = valid_mb_id($mb_id)) die($msg); if ($msg = valid_mb_id($mb_id)) die($msg);
if ($msg = count_mb_id($mb_id)) die($msg); if ($msg = count_mb_id($mb_id)) die($msg);
if ($msg = exist_mb_id($mb_id)) die($msg); if ($msg = exist_mb_id($mb_id)) die($msg);
if ($msg = reserve_mb_id($mb_id)) die($msg); if ($msg = reserve_mb_id($mb_id)) die($msg);
set_session('ss_check_mb_id', $mb_id);
?> ?>
+4
View File
@@ -5,9 +5,13 @@ include_once(G5_LIB_PATH.'/register.lib.php');
$mb_nick = trim($_POST['reg_mb_nick']); $mb_nick = trim($_POST['reg_mb_nick']);
$mb_id = trim($_POST['reg_mb_id']); $mb_id = trim($_POST['reg_mb_id']);
set_session('ss_check_mb_nick', '');
if ($msg = empty_mb_nick($mb_nick)) die($msg); if ($msg = empty_mb_nick($mb_nick)) die($msg);
if ($msg = valid_mb_nick($mb_nick)) die($msg); if ($msg = valid_mb_nick($mb_nick)) die($msg);
if ($msg = count_mb_nick($mb_nick)) die($msg); if ($msg = count_mb_nick($mb_nick)) die($msg);
if ($msg = exist_mb_nick($mb_nick, $mb_id)) die($msg); if ($msg = exist_mb_nick($mb_nick, $mb_id)) die($msg);
if ($msg = reserve_mb_nick($mb_nick)) die($msg); if ($msg = reserve_mb_nick($mb_nick)) die($msg);
set_session('ss_check_mb_nick', $mb_nick);
?> ?>
+2
View File
@@ -33,6 +33,8 @@ $msg2 = str_replace("\\n", "<br>", $msg);
$url = clean_xss_tags($url); $url = clean_xss_tags($url);
if (!$url) $url = clean_xss_tags($_SERVER['HTTP_REFERER']); if (!$url) $url = clean_xss_tags($_SERVER['HTTP_REFERER']);
$url = preg_replace("/[\<\>\'\"\\\'\\\"\(\)]/", "", $url);
// url 체크 // url 체크
check_url_host($url); check_url_host($url);
+3 -3
View File
@@ -130,13 +130,13 @@ if (isset($wr_id) && $wr_id) {
if ($config['cf_use_point'] && $board['bo_read_point'] && $member['mb_point'] + $board['bo_read_point'] < 0) if ($config['cf_use_point'] && $board['bo_read_point'] && $member['mb_point'] + $board['bo_read_point'] < 0)
alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글읽기('.number_format($board['bo_read_point']).')가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.'); alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 글읽기('.number_format($board['bo_read_point']).')가 불가합니다.\\n\\n포인트를 모으신 후 다시 글읽기 해 주십시오.');
insert_point($member['mb_id'], $board['bo_read_point'], "{$board['bo_subject']} {$wr_id} 글읽기", $bo_table, $wr_id, '읽기'); insert_point($member['mb_id'], $board['bo_read_point'], ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$wr_id.' 글읽기', $bo_table, $wr_id, '읽기');
} }
set_session($ss_name, TRUE); set_session($ss_name, TRUE);
} }
$g5['title'] = strip_tags(conv_subject($write['wr_subject'], 255))." > ".$board['bo_subject']; $g5['title'] = strip_tags(conv_subject($write['wr_subject'], 255))." > ".((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']);
} else { } else {
if ($member['mb_level'] < $board['bo_list_level']) { if ($member['mb_level'] < $board['bo_list_level']) {
if ($member['mb_id']) if ($member['mb_id'])
@@ -171,7 +171,7 @@ if (isset($wr_id) && $wr_id) {
if (!isset($page) || (isset($page) && $page == 0)) $page = 1; if (!isset($page) || (isset($page) && $page == 0)) $page = 1;
$g5['title'] = $board['bo_subject']." ".$page." 페이지"; $g5['title'] = ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$page.' 페이지';
} }
include_once(G5_PATH.'/head.sub.php'); include_once(G5_PATH.'/head.sub.php');
+6
View File
@@ -28,6 +28,12 @@ if ($sendmail_count > 3)
$g5['title'] = '메일 쓰기'; $g5['title'] = '메일 쓰기';
include_once(G5_PATH.'/head.sub.php'); include_once(G5_PATH.'/head.sub.php');
$email = get_email_address(base64_decode($email));
if(!$email)
alert_close('이메일이 올바르지 않습니다.');
$email = base64_encode($email);
if (!$name) if (!$name)
$name = base64_decode($email); $name = base64_decode($email);
else else
+1 -1
View File
@@ -46,7 +46,7 @@ if ($sca || $stx) {
$sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) "; $sql_search .= " and (wr_num between {$spt} and ({$spt} + {$config['cf_search_part']})) ";
// 원글만 얻는다. (코멘트의 내용도 검색하기 위함) // 원글만 얻는다. (코멘트의 내용도 검색하기 위함)
// 라엘님 제안 코드로 대체 http://sir.co.kr/bbs/board.php?bo_table=g5_bug&wr_id=2922 // 라엘님 제안 코드로 대체 http://sir.kr/g5_bug/2922
$sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} "; $sql = " SELECT COUNT(DISTINCT `wr_parent`) AS `cnt` FROM {$write_table} WHERE {$sql_search} ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
$total_count = $row['cnt']; $total_count = $row['cnt'];
+2 -1
View File
@@ -31,7 +31,8 @@ if ($mb['mb_leave_date'] && $mb['mb_leave_date'] <= date("Ymd", G5_SERVER_TIME))
} }
if ($config['cf_use_email_certify'] && !preg_match("/[1-9]/", $mb['mb_email_certify'])) { if ($config['cf_use_email_certify'] && !preg_match("/[1-9]/", $mb['mb_email_certify'])) {
confirm("{$mb['mb_email']} 메일로 메일인증을 받으셔야 로그인 가능합니다. 다른 메일주소로 변경하여 인증하시려면 취소를 클릭하시기 바랍니다.", G5_URL, G5_BBS_URL.'/register_email.php?mb_id='.$mb_id); $ckey = md5($mb['mb_ip'].$mb['mb_datetime']);
confirm("{$mb['mb_email']} 메일로 메일인증을 받으셔야 로그인 가능합니다. 다른 메일주소로 변경하여 인증하시려면 취소를 클릭하시기 바랍니다.", G5_URL, G5_BBS_URL.'/register_email.php?mb_id='.$mb_id.'&ckey='.$ckey);
} }
@include_once($member_skin_path.'/login_check.skin.php'); @include_once($member_skin_path.'/login_check.skin.php');
+2
View File
@@ -19,6 +19,8 @@ $url = clean_xss_tags($_GET['url']);
// url 체크 // url 체크
check_url_host($url); check_url_host($url);
$url = get_text($url);
include_once($member_skin_path.'/member_confirm.skin.php'); include_once($member_skin_path.'/member_confirm.skin.php');
include_once('./_tail.sub.php'); include_once('./_tail.sub.php');
+3 -3
View File
@@ -6,7 +6,7 @@ include_once('./_head.php');
$sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = 1 "; $sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = 1 ";
$gr_id = isset($_GET['gr_id']) ? $_GET['gr_id'] : ""; $gr_id = isset($_GET['gr_id']) ? substr(preg_replace('#[^a-z0-9_]#i', '', $_GET['gr_id']), 0, 10) : '';
if ($gr_id) { if ($gr_id) {
$sql_common .= " and b.gr_id = '$gr_id' "; $sql_common .= " and b.gr_id = '$gr_id' ";
} }
@@ -46,7 +46,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++) {
$group_select .= '</select>'; $group_select .= '</select>';
$list = array(); $list = array();
$sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id {$sql_common} {$sql_order} limit {$from_record}, {$rows} "; $sql = " select a.*, b.bo_subject, b.bo_mobile_subject, c.gr_subject, c.gr_id {$sql_common} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql); $result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i=0; $row=sql_fetch_array($result); $i++) {
$tmp_write_table = $g5['write_prefix'].$row['bo_table']; $tmp_write_table = $g5['write_prefix'].$row['bo_table'];
@@ -104,7 +104,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++) {
$list[$i]['datetime2'] = $datetime2; $list[$i]['datetime2'] = $datetime2;
$list[$i]['gr_subject'] = $row['gr_subject']; $list[$i]['gr_subject'] = $row['gr_subject'];
$list[$i]['bo_subject'] = $row['bo_subject']; $list[$i]['bo_subject'] = ((G5_IS_MOBILE && $row['bo_mobile_subject']) ? $row['bo_mobile_subject'] : $row['bo_subject']);
$list[$i]['wr_subject'] = $row2['wr_subject']; $list[$i]['wr_subject'] = $row2['wr_subject'];
} }
+4 -4
View File
@@ -339,7 +339,7 @@ if($config['cf_sms_use'] == 'icode' && $qaconfig['qa_use_sms']) {
// 문의글 등록시 관리자에게 전송 // 문의글 등록시 관리자에게 전송
if(($w == '' || $w == 'r') && trim($qaconfig['qa_admin_hp'])) { if(($w == '' || $w == 'r') && trim($qaconfig['qa_admin_hp'])) {
$sms_content = $config['cf_title'].' '.$qaconfig['qa_title'].'에 문의글이 등록되었습니다.'; $sms_content = $config['cf_title'].' '.$qaconfig['qa_title'].'에 문의글이 등록되었습니다.';
$send_number = preg_replace('/[^0-9]/', '', $qa_hp); $send_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_send_number']);
$recv_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_admin_hp']); $recv_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_admin_hp']);
if($recv_number) { if($recv_number) {
@@ -385,7 +385,7 @@ if($config['cf_sms_use'] == 'icode' && $qaconfig['qa_use_sms']) {
// 문의글 등록시 관리자에게 전송 // 문의글 등록시 관리자에게 전송
if(($w == '' || $w == 'r') && trim($qaconfig['qa_admin_hp'])) { if(($w == '' || $w == 'r') && trim($qaconfig['qa_admin_hp'])) {
$sms_content = $config['cf_title'].' '.$qaconfig['qa_title'].'에 문의글이 등록되었습니다.'; $sms_content = $config['cf_title'].' '.$qaconfig['qa_title'].'에 문의글이 등록되었습니다.';
$send_number = preg_replace('/[^0-9]/', '', $qa_hp); $send_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_send_number']);
$recv_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_admin_hp']); $recv_number = preg_replace('/[^0-9]/', '', $qaconfig['qa_admin_hp']);
if($recv_number) { if($recv_number) {
@@ -403,7 +403,7 @@ if($w == 'a' && $write['qa_email_recv'] && trim($write['qa_email'])) {
include_once(G5_LIB_PATH.'/mailer.lib.php'); include_once(G5_LIB_PATH.'/mailer.lib.php');
$subject = $config['cf_title'].' '.$qaconfig['qa_title'].' 답변 알림 메일'; $subject = $config['cf_title'].' '.$qaconfig['qa_title'].' 답변 알림 메일';
$content = nl2br(conv_unescape_nl($qa_content)); $content = nl2br(conv_unescape_nl(stripslashes($qa_content)));
mailer($config['cf_admin_email_name'], $config['cf_admin_email'], $write['qa_email'], $subject, $content, 1); mailer($config['cf_admin_email_name'], $config['cf_admin_email'], $write['qa_email'], $subject, $content, 1);
} }
@@ -413,7 +413,7 @@ if(($w == '' || $w == 'r') && trim($qaconfig['qa_admin_email'])) {
include_once(G5_LIB_PATH.'/mailer.lib.php'); include_once(G5_LIB_PATH.'/mailer.lib.php');
$subject = $config['cf_title'].' '.$qaconfig['qa_title'].' 질문 알림 메일'; $subject = $config['cf_title'].' '.$qaconfig['qa_title'].' 질문 알림 메일';
$content = nl2br(conv_unescape_nl($qa_content)); $content = nl2br(conv_unescape_nl(stripslashes($qa_content)));
mailer($config['cf_admin_email_name'], $qa_email, $qaconfig['qa_admin_email'], $subject, $content, 1); mailer($config['cf_admin_email_name'], $qa_email, $qaconfig['qa_admin_email'], $subject, $content, 1);
} }
+7 -1
View File
@@ -6,11 +6,17 @@ $g5['title'] = '메일인증 메일주소 변경';
include_once('./_head.php'); include_once('./_head.php');
$mb_id = substr(clean_xss_tags($_GET['mb_id']), 0, 20); $mb_id = substr(clean_xss_tags($_GET['mb_id']), 0, 20);
$sql = " select mb_email, mb_datetime, mb_email_certify from {$g5['member_table']} where mb_id = '{$mb_id}' "; $sql = " select mb_email, mb_datetime, mb_ip, mb_email_certify from {$g5['member_table']} where mb_id = '{$mb_id}' ";
$mb = sql_fetch($sql); $mb = sql_fetch($sql);
if (substr($mb['mb_email_certify'],0,1)!=0) { if (substr($mb['mb_email_certify'],0,1)!=0) {
alert("이미 메일인증 하신 회원입니다.", G5_URL); alert("이미 메일인증 하신 회원입니다.", G5_URL);
} }
$ckey = trim($_GET['ckey']);
$key = md5($mb['mb_ip'].$mb['mb_datetime']);
if(!$ckey || $ckey != $key)
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
?> ?>
<p class="rg_em_p">메일인증을 받지 못한 경우 회원정보의 메일주소를 변경 할 수 있습니다.</p> <p class="rg_em_p">메일인증을 받지 못한 경우 회원정보의 메일주소를 변경 할 수 있습니다.</p>
+7 -4
View File
@@ -3,12 +3,15 @@ include_once('./_common.php');
include_once(G5_CAPTCHA_PATH.'/captcha.lib.php'); include_once(G5_CAPTCHA_PATH.'/captcha.lib.php');
include_once(G5_LIB_PATH.'/mailer.lib.php'); include_once(G5_LIB_PATH.'/mailer.lib.php');
$mb_id = trim($_POST['mb_id']); $mb_id = substr(clean_xss_tags($_POST['mb_id']), 0, 20);
$mb_email = trim($_POST['mb_email']); $mb_email = get_email_address(trim($_POST['mb_email']));
$sql = " select mb_name, mb_datetime from {$g5['member_table']} where mb_id = '{$mb_id}' and mb_email_certify <> '' "; if(!$mb_id || !$mb_email)
alert('올바른 방법으로 이용해 주십시오.', G5_URL);
$sql = " select mb_name, mb_password, mb_email, mb_datetime from {$g5['member_table']} where mb_id = '{$mb_id}' and substring(mb_email_certify, 1, 1) = '0' ";
$mb = sql_fetch($sql); $mb = sql_fetch($sql);
if ($mb) { if (!$mb) {
alert("이미 메일인증 하신 회원입니다.", G5_URL); alert("이미 메일인증 하신 회원입니다.", G5_URL);
} }
+19
View File
@@ -79,6 +79,17 @@ if ($w == '' || $w == 'u') {
if ($msg = valid_mb_id($mb_id)) alert($msg, "", true, true); if ($msg = valid_mb_id($mb_id)) alert($msg, "", true, true);
if ($msg = count_mb_id($mb_id)) alert($msg, "", true, true); if ($msg = count_mb_id($mb_id)) alert($msg, "", true, true);
// 이름, 닉네임에 utf-8 이외의 문자가 포함됐다면 오류
// 서버환경에 따라 정상적으로 체크되지 않을 수 있음.
$tmp_mb_name = iconv('UTF-8', 'UTF-8//IGNORE', $mb_name);
if($tmp_mb_name != $mb_name) {
alert('이름을 올바르게 입력해 주십시오.');
}
$tmp_mb_nick = iconv('UTF-8', 'UTF-8//IGNORE', $mb_nick);
if($tmp_mb_nick != $mb_nick) {
alert('닉네임을 올바르게 입력해 주십시오.');
}
if ($w == '' && !$mb_password) if ($w == '' && !$mb_password)
alert('비밀번호가 넘어오지 않았습니다.'); alert('비밀번호가 넘어오지 않았습니다.');
if($w == '' && $mb_password != $mb_password_re) if($w == '' && $mb_password != $mb_password_re)
@@ -103,6 +114,14 @@ if ($w == '' || $w == 'u') {
if ($w=='') { if ($w=='') {
if ($msg = exist_mb_id($mb_id)) alert($msg); if ($msg = exist_mb_id($mb_id)) alert($msg);
if (get_session('ss_check_mb_id') != $mb_id || get_session('ss_check_mb_nick') != $mb_nick || get_session('ss_check_mb_email') != $mb_email) {
set_session('ss_check_mb_id', '');
set_session('ss_check_mb_nick', '');
set_session('ss_check_mb_email', '');
alert('올바른 방법으로 이용해 주십시오.');
}
// 본인확인 체크 // 본인확인 체크
if($config['cf_cert_use'] && $config['cf_cert_req']) { if($config['cf_cert_use'] && $config['cf_cert_req']) {
if(trim($_POST['cert_no']) != $_SESSION['ss_cert_no'] || !$_SESSION['ss_cert_no']) if(trim($_POST['cert_no']) != $_SESSION['ss_cert_no'] || !$_SESSION['ss_cert_no'])
+4 -4
View File
@@ -129,13 +129,13 @@ if ($stx) {
$read_level[] = $g5_search['read_level'][$i]; $read_level[] = $g5_search['read_level'][$i];
$search_table_count[] = $total_count; $search_table_count[] = $total_count;
$sql2 = " select bo_subject from {$g5['board_table']} where bo_table = '{$g5_search['tables'][$i]}' "; $sql2 = " select bo_subject, bo_mobile_subject from {$g5['board_table']} where bo_table = '{$g5_search['tables'][$i]}' ";
$row2 = sql_fetch($sql2); $row2 = sql_fetch($sql2);
$sch_class = ""; $sch_class = "";
$sch_all = ""; $sch_all = "";
if ($onetable == $g5_search['tables'][$i]) $sch_class = "class=sch_on"; if ($onetable == $g5_search['tables'][$i]) $sch_class = "class=sch_on";
else $sch_all = "class=sch_on"; else $sch_all = "class=sch_on";
$str_board_list .= '<li><a href="'.$_SERVER['SCRIPT_NAME'].'?'.$search_query.'&amp;gr_id='.$gr_id.'&amp;onetable='.$g5_search['tables'][$i].'" '.$sch_class.'><strong>'.$row2['bo_subject'].'</strong><span class="cnt_cmt">'.$row['cnt'].'</span></a></li>'; $str_board_list .= '<li><a href="'.$_SERVER['SCRIPT_NAME'].'?'.$search_query.'&amp;gr_id='.$gr_id.'&amp;onetable='.$g5_search['tables'][$i].'" '.$sch_class.'><strong>'.((G5_IS_MOBILE && $row2['bo_mobile_subject']) ? $row2['bo_mobile_subject'] : $row2['bo_subject']).'</strong><span class="cnt_cmt">'.$row['cnt'].'</span></a></li>';
} }
} }
@@ -157,9 +157,9 @@ if ($stx) {
$k=0; $k=0;
for ($idx=$table_index; $idx<count($search_table); $idx++) { for ($idx=$table_index; $idx<count($search_table); $idx++) {
$sql = " select bo_subject from {$g5['board_table']} where bo_table = '{$search_table[$idx]}' "; $sql = " select bo_subject, bo_mobile_subject from {$g5['board_table']} where bo_table = '{$search_table[$idx]}' ";
$row = sql_fetch($sql); $row = sql_fetch($sql);
$bo_subject[$idx] = $row['bo_subject']; $bo_subject[$idx] = ((G5_IS_MOBILE && $row['bo_mobile_subject']) ? $row['bo_mobile_subject'] : $row['bo_subject']);
$tmp_write_table = $g5['write_prefix'] . $search_table[$idx]; $tmp_write_table = $g5['write_prefix'] . $search_table[$idx];
+1 -1
View File
@@ -214,7 +214,7 @@ else
$write_max = (int)$board['bo_write_max']; $write_max = (int)$board['bo_write_max'];
} }
$g5['title'] = $board['bo_subject']." ".$title_msg; $g5['title'] = ((G5_IS_MOBILE && $board['bo_mobile_subject']) ? $board['bo_mobile_subject'] : $board['bo_subject']).' '.$title_msg;
$is_notice = false; $is_notice = false;
$notice_checked = ''; $notice_checked = '';
+12 -1
View File
@@ -7,6 +7,17 @@ $g5['title'] = '게시글 저장';
$msg = array(); $msg = array();
if($board['bo_use_category']) {
$ca_name = trim($_POST['ca_name']);
if(!$ca_name) {
$msg[] = '<strong>분류</strong>를 선택하세요.';
} else {
$categories = array_map('trim', explode("|", $board['bo_category_list'].($is_admin ? '|공지' : '')));
if(!empty($categories) && !in_array($ca_name, $categories))
$msg[] = '분류를 올바르게 입력하세요.';
}
}
$wr_subject = ''; $wr_subject = '';
if (isset($_POST['wr_subject'])) { if (isset($_POST['wr_subject'])) {
$wr_subject = substr(trim($_POST['wr_subject']),0,255); $wr_subject = substr(trim($_POST['wr_subject']),0,255);
@@ -596,7 +607,7 @@ if (!($w == 'u' || $w == 'cu') && $config['cf_email_use'] && $board['bo_use_emai
else if (strstr($html, 'html2')) else if (strstr($html, 'html2'))
$tmp_html = 2; $tmp_html = 2;
$wr_content = conv_content(conv_unescape_nl($wr_content), $tmp_html); $wr_content = conv_content(conv_unescape_nl(stripslashes($wr_content)), $tmp_html);
$warr = array( ''=>'입력', 'u'=>'수정', 'r'=>'답변', 'c'=>'코멘트', 'cu'=>'코멘트 수정' ); $warr = array( ''=>'입력', 'u'=>'수정', 'r'=>'답변', 'c'=>'코멘트', 'cu'=>'코멘트 수정' );
$str = $warr[$w]; $str = $warr[$w];
+3 -1
View File
@@ -227,8 +227,10 @@ $qstr = '';
if (isset($_REQUEST['sca'])) { if (isset($_REQUEST['sca'])) {
$sca = clean_xss_tags(trim($_REQUEST['sca'])); $sca = clean_xss_tags(trim($_REQUEST['sca']));
if ($sca) if ($sca) {
$sca = preg_replace("/[\<\>\'\"\\\'\\\"\%\=\(\)]/", "", $sca);
$qstr .= '&amp;sca=' . urlencode($sca); $qstr .= '&amp;sca=' . urlencode($sca);
}
} else { } else {
$sca = ''; $sca = '';
} }
+5 -4
View File
@@ -5,7 +5,7 @@
********************/ ********************/
define('G5_VERSION', '그누보드5'); define('G5_VERSION', '그누보드5');
define('G5_GNUBOARD_VER', '5.1.6'); define('G5_GNUBOARD_VER', '5.1.13');
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음 // 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
define('_GNUBOARD_', true); define('_GNUBOARD_', true);
@@ -30,7 +30,7 @@ define('G5_DOMAIN', '');
define('G5_HTTPS_DOMAIN', ''); define('G5_HTTPS_DOMAIN', '');
/* /*
www.sir.co.kr 과 sir.co.kr 도메인은 서로 다른 도메인으로 인식합니다. 쿠키를 공유하려면 .sir.co.kr 과 같이 입력하세요. www.sir.kr 과 sir.kr 도메인은 서로 다른 도메인으로 인식합니다. 쿠키를 공유하려면 .sir.kr 과 같이 입력하세요.
이곳에 입력이 없다면 www 붙은 도메인과 그렇지 않은 도메인은 쿠키를 공유하지 않으므로 로그인이 풀릴 수 있습니다. 이곳에 입력이 없다면 www 붙은 도메인과 그렇지 않은 도메인은 쿠키를 공유하지 않으므로 로그인이 풀릴 수 있습니다.
*/ */
define('G5_COOKIE_DOMAIN', ''); define('G5_COOKIE_DOMAIN', '');
@@ -57,7 +57,7 @@ define('G5_LGXPAY_DIR', 'lgxpay');
define('G5_SNS_DIR', 'sns'); define('G5_SNS_DIR', 'sns');
define('G5_SYNDI_DIR', 'syndi'); define('G5_SYNDI_DIR', 'syndi');
define('G5_PHPMAILER_DIR', 'PHPMailer_v2.0.4'); define('G5_PHPMAILER_DIR', 'PHPMailer');
define('G5_SESSION_DIR', 'session'); define('G5_SESSION_DIR', 'session');
define('G5_THEME_DIR', 'theme'); define('G5_THEME_DIR', 'theme');
@@ -159,7 +159,8 @@ define('G5_MOBILE_AGENT', 'phone|samsung|lgtel|mobile|[^A]skt|nokia|blackberry
// SMTP // SMTP
// lib/mailer.lib.php 에서 사용 // lib/mailer.lib.php 에서 사용
define('G5_SMTP', '127.0.0.1'); define('G5_SMTP', '127.0.0.1');
define('G5_SMTP_PORT', '25');
/******************** /********************
+16 -8
View File
@@ -119,17 +119,25 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline}
/* ie6 이미지 너비 지정 */ /* ie6 이미지 너비 지정 */
.img_fix {width:100%;height:auto} .img_fix {width:100%;height:auto}
/* 캡챠 자동등록(입력)방지 기본 */ /* 캡챠 자동등록(입력)방지 기본 -pc */
#captcha {display:inline-block;position:relative} #captcha {display:inline-block;position:relative}
#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} #captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;}
#captcha #captcha_img {width:100px;height:41px;border:1px solid #e9e9e9} #captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;vertical-align:top;padding:0;margin:0}
#captcha #captcha_mp3 {position:absolute;top:0;left:101px;;margin:0;padding:0;width:23px;height:22px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer} #captcha #captcha_mp3 {position:absolute;top:0;left:161px;;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer}
#captcha #captcha_mp3 span {position:absolute;top:0;left:0;width:23px;height:22px;background:url('../plugin/kcaptcha/img/sound.gif')} #captcha #captcha_mp3 span {position:absolute;top:0;left:0;width:31px;height:31px;background:url('../img/captcha.png') no-repeat;}
#captcha #captcha_reload {position:absolute;top:21px;left:101px;margin:0;padding:0;width:23px;height:22px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer} #captcha #captcha_reload {position:absolute;top:31px;left:161px;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../img/captcha.png') no-repeat 0 -30px;border-top:1px solid #ccc;text-indent:-999px}
#captcha #captcha_reload span {position:absolute;top:0;left:0;width:23px;height:22px;background:url('../plugin/kcaptcha/img/reload.gif')} #captcha #captcha_key {margin:0 0 0 33px;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em;vertical-align:top}
#captcha #captcha_key {margin:0 0 0 25px;padding:0 5px;width:70px;height:41px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em}
#captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em}
/* 캡챠 자동등록(입력)방지 기본 - mobile */
#captcha.m_captcha audio {display:block;margin:0 0 5px;width:187px}
#captcha.m_captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-top:5px;display:block;}
#captcha.m_captcha #captcha_reload {position:static;margin:0;padding:0;width:31px;height:31px;border:0;background:transparent;vertical-align:middle;overflow:hidden;cursor:pointer;background:url('../../../img/captcha.png') no-repeat 0 -30px;text-indent:-999px}
#captcha.m_captcha #captcha_reload span{display:none;}
#captcha.m_captcha #captcha_key {margin:0;padding:0 5px;width:115px;height:29px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:29px;margin-left:3px}
#captcha.m_captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em}
#captcha.m_captcha #captcha_mp3 {width:31px;height:31px;background:url('../img/captcha.png') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none}
/* ckeditor 단축키 */ /* ckeditor 단축키 */
.cke_sc {margin:0 0 5px;text-align:right} .cke_sc {margin:0 0 5px;text-align:right}
.btn_cke_sc{display:inline-block;padding:0 10px;height:23px;border:1px solid #ccc;background:#fafafa;color:#000;text-decoration:none;line-height:1.9em;vertical-align:middle;cursor:pointer} .btn_cke_sc{display:inline-block;padding:0 10px;height:23px;border:1px solid #ccc;background:#fafafa;color:#000;text-decoration:none;line-height:1.9em;vertical-align:middle;cursor:pointer}
+19 -8
View File
@@ -53,7 +53,7 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline}
#hd_sch {display:none;border-top:1px solid #181818;background:#282828;text-align:center} #hd_sch {display:none;border-top:1px solid #181818;background:#282828;text-align:center}
#hd_sch h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden} #hd_sch h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden}
#hd_sch form {position:relative;padding:30px 0} #hd_sch form {position:relative;padding:30px 0}
#hd_sch #sch_stx {height:30px;border:1px solid #181818;background:#323232 !important;line-height:2.5em;vertical-align:middle} #hd_sch #sch_stx {height:30px;border:1px solid #181818;background:#323232 !important;line-height:2.5em;vertical-align:middle;color:#ccc}
#hd_sch #sch_submit {margin:0;padding:0 10px;height:32px;border:0;background:#000;color:#fff;vertical-align:middle} #hd_sch #sch_submit {margin:0;padding:0 10px;height:32px;border:0;background:#000;color:#fff;vertical-align:middle}
#hd_sch #sch_close {display:block;margin:0;padding:10px 0;width:100%;border:0;background:#000;color:#fff} #hd_sch #sch_close {display:block;margin:0;padding:10px 0;width:100%;border:0;background:#000;color:#fff}
@@ -109,15 +109,26 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline}
/* 이미지 등비율 리사이징 */ /* 이미지 등비율 리사이징 */
.img_fix {width:100%;height:auto} .img_fix {width:100%;height:auto}
/* 캡챠 자동등록(입력)방지 기본 */ /* 캡챠 자동등록(입력)방지 기본 - PC */
#captcha {display:inline-block;position:relative} #captcha {display:inline-block;position:relative;}
#captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden} #captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;font-size:0}
#captcha audio {display:block;margin:0 0 5px;width:187px} #captcha audio {display:block;margin:0 0 5px;width:187px}
#captcha #captcha_img {width:60px;height:30px;border:1px solid #e9e9e9} #captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-right:32px;vertical-align:top}
#captcha #captcha_reload {margin:0;padding:0 5px;height:32px;border:0;background:#e4eaec;vertical-align:middle;overflow:hidden;cursor:pointer} #captcha #captcha_reload {position:absolute;top:31px;left:161px;width:31px;height:31px;background:url('../img/captcha.png') no-repeat 0 -30px;border:none;border-top:1px solid #ccc;overflow:hidden;cursor:pointer;text-indent:-9999px;}
#captcha #captcha_key {margin:0 0 0 4px;padding:0 5px;width:50px;height:30px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2em} #captcha #captcha_key {margin:0;padding:0 5px;width:70px;height:60px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:2.8em;vertical-align:top}
#captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em} #captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em}
#captcha #captcha_mp3{margin:0;padding:0 5px;height:32px;border:0;background:#e4eaec;vertical-align:middle;overflow:hidden;cursor:pointer} #captcha #captcha_mp3 {position:absolute;top:0;left:161px;width:31px;height:31px;background:url('../img/captcha.png') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none}
/* 캡챠 자동등록(입력)방지 기본 - mobile */
#captcha.m_captcha legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;font-size:0}
#captcha.m_captcha audio {display:block;margin:0 0 5px;width:187px}
#captcha.m_captcha #captcha_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;display:block;}
#captcha.m_captcha #captcha_reload {width:31px;height:31px;background:url('../img/captcha.png') no-repeat 0 -30px;border:none;overflow:hidden;cursor:pointer;text-indent:-9999px;position:static}
#captcha.m_captcha #captcha_key {margin:0;padding:0 5px;width:115px;height:29px;border:1px solid #b8c9c2;background:#f7f7f7;font-size:1.333em;font-weight:bold;text-align:center;line-height:29px;margin-left:3px}
#captcha.m_captcha #captcha_info {display:block;margin:5px 0 0;font-size:0.95em;letter-spacing:-0.1em}
#captcha.m_captcha #captcha_mp3 {width:31px;height:31px;background:url('../img/captcha.png') no-repeat; vertical-align:top;overflow:hidden;cursor:pointer;text-indent:-9999px;border:none}
/*단축키일람 */ /*단축키일람 */
.btn_cke_sc{background:#333;color:#fff;padding:5px;border:none;margin-bottom:5px} .btn_cke_sc{background:#333;color:#fff;padding:5px;border:none;margin-bottom:5px}
+3 -5
View File
@@ -74,11 +74,9 @@ var g5_bo_table = "<?php echo isset($bo_table)?$bo_table:''; ?>";
var g5_sca = "<?php echo isset($sca)?$sca:''; ?>"; var g5_sca = "<?php echo isset($sca)?$sca:''; ?>";
var g5_editor = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>"; var g5_editor = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>";
var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>"; var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>";
<?php <?php if(defined('G5_IS_ADMIN')) { ?>
if ($is_admin) { var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
echo 'var g5_admin_url = "'.G5_ADMIN_URL.'";'.PHP_EOL; <?php } ?>
}
?>
</script> </script>
<script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script> <script src="<?php echo G5_JS_URL ?>/jquery-1.8.3.min.js"></script>
<script src="<?php echo G5_JS_URL ?>/jquery.menu.js"></script> <script src="<?php echo G5_JS_URL ?>/jquery.menu.js"></script>
BIN
View File
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.
File renamed without changes.
+2 -2
View File
@@ -28,7 +28,7 @@
//require_once 'PEAR.php'; //require_once 'PEAR.php';
require_once 'oleread.inc'; require_once 'oleread.inc.php';
//require_once 'OLE.php'; //require_once 'OLE.php';
define('SPREADSHEET_EXCEL_READER_BIFF8', 0x600); define('SPREADSHEET_EXCEL_READER_BIFF8', 0x600);
@@ -258,7 +258,7 @@ class Spreadsheet_Excel_Reader
*/ */
function Spreadsheet_Excel_Reader() function Spreadsheet_Excel_Reader()
{ {
$this->_ole =& new OLERead(); $this->_ole = new OLERead();
$this->setUTFEncoder('iconv'); $this->setUTFEncoder('iconv');
} }
+3 -3
View File
@@ -212,8 +212,8 @@ function url_auto_link($str)
global $config; global $config;
// 140326 유창화님 제안코드로 수정 // 140326 유창화님 제안코드로 수정
// http://sir.co.kr/bbs/board.php?bo_table=pg_lecture&wr_id=461 // http://sir.kr/pg_lecture/461
// http://sir.co.kr/bbs/board.php?bo_table=pg_lecture&wr_id=463 // http://sir.kr/pg_lecture/463
$str = str_replace(array("&lt;", "&gt;", "&amp;", "&quot;", "&nbsp;", "&#039;"), array("\t_lt_\t", "\t_gt_\t", "&", "\"", "\t_nbsp_\t", "'"), $str); $str = str_replace(array("&lt;", "&gt;", "&amp;", "&quot;", "&nbsp;", "&#039;"), array("\t_lt_\t", "\t_gt_\t", "&", "\"", "\t_nbsp_\t", "'"), $str);
//$str = preg_replace("`(?:(?:(?:href|src)\s*=\s*(?:\"|'|)){0})((http|https|ftp|telnet|news|mms)://[^\"'\s()]+)`", "<A HREF=\"\\1\" TARGET='{$config['cf_link_target']}'>\\1</A>", $str); //$str = preg_replace("`(?:(?:(?:href|src)\s*=\s*(?:\"|'|)){0})((http|https|ftp|telnet|news|mms)://[^\"'\s()]+)`", "<A HREF=\"\\1\" TARGET='{$config['cf_link_target']}'>\\1</A>", $str);
$str = preg_replace("/([^(href=\"?'?)|(src=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[가-힣\xA1-\xFEa-zA-Z0-9\.:&#=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1<A HREF=\"\\2\" TARGET=\"{$config['cf_link_target']}\">\\2</A>", $str); $str = preg_replace("/([^(href=\"?'?)|(src=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[가-힣\xA1-\xFEa-zA-Z0-9\.:&#=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1<A HREF=\"\\2\" TARGET=\"{$config['cf_link_target']}\">\\2</A>", $str);
@@ -796,7 +796,7 @@ function get_category_option($bo_table='', $ca_name='')
{ {
global $g5, $board, $is_admin; global $g5, $board, $is_admin;
$categories = explode("|", $board['bo_category_list'].($is_admin?"|공지":"")); // 구분자가 , 로 되어 있음 $categories = explode("|", $board['bo_category_list'].($is_admin?"|공지":"")); // 구분자가 | 로 되어 있음
$str = ""; $str = "";
for ($i=0; $i<count($categories); $i++) { for ($i=0; $i<count($categories); $i++) {
$category = trim($categories[$i]); $category = trim($categories[$i]);
+10 -364
View File
@@ -1,7 +1,7 @@
<?php <?php
if (!defined('_GNUBOARD_')) exit; if (!defined('_GNUBOARD_')) exit;
include_once(G5_PHPMAILER_PATH.'/class.phpmailer.php'); include_once(G5_PHPMAILER_PATH.'/PHPMailerAutoload.php');
// 메일 보내기 (파일 여러개 첨부 가능) // 메일 보내기 (파일 여러개 첨부 가능)
// type : text=0, html=1, text+html=2 // type : text=0, html=1, text+html=2
@@ -20,24 +20,27 @@ function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $cc=
if (defined('G5_SMTP') && G5_SMTP) { if (defined('G5_SMTP') && G5_SMTP) {
$mail->IsSMTP(); // telling the class to use SMTP $mail->IsSMTP(); // telling the class to use SMTP
$mail->Host = G5_SMTP; // SMTP server $mail->Host = G5_SMTP; // SMTP server
if(defined('G5_SMTP_PORT') && G5_SMTP_PORT)
$mail->Port = G5_SMTP_PORT;
} }
$mail->CharSet = 'UTF-8';
$mail->From = $fmail; $mail->From = $fmail;
$mail->FromName = $fname; $mail->FromName = $fname;
$mail->Subject = $subject; $mail->Subject = $subject;
$mail->AltBody = ""; // optional, comment out and test $mail->AltBody = ""; // optional, comment out and test
$mail->MsgHTML($content); $mail->msgHTML($content);
$mail->AddAddress($to); $mail->addAddress($to);
if ($cc) if ($cc)
$mail->AddCC($cc); $mail->addCC($cc);
if ($bcc) if ($bcc)
$mail->AddBCC($bcc); $mail->addBCC($bcc);
//print_r2($file); exit; //print_r2($file); exit;
if ($file != "") { if ($file != "") {
foreach ($file as $f) { foreach ($file as $f) {
$mail->AddAttachment($f['path'], $f['name']); $mail->addAttachment($f['path'], $f['name']);
} }
} }
return $mail->Send(); return $mail->send();
} }
// 파일을 첨부함 // 파일을 첨부함
@@ -46,364 +49,7 @@ function attach_file($filename, $tmp_name)
// 서버에 업로드 되는 파일은 확장자를 주지 않는다. (보안 취약점) // 서버에 업로드 되는 파일은 확장자를 주지 않는다. (보안 취약점)
$dest_file = G5_DATA_PATH.'/tmp/'.str_replace('/', '_', $tmp_name); $dest_file = G5_DATA_PATH.'/tmp/'.str_replace('/', '_', $tmp_name);
move_uploaded_file($tmp_name, $dest_file); move_uploaded_file($tmp_name, $dest_file);
/*
$fp = fopen($tmp_name, "r");
$tmpfile = array(
"name" => $filename,
"tmp_name" => $tmp_name,
"data" => fread($fp, filesize($tmp_name)));
fclose($fp);
*/
$tmpfile = array("name" => $filename, "path" => $dest_file); $tmpfile = array("name" => $filename, "path" => $dest_file);
return $tmpfile; return $tmpfile;
} }
/*
// 메일 보내기 (파일 여러개 첨부 가능)
// type : text=0, html=1, text+html=2
function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $cc="", $bcc="")
{
global $config;
global $g5;
// 메일발송 사용을 하지 않는다면
if (!$config['cf_email_use']) return;
$boundary = uniqid(time());
$header = "Message-ID: <".generate_mail_id(preg_replace("/@.+$/i","",$to)).">\r\n".
"From:=?utf-8?B?".base64_encode($fname)."?=<$fmail>\r\n";
if ($cc) $header .= "Cc: $cc\n";
if ($bcc) $header .= "Bcc: $bcc\n";
$header .= "MIME-Version: 1.0\n";
$header .= "X-Mailer: SIR Mailer 0.94 : {$_SERVER['SERVER_ADDR']} : {$_SERVER['REMOTE_ADDR']} : ".G5_URL." : {$_SERVER['SCRIPT_NAME']} : {$_SERVER['HTTP_REFERER']} \n";
$header .= "Date: ".date ("D, j M Y H:i:s T",time())."\r\n".
"To: $to\r\n".
"Subject: =?utf-8?B?".base64_encode($subject)."?=\r\n";
if ($file == "") {
$header .= "Content-Type: MULTIPART/ALTERNATIVE;\n".
" BOUNDARY=\"$boundary\"\n\n";
} else {
$header .= "Content-Type: MULTIPART/MIXED;\n".
" BOUNDARY=\"$boundary\"\n\n";
}
if ($type == 2)
$content = nl2br($content);
$strip_content = stripslashes(trim($content));
$encode_content = chunk_split(base64_encode($strip_content));
$body = "";
$body .= "\n--$boundary\n";
$body .= "Content-Type: TEXT/PLAIN; charset=utf-8\n";
$body .= "Content-Transfer-Encoding: BASE64\n\n";
$body .= $encode_content;
$body .= "\n--$boundary\n";
if ($type) {
$body .= "Content-Type: TEXT/HTML; charset=utf-8\n";
$body .= "Content-Transfer-Encoding: BASE64\n\n";
$body .= $encode_content;
$body .= "\n--$boundary\n";
}
if ($file != "") {
foreach ($file as $f) {
$body .= "n--$boundary\n";
$body .= "Content-Type: APPLICATION/OCTET-STREAM; name=$fname\n";
$body .= "Content-Transfer-Encoding: BASE64\n";
$body .= "Content-Disposition: inline; filename=$fname\n";
$body .= "\n";
$body .= chunk_split(base64_encode($f['data']));
$body .= "\n";
}
$body .= "--$boundary--\n";
}
$mails['to'] = $to;
$mails['from'] = $fmail;
$mails['text'] = $header.$body;
if (defined(G5_SMTP)) {
ini_set('SMTP', G5_SMTP);
@mail($to, $subject, $body, $header, "-f $fmail");
} else {
new maildaemon($mails);
}
}
// 파일 첨부시
$fp = fopen(__FILE__, "r");
$file[] = array(
"name"=>basename(__FILE__),
"data"=>fread($fp, filesize(__FILE__)));
fclose($fp);
// 메일 유효성 검사
// core PHP Programming 책 참고
// hanmail.net , hotmail.com , kebi.com 등이 정상적이지 않음으로 사용 불가
function verify_email($address, &$error)
{
global $g5;
$WAIT_SECOND = 3; // ?초 기다림
list($user, $domain) = explode("@", $address);
// 도메인에 메일 교환기가 존재하는지 검사
if (checkdnsrr($domain, "MX")) {
// 메일 교환기 레코드들을 얻는다
if (!getmxrr($domain, $mxhost, $mxweight)) {
$error = '메일 교환기를 회수할 수 없음';
return false;
}
} else {
// 메일 교환기가 없으면, 도메인 자체가 편지를 받는 것으로 간주
$mxhost[] = $domain;
$mxweight[] = 1;
}
// 메일 교환기 호스트의 배열을 만든다.
for ($i=0; $i<count($mxhost); $i++)
$weighted_host[($mxweight[$i])] = $mxhost[$i];
ksort($weighted_host);
// 각 호스트를 검사
foreach($weighted_host as $host) {
// 호스트의 SMTP 포트에 연결
if (!($fp = @fsockopen($host, 25))) continue;
// 220 메세지들은 건너뜀
// 3초가 지나도 응답이 없으면 포기
socket_set_blocking($fp, false);
$stoptime = G5_SERVER_TIME + $WAIT_SECOND;
$gotresponse = false;
while (true) {
// 메일서버로부터 한줄 얻음
$line = fgets($fp, 1024);
if (substr($line, 0, 3) == '220') {
// 타이머를 초기화
$stoptime = G5_SERVER_TIME + $WAIT_SECOND;
$gotresponse = true;
} else if ($line == '' && $gotresponse)
break;
else if (G5_SERVER_TIME > $stoptime)
break;
}
// 이 호스트는 응답이 없음. 다음 호스트로 넘어간다
if (!$gotresponse) continue;
socket_set_blocking($fp, true);
// SMTP 서버와의 대화를 시작
fputs($fp, "HELO {$_SERVER['SERVER_NAME']}\r\n");
echo "HELO {$_SERVER['SERVER_NAME']}\r\n";
fgets($fp, 1024);
// From을 설정
fputs($fp, "MAIL FROM: <info@$domain>\r\n");
echo "MAIL FROM: <info@$domain>\r\n";
fgets($fp, 1024);
// 주소를 시도
fputs($fp, "RCPT TO: <$address>\r\n");
echo "RCPT TO: <$address>\r\n";
$line = fgets($fp, 1024);
// 연결을 닫음
fputs($fp, "QUIT\r\n");
fclose($fp);
if (substr($line, 0, 3) != '250') {
// SMTP 서버가 이 주소를 인식하지 못하므로 잘못된 주소임
$error = $line;
return false;
} else
// 주소를 인식했음
return true;
}
$error = '메일 교환기에 도달하지 못하였습니다.';
return false;
}
# jsboard 의 메일보내기 class를 추가합니다. 130808
# http://kldp.net/projects/jsboard/
# mail 보내기 함수 2001.11.30 김정균
# $Id: include/sendmail.php,v 1.4 2009/11/19 05:29:51 oops Exp $
# 서버상의 smtp daemon 에 의존하지 않고 직접 발송하는 smtp class
#
# 특정 배열로 class 에 전달을 하여 메일을 발송한다. 배열은 아래을 참조한다.
#
# debug -> debug 를 할지 안할지를 결정한다.
# ofhtml -> 웹상에서 사용할지 쉘상에서 사용할지를 결정한다.
# from -> 메일을 발송하는 사람의 메일주소
# to -> 메일을 받을 사람의 메일 주소
# text -> 헤더 내용을 포함한 메일 본문
#
class maildaemon {
var $failed = 0;
function __construct($v) {
$this->debug = $v['debug'];
$this->ofhtml = $v['ofhtml'];
if($_SERVER['SERVER_NAME']) $this->helo = $_SERVER['SERVER_NAME'];
if(!$this->helo || preg_match("/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/i",$this->helo))
$this->helo = "JSBoardMessage";
$this->from = $v['from'];
$this->to = $v['to'];
$this->body = $v['text']."\r\n.";
//die($v['text']);
$this->newline = $this->ofhtml ? "<br>\n" : "\n";
$this->mx = $this->getMX($this->to);
if($this->debug) {
echo "DEBUG: ".$this->mx." start".$this->newline;
echo "################################################################".$this->newline;
}
$this->sockets("open");
$this->send("HELO ".$this->helo);
$this->send("MAIL FROM: <".$this->from.">");
$this->send("RCPT TO: <".$this->to.">");
$this->send("data");
$this->send($this->body);
$this->send("quit");
$this->sockets("close");
}
function getMX($email) {
$dev = explode("@",$email);
$account = $dev[0];
$host = $dev[1];
if(checkdnsrr($host,"MX") && getmxrr($host,$mx,$weight)) {
$idx = 0;
for($i=0;$i<sizeof($mx);$i++) {
$dest = $dest ? $dest : $weight[$i];
if($dest > $weight[$i]) {
$dest = $weight[$i];
$idx = $i;
}
}
} else return $host;
return $mx[$idx];
}
# 디버그 함수
# $t -> 1 (debug of socket open,close)
# 0 (regular smtp message)
# $p -> 1 (print detail debug)
#
# return 1 -> success
# return 0 -> failed
#
function debug($str,$t=0,$p=0) {
if($t) {
if(!$str) $this->failed = 1;
if($this->sock) $returnmsg = trim(fgets($this->sock,1024));
} else {
if(!preg_match("/^(220|221|250|251|354)$/",substr(trim($str),0,3)))
$this->failed = 1;
}
# DEBUG mode -> 모든 메세지 출력
if($p) {
if($t) {
$str = "Conncet ".$this->mx;
$str .= $this->failed ? " Failed" : " Success";
$str .= $this->newline."DEBUG: $returnmsg";
}
echo "DEBUG: $str".$this->newline;
}
# DEBUG 모드가 아닐때, 에러 메세지 출력
if(!$p && $this->failed) {
if($this->ofhtml) echo "<SCRIPT>\nalert('$str')\n</SCRIPT>\n";
else "ERROR: $str\n";
}
}
function sockets($option=0) {
switch($option) {
case "open" :
$this->sock = @fsockopen($this->mx,25,$this->errno,$this->errstr,30);
$this->debug($this->sock,1,$this->debug);
break;
default :
if($this->sock) fclose($this->sock);
break;
}
}
function send($str,$chk=0) {
if(!$this->failed) {
if($this->debug) {
if(preg_match("/\r\n/",trim($str)))
$str_debug = trim(str_replace("\r\n","\r\n ",$str));
else $str_debug = $str;
}
fputs($this->sock,"$str\r\n");
$recv = trim(fgets($this->sock,1024));
$recvchk = $recv;
$this->debug($recv,0,$this->debug);
if(preg_match("/Mail From:/i",$str) && preg_match("/exist|require|error/i",$recvchk) && !$chk) {
$this->failed = 0;
$this->send("MAIL FROM: <".$this->to.">",1);
}
}
}
}
function generate_mail_id($uid) {
$id = date("YmdHis",time());
mt_srand((float) microtime() * 1000000);
$randval = mt_rand();
$id .= $randval."@$uid";
return $id;
}
function mail_header($to,$from,$title,$mta=0) {
global $langs,$boundary;
# mail header 를 작성
$boundary = get_boundary_msg();
$header = "Message-ID: <".generate_mail_id(preg_replace("/@.+$/i","",$to)).">\r\n".
"From:=?utf-8?B?".base64_encode('보내는사람')."?=<$from>\r\n".
"MIME-Version: 1.0\r\n";
if(!$mta) $header .= "Date: ".date ("D, j M Y H:i:s T",time())."\r\n".
"To: $to\r\n".
"Subject: $title\r\n";
$header .= "Content-Type: multipart/alternative;\r\n".
" boundary=\"$boundary\"\r\n\r\n";
return $header;
}
function get_boundary_msg() {
$uniqchr = uniqid("");
$one = strtoupper($uniqchr[0]);
$two = strtoupper(substr($uniqchr,0,8));
$three = strtoupper(substr(strrev($uniqchr),0,8));
return "----=_NextPart_000_000${one}_${two}.${three}";
}
*/
?> ?>
+1 -1
View File
@@ -17,7 +17,7 @@ $sql = " select bo_table, bo_subject
and bo_device <> 'pc' "; and bo_device <> 'pc' ";
if(!$is_admin) if(!$is_admin)
$sql .= " and bo_use_cert = '' "; $sql .= " and bo_use_cert = '' ";
$sql .= " order by bo_table "; $sql .= " order by bo_order ";
$result = sql_query($sql); $result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) { for ($i=0; $row=sql_fetch_array($result); $i++) {
// 이 함수가 바로 최신글을 추출하는 역할을 합니다. // 이 함수가 바로 최신글을 추출하는 역할을 합니다.
+2 -2
View File
@@ -10,14 +10,14 @@ if ($is_checkbox) $colspan++;
add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0); add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0);
?> ?>
<h2 id="container_title"><?php echo $board['bo_subject'] ?><span class="sound_only"> 목록</span></h2> <h2 id="container_title"><?php echo ($board['bo_mobile_subject'] ? $board['bo_mobile_subject'] : $board['bo_subject']) ?><span class="sound_only"> 목록</span></h2>
<!-- 게시판 목록 시작 --> <!-- 게시판 목록 시작 -->
<div id="bo_list<?php if ($is_admin) echo "_admin"; ?>"> <div id="bo_list<?php if ($is_admin) echo "_admin"; ?>">
<?php if ($is_category) { ?> <?php if ($is_category) { ?>
<nav id="bo_cate"> <nav id="bo_cate">
<h2><?php echo $board['bo_subject'] ?> 카테고리</h2> <h2><?php echo ($board['bo_mobile_subject'] ? $board['bo_mobile_subject'] : $board['bo_subject']) ?> 카테고리</h2>
<ul id="bo_cate_ul"> <ul id="bo_cate_ul">
<?php echo $category_option ?> <?php echo $category_option ?>
</ul> </ul>
+1 -1
View File
@@ -8,7 +8,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script> <script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script>
<div id="bo_v_table"><?php echo $board['bo_subject']; ?></div> <div id="bo_v_table"><?php echo ($board['bo_mobile_subject'] ? $board['bo_mobile_subject'] : $board['bo_subject']); ?></div>
<article id="bo_v" style="width:<?php echo $width; ?>"> <article id="bo_v" style="width:<?php echo $width; ?>">
<header> <header>
@@ -53,8 +53,10 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
$query_string = clean_query_string($_SERVER['QUERY_STRING']); $query_string = clean_query_string($_SERVER['QUERY_STRING']);
if($w == 'cu') { if($w == 'cu') {
$sql = " select wr_id, wr_content from $write_table where wr_id = '$c_id' and wr_is_comment = '1' "; $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); $cmt = sql_fetch($sql);
if (!($is_admin || ($member['mb_id'] == $cmt['mb_id'] && $cmt['mb_id'])))
$cmt['wr_content'] = '';
$c_wr_content = $cmt['wr_content']; $c_wr_content = $cmt['wr_content'];
} }
+2 -2
View File
@@ -8,14 +8,14 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<script src="<?php echo G5_JS_URL; ?>/jquery.fancylist.js"></script> <script src="<?php echo G5_JS_URL; ?>/jquery.fancylist.js"></script>
<h2 id="container_title"><?php echo $board['bo_subject'] ?><span class="sound_only"> 목록</span></h2> <h2 id="container_title"><?php echo ($board['bo_mobile_subject'] ? $board['bo_mobile_subject'] : $board['bo_subject']) ?><span class="sound_only"> 목록</span></h2>
<!-- 게시판 목록 시작 --> <!-- 게시판 목록 시작 -->
<div id="bo_gall"> <div id="bo_gall">
<?php if ($is_category) { ?> <?php if ($is_category) { ?>
<nav id="bo_cate"> <nav id="bo_cate">
<h2><?php echo $board['bo_subject'] ?> 카테고리</h2> <h2><?php echo ($board['bo_mobile_subject'] ? $board['bo_mobile_subject'] : $board['bo_subject']) ?> 카테고리</h2>
<ul id="bo_cate_ul"> <ul id="bo_cate_ul">
<?php echo $category_option ?> <?php echo $category_option ?>
</ul> </ul>
+1 -1
View File
@@ -8,7 +8,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$board_skin_url.'/style.css">', 0
<script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script> <script src="<?php echo G5_JS_URL; ?>/viewimageresize.js"></script>
<div id="bo_v_table"><?php echo $board['bo_subject']; ?></div> <div id="bo_v_table"><?php echo ($board['bo_mobile_subject'] ? $board['bo_mobile_subject'] : $board['bo_subject']); ?></div>
<article id="bo_v" style="width:<?php echo $width; ?>"> <article id="bo_v" style="width:<?php echo $width; ?>">
<header> <header>
@@ -53,8 +53,10 @@ var char_max = parseInt(<?php echo $comment_max ?>); // 최대
$query_string = clean_query_string($_SERVER['QUERY_STRING']); $query_string = clean_query_string($_SERVER['QUERY_STRING']);
if($w == 'cu') { if($w == 'cu') {
$sql = " select wr_id, wr_content from $write_table where wr_id = '$c_id' and wr_is_comment = '1' "; $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); $cmt = sql_fetch($sql);
if (!($is_admin || ($member['mb_id'] == $cmt['mb_id'] && $cmt['mb_id'])))
$cmt['wr_content'] = '';
$c_wr_content = $cmt['wr_content']; $c_wr_content = $cmt['wr_content'];
} }
@@ -11,7 +11,6 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
<form name="fformmail" action="./formmail_send.php" onsubmit="return fformmail_submit(this);" method="post" enctype="multipart/form-data" style="margin:0px;"> <form name="fformmail" action="./formmail_send.php" onsubmit="return fformmail_submit(this);" method="post" enctype="multipart/form-data" style="margin:0px;">
<input type="hidden" name="to" value="<?php echo $email ?>"> <input type="hidden" name="to" value="<?php echo $email ?>">
<input type="hidden" name="attach" value="2"> <input type="hidden" name="attach" value="2">
<input type="hidden" name="token" value="<?php echo $token ?>">
<?php if ($is_member) { // 회원이면 ?> <?php if ($is_member) { // 회원이면 ?>
<input type="hidden" name="fnick" value="<?php echo get_text($member['mb_nick']); ?>"> <input type="hidden" name="fnick" value="<?php echo get_text($member['mb_nick']); ?>">
<input type="hidden" name="fmail" value="<?php echo $member['mb_email'] ?>"> <input type="hidden" name="fmail" value="<?php echo $member['mb_email'] ?>">
+2 -2
View File
@@ -7,7 +7,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$poll_skin_url.'/style.css">', 0)
<form name="fpoll" action="<?php echo G5_BBS_URL ?>/poll_update.php" onsubmit="return fpoll_submit(this);" method="post"> <form name="fpoll" action="<?php echo G5_BBS_URL ?>/poll_update.php" onsubmit="return fpoll_submit(this);" method="post">
<input type="hidden" name="po_id" value="<?php echo $po_id ?>"> <input type="hidden" name="po_id" value="<?php echo $po_id ?>">
<input type="hidden" name="skin_dir" value="<?php echo $skin_dir ?>"> <input type="hidden" name="skin_dir" value="<?php echo urlencode($skin_dir); ?>">
<aside id="poll"> <aside id="poll">
<header> <header>
<h2>설문조사</h2> <h2>설문조사</h2>
@@ -21,7 +21,7 @@ add_stylesheet('<link rel="stylesheet" href="'.$poll_skin_url.'/style.css">', 0)
</ul> </ul>
<footer> <footer>
<input type="submit" value="투표하기"> <input type="submit" value="투표하기">
<a href="<?php echo G5_BBS_URL."/poll_result.php?po_id=$po_id&amp;skin_dir=$skin_dir" ?>" target="_blank" onclick="poll_result(this.href); return false;">결과보기</a> <a href="<?php echo G5_BBS_URL."/poll_result.php?po_id=$po_id&amp;skin_dir=".urlencode($skin_dir); ?>" target="_blank" onclick="poll_result(this.href); return false;">결과보기</a>
</footer> </footer>
</aside> </aside>
</form> </form>
@@ -312,7 +312,7 @@ of these things:
from a designated place, offer equivalent access to copy the above from a designated place, offer equivalent access to copy the above
specified materials from the same place. specified materials from the same place.
e) Verify that the user has already received a copy of these e) verify that the user has already received a copy of these
materials or that you have already sent this user a copy. materials or that you have already sent this user a copy.
For an executable, the required form of the "work that uses the For an executable, the required form of the "work that uses the
+49
View File
@@ -0,0 +1,49 @@
<?php
/**
* PHPMailer SPL autoloader.
* PHP Version 5
* @package PHPMailer
* @link https://github.com/PHPMailer/PHPMailer/ The PHPMailer GitHub project
* @author Marcus Bointon (Synchro/coolbru) <phpmailer@synchromedia.co.uk>
* @author Jim Jagielski (jimjag) <jimjag@gmail.com>
* @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
* @author Brent R. Matzelle (original founder)
* @copyright 2012 - 2014 Marcus Bointon
* @copyright 2010 - 2012 Jim Jagielski
* @copyright 2004 - 2009 Andy Prevost
* @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
* @note This program is distributed in the hope that it will be useful - WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE.
*/
/**
* PHPMailer SPL autoloader.
* @param string $classname The name of the class to load
*/
function PHPMailerAutoload($classname)
{
//Can't use __DIR__ as it's only in PHP 5.3+
$filename = dirname(__FILE__).DIRECTORY_SEPARATOR.'class.'.strtolower($classname).'.php';
if (is_readable($filename)) {
require $filename;
}
}
if (version_compare(PHP_VERSION, '5.1.2', '>=')) {
//SPL autoloading was introduced in PHP 5.1.2
if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
spl_autoload_register('PHPMailerAutoload', true, true);
} else {
spl_autoload_register('PHPMailerAutoload');
}
} else {
/**
* Fall back to traditional autoload for old PHP versions
* @param string $classname The name of the class to load
*/
function __autoload($classname)
{
PHPMailerAutoload($classname);
}
}
+184
View File
@@ -0,0 +1,184 @@
![PHPMailer](https://raw.github.com/PHPMailer/PHPMailer/master/examples/images/phpmailer.png)
# PHPMailer - A full-featured email creation and transfer class for PHP
Build status: [![Build Status](https://travis-ci.org/PHPMailer/PHPMailer.svg)](https://travis-ci.org/PHPMailer/PHPMailer)
[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/badges/quality-score.png?s=3758e21d279becdf847a557a56a3ed16dfec9d5d)](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/)
[![Code Coverage](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/badges/coverage.png?s=3fe6ca5fe8cd2cdf96285756e42932f7ca256962)](https://scrutinizer-ci.com/g/PHPMailer/PHPMailer/)
[![Latest Stable Version](https://poser.pugx.org/phpmailer/phpmailer/v/stable.svg)](https://packagist.org/packages/phpmailer/phpmailer) [![Total Downloads](https://poser.pugx.org/phpmailer/phpmailer/downloads)](https://packagist.org/packages/phpmailer/phpmailer) [![Latest Unstable Version](https://poser.pugx.org/phpmailer/phpmailer/v/unstable.svg)](https://packagist.org/packages/phpmailer/phpmailer) [![License](https://poser.pugx.org/phpmailer/phpmailer/license.svg)](https://packagist.org/packages/phpmailer/phpmailer)
## Class Features
- Probably the world's most popular code for sending email from PHP!
- Used by many open-source projects: WordPress, Drupal, 1CRM, SugarCRM, Yii, Joomla! and many more
- Integrated SMTP support - send without a local mail server
- Send emails with multiple TOs, CCs, BCCs and REPLY-TOs
- Multipart/alternative emails for mail clients that do not read HTML email
- Support for UTF-8 content and 8bit, base64, binary, and quoted-printable encodings
- SMTP authentication with LOGIN, PLAIN, NTLM, CRAM-MD5 and Google's XOAUTH2 mechanisms over SSL and TLS transports
- Error messages in 47 languages!
- DKIM and S/MIME signing support
- Compatible with PHP 5.0 and later
- Much more!
## Why you might need it
Many PHP developers utilize email in their code. The only PHP function that supports this is the mail() function. However, it does not provide any assistance for making use of popular features such as HTML-based emails and attachments.
Formatting email correctly is surprisingly difficult. There are myriad overlapping RFCs, requiring tight adherence to horribly complicated formatting and encoding rules - the vast majority of code that you'll find online that uses the mail() function directly is just plain wrong!
*Please* don't be tempted to do it yourself - if you don't use PHPMailer, there are many other excellent libraries that you should look at before rolling your own - try SwiftMailer, Zend_Mail, eZcomponents etc.
The PHP mail() function usually sends via a local mail server, typically fronted by a `sendmail` binary on Linux, BSD and OS X platforms, however, Windows usually doesn't include a local mail server; PHPMailer's integrated SMTP implementation allows email sending on Windows platforms without a local mail server.
## License
This software is distributed under the [LGPL 2.1](http://www.gnu.org/licenses/lgpl-2.1.html) license. Please read LICENSE for information on the
software availability and distribution.
## Installation & loading
PHPMailer is available via [Composer/Packagist](https://packagist.org/packages/phpmailer/phpmailer) (using semantic versioning), so just add this line to your `composer.json` file:
```json
"phpmailer/phpmailer": "~5.2"
```
or
```sh
composer require phpmailer/phpmailer
```
If you want to use the Gmail XOAUTH2 authentication class, you will also need to add a dependency on the `league/oauth2-client` package.
Alternatively, copy the contents of the PHPMailer folder into somewhere that's in your PHP `include_path` setting. If you don't speak git or just want a tarball, click the 'zip' button at the top of the page in GitHub.
If you're not using composer's autoloader, PHPMailer provides an SPL-compatible autoloader, and that is the preferred way of loading the library - just `require '/path/to/PHPMailerAutoload.php';` and everything should work. The autoloader does not throw errors if it can't find classes so it prepends itself to the SPL list, allowing your own (or your framework's) autoloader to catch errors. SPL autoloading was introduced in PHP 5.1.0, so if you are using a version older than that you will need to require/include each class manually.
PHPMailer does *not* declare a namespace because namespaces were only introduced in PHP 5.3.
If you want to use Google's XOAUTH2 authentication mechanism, you need to be running at least PHP 5.4, and load the dependencies listed in `composer.json`.
### Minimal installation
While installing the entire package manually or with composer is simple, convenient and reliable, you may want to include only vital files in your project. At the very least you will need [class.phpmailer.php](class.phpmailer.php). If you're using SMTP, you'll need [class.smtp.php](class.smtp.php), and if you're using POP-before SMTP, you'll need [class.pop3.php](class.pop3.php). For all of these, we recommend you use [the autoloader](PHPMailerAutoload.php) too as otherwise you will either have to `require` all classes manually or use some other autoloader. You can skip the [language](language/) folder if you're not showing errors to users and can make do with English-only errors. You may need the additional classes in the [extras](extras/) folder if you are using those features, including NTLM authentication and ics generation. If you're using Google XOAUTH2 you will need `class.phpmaileroauth.php` and `class.oauth.php` classes too, as well as the composer dependencies.
## A Simple Example
```php
<?php
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
//$mail->SMTPDebug = 3; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp1.example.com;smtp2.example.com'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'user@example.com'; // SMTP username
$mail->Password = 'secret'; // SMTP password
$mail->SMTPSecure = 'tls'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 587; // TCP port to connect to
$mail->setFrom('from@example.com', 'Mailer');
$mail->addAddress('joe@example.net', 'Joe User'); // Add a recipient
$mail->addAddress('ellen@example.com'); // Name is optional
$mail->addReplyTo('info@example.com', 'Information');
$mail->addCC('cc@example.com');
$mail->addBCC('bcc@example.com');
$mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments
$mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'This is the HTML message body <b>in bold!</b>';
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
echo 'Message has been sent';
}
```
You'll find plenty more to play with in the [examples](examples/) folder.
That's it. You should now be ready to use PHPMailer!
## Localization
PHPMailer defaults to English, but in the [language](language/) folder you'll find numerous (46 at the time of writing!) translations for PHPMailer error messages that you may encounter. Their filenames contain [ISO 639-1](http://en.wikipedia.org/wiki/ISO_639-1) language code for the translations, for example `fr` for French. To specify a language, you need to tell PHPMailer which one to use, like this:
```php
// To load the French version
$mail->setLanguage('fr', '/optional/path/to/language/directory/');
```
We welcome corrections and new languages - if you're looking for corrections to do, run the [phpmailerLangTest.php](test/phpmailerLangTest.php) script in the tests folder and it will show any missing translations.
## Documentation
Examples of how to use PHPMailer for common scenarios can be found in the [examples](examples/) folder. If you're looking for a good starting point, we recommend you start with [the gmail example](examples/gmail.phps).
There are tips and a troubleshooting guide in the [GitHub wiki](https://github.com/PHPMailer/PHPMailer/wiki). If you're having trouble, this should be the first place you look as it's the most frequently updated.
Complete generated API documentation is [available online](http://phpmailer.github.io/PHPMailer/).
You'll find some basic user-level docs in the [docs](docs/) folder, and you can generate complete API-level documentation using the [generatedocs.sh](docs/generatedocs.sh) shell script in the docs folder, though you'll need to install [PHPDocumentor](http://www.phpdoc.org) first. You may find [the unit tests](test/phpmailerTest.php) a good source of how to do various operations such as encryption.
If the documentation doesn't cover what you need, search the [many questions on StackOverflow](http://stackoverflow.com/questions/tagged/phpmailer), and before you ask a question about "SMTP Error: Could not connect to SMTP host.", [read the troubleshooting guide](https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting).
## Tests
There is a PHPUnit test script in the [test](test/) folder.
Build status: [![Build Status](https://travis-ci.org/PHPMailer/PHPMailer.svg)](https://travis-ci.org/PHPMailer/PHPMailer)
If this isn't passing, is there something you can do to help?
## Contributing
Please submit bug reports, suggestions and pull requests to the [GitHub issue tracker](https://github.com/PHPMailer/PHPMailer/issues).
We're particularly interested in fixing edge-cases, expanding test coverage and updating translations.
With the move to the PHPMailer GitHub organisation, you'll need to update any remote URLs referencing the old GitHub location with a command like this from within your clone:
```sh
git remote set-url upstream https://github.com/PHPMailer/PHPMailer.git
```
Please *don't* use the SourceForge or Google Code projects any more.
## Sponsorship
Development time and resources for PHPMailer are provided by [Smartmessages.net](https://info.smartmessages.net/), a powerful email marketing system.
<a href="https://info.smartmessages.net/"><img src="https://www.smartmessages.net/img/smartmessages-logo.svg" width="250" height="28" alt="Smartmessages email marketing"></a>
Other contributions are gladly received, whether in beer 🍺, T-shirts 👕, Amazon wishlist raids, or cold, hard cash 💰.
## Changelog
See [changelog](changelog.md).
## History
- PHPMailer was originally written in 2001 by Brent R. Matzelle as a [SourceForge project](http://sourceforge.net/projects/phpmailer/).
- Marcus Bointon (coolbru on SF) and Andy Prevost (codeworxtech) took over the project in 2004.
- Became an Apache incubator project on Google Code in 2010, managed by Jim Jagielski.
- Marcus created his fork on [GitHub](https://github.com/Synchro/PHPMailer).
- Jim and Marcus decide to join forces and use GitHub as the canonical and official repo for PHPMailer.
- PHPMailer moves to the [PHPMailer organisation](https://github.com/PHPMailer) on GitHub.
### What's changed since moving from SourceForge?
- Official successor to the SourceForge and Google Code projects.
- Test suite.
- Continuous integration with Travis-CI.
- Composer support.
- Public development.
- Additional languages and language strings.
- CRAM-MD5 authentication support.
- Preserves full repo history of authors, commits and branches from the original SourceForge project.
+1
View File
@@ -0,0 +1 @@
5.2.14
Loaded 100 of 332 files, more files were not shown because too many files have changed in this diff. Show more