Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6797c85480 | ||
|
|
2c9ff2bb52 | ||
|
|
cc2b5c246d | ||
|
|
c337bfdf88 | ||
|
|
cb5603008a | ||
|
|
9d147b5e6c | ||
|
|
aabc82ee6c | ||
|
|
40aff270cd | ||
|
|
851a21a3c1 | ||
|
|
d5b7dd165d | ||
|
|
beb7a86f2a | ||
|
|
a6327afac4 | ||
|
|
30305d78dc | ||
|
|
bb1fd4d3ab | ||
|
|
a75e00f9e0 | ||
|
|
ad67fca323 | ||
|
|
614dce643c | ||
|
|
c0cd45cc18 | ||
|
|
f3e7dbbb43 | ||
|
|
5247359e39 | ||
|
|
4ed4938cf1 | ||
|
|
158d9040d2 | ||
|
|
aebfc70b10 | ||
|
|
69ca119b10 | ||
|
|
be15f890c9 | ||
|
|
bc71241846 | ||
|
|
4bcce2696c | ||
|
|
7083bb0899 | ||
|
|
c7b1d0ee96 | ||
|
|
ba52e4ab6f | ||
|
|
e47156ede6 | ||
|
|
36ef8e6447 | ||
|
|
eb154efa24 | ||
|
|
9bf15fdf32 | ||
|
|
353a0d9409 | ||
|
|
0535b6d26a |
+59
-4
@@ -57,12 +57,20 @@ function is_checked(elements_name)
|
||||
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;
|
||||
else
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
function delete_confirm2(msg)
|
||||
@@ -71,4 +79,51 @@ function delete_confirm2(msg)
|
||||
return true;
|
||||
else
|
||||
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;
|
||||
});
|
||||
});
|
||||
@@ -346,6 +346,54 @@ function order_select($fld, $sel='')
|
||||
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'])
|
||||
{
|
||||
|
||||
@@ -11,7 +11,13 @@ $menu['menu100'] = array (
|
||||
array('100900', '캐시파일 일괄삭제',G5_ADMIN_URL.'/cache_file_delete.php', 'cf_cache', 1),
|
||||
array('100910', '캡챠파일 일괄삭제',G5_ADMIN_URL.'/captcha_file_delete.php', 'cf_captcha', 1),
|
||||
array('100920', '썸네일파일 일괄삭제',G5_ADMIN_URL.'/thumbnail_file_delete.php', 'cf_thumbnail', 1),
|
||||
array('100500', 'phpinfo()', G5_ADMIN_URL.'/phpinfo.php', 'cf_phpinfo'),
|
||||
array('100400', '부가서비스', G5_ADMIN_URL.'/service.php', 'cf_service')
|
||||
array('100500', 'phpinfo()', G5_ADMIN_URL.'/phpinfo.php', 'cf_phpinfo')
|
||||
);
|
||||
|
||||
if(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE) {
|
||||
$menu['menu100'][] = array('100510', 'Browscap 업데이트', G5_ADMIN_URL.'/browscap.php', 'cf_browscap');
|
||||
$menu['menu100'][] = array('100520', '접속로그 변환', G5_ADMIN_URL.'/browscap_convert.php', 'cf_visit_cnvrt');
|
||||
}
|
||||
|
||||
$menu['menu100'][] = array('100400', '부가서비스', G5_ADMIN_URL.'/service.php', 'cf_service');
|
||||
?>
|
||||
@@ -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
@@ -5,8 +5,6 @@ include_once('./_common.php');
|
||||
if ($is_admin != 'super')
|
||||
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_search = " where (1) ";
|
||||
@@ -73,7 +71,7 @@ $colspan = 5;
|
||||
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
|
||||
<input type="hidden" name="stx" value="<?php echo $stx ?>">
|
||||
<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">
|
||||
<table>
|
||||
@@ -168,7 +166,7 @@ echo $pagelist;
|
||||
<input type="hidden" name="sst" value="<?php echo $sst ?>">
|
||||
<input type="hidden" name="sod" value="<?php echo $sod ?>">
|
||||
<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">
|
||||
<h2 class="h2_frm">관리권한 추가</h2>
|
||||
|
||||
@@ -7,7 +7,7 @@ check_demo();
|
||||
if ($is_admin != 'super')
|
||||
alert('최고관리자만 접근 가능합니다.');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
$count = count($_POST['chk']);
|
||||
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@ $mb = get_member($mb_id);
|
||||
if (!$mb['mb_id'])
|
||||
alert('존재하는 회원아이디가 아닙니다.');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
$sql = " insert into {$g5['auth_table']}
|
||||
set mb_id = '{$_POST['mb_id']}',
|
||||
|
||||
@@ -8,11 +8,14 @@ $g5['title'] = '게시판 복사';
|
||||
include_once(G5_PATH.'/head.sub.php');
|
||||
?>
|
||||
|
||||
<script src="<?php echo G5_ADMIN_URL ?>/admin.js"></script>
|
||||
|
||||
<div class="new_win">
|
||||
<h1><?php echo $g5['title']; ?></h1>
|
||||
|
||||
<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="token" value="">
|
||||
|
||||
<div class="tbl_frm01 tbl_wrap">
|
||||
<table>
|
||||
|
||||
+22
-20
@@ -4,6 +4,8 @@ include_once('./_common.php');
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
check_admin_token();
|
||||
|
||||
$target_table = trim($_POST['target_table']);
|
||||
$target_subject = trim($_POST['target_subject']);
|
||||
|
||||
@@ -95,26 +97,26 @@ $sql = " insert into {$g5['board_table']}
|
||||
bo_use_cert = '{$board[bo_use_cert]}',
|
||||
bo_use_sns = '{$board[bo_use_sns]}',
|
||||
bo_sort_field = '{$board['bo_sort_field']}',
|
||||
bo_1_subj = '{$board['bo_1_subj']}',
|
||||
bo_2_subj = '{$board['bo_2_subj']}',
|
||||
bo_3_subj = '{$board['bo_3_subj']}',
|
||||
bo_4_subj = '{$board['bo_4_subj']}',
|
||||
bo_5_subj = '{$board['bo_5_subj']}',
|
||||
bo_6_subj = '{$board['bo_6_subj']}',
|
||||
bo_7_subj = '{$board['bo_7_subj']}',
|
||||
bo_8_subj = '{$board['bo_8_subj']}',
|
||||
bo_9_subj = '{$board['bo_9_subj']}',
|
||||
bo_10_subj = '{$board['bo_10_subj']}',
|
||||
bo_1 = '{$board['bo_1']}',
|
||||
bo_2 = '{$board['bo_2']}',
|
||||
bo_3 = '{$board['bo_3']}',
|
||||
bo_4 = '{$board['bo_4']}',
|
||||
bo_5 = '{$board['bo_5']}',
|
||||
bo_6 = '{$board['bo_6']}',
|
||||
bo_7 = '{$board['bo_7']}',
|
||||
bo_8 = '{$board['bo_8']}',
|
||||
bo_9 = '{$board['bo_9']}',
|
||||
bo_10 = '{$board['bo_10']}' ";
|
||||
bo_1_subj = '".addslashes($board['bo_1_subj'])."',
|
||||
bo_2_subj = '".addslashes($board['bo_2_subj'])."',
|
||||
bo_3_subj = '".addslashes($board['bo_3_subj'])."',
|
||||
bo_4_subj = '".addslashes($board['bo_4_subj'])."',
|
||||
bo_5_subj = '".addslashes($board['bo_5_subj'])."',
|
||||
bo_6_subj = '".addslashes($board['bo_6_subj'])."',
|
||||
bo_7_subj = '".addslashes($board['bo_7_subj'])."',
|
||||
bo_8_subj = '".addslashes($board['bo_8_subj'])."',
|
||||
bo_9_subj = '".addslashes($board['bo_9_subj'])."',
|
||||
bo_10_subj = '".addslashes($board['bo_10_subj'])."',
|
||||
bo_1 = '".addslashes($board['bo_1'])."',
|
||||
bo_2 = '".addslashes($board['bo_2'])."',
|
||||
bo_3 = '".addslashes($board['bo_3'])."',
|
||||
bo_4 = '".addslashes($board['bo_4'])."',
|
||||
bo_5 = '".addslashes($board['bo_5'])."',
|
||||
bo_6 = '".addslashes($board['bo_6'])."',
|
||||
bo_7 = '".addslashes($board['bo_7'])."',
|
||||
bo_8 = '".addslashes($board['bo_8'])."',
|
||||
bo_9 = '".addslashes($board['bo_9'])."',
|
||||
bo_10 = '".addslashes($board['bo_10'])."' ";
|
||||
sql_query($sql, false);
|
||||
|
||||
// 게시판 폴더 생성
|
||||
|
||||
@@ -166,6 +166,7 @@ $frm_submit .= '</div>';
|
||||
<input type="hidden" name="sst" value="<?php echo $sst ?>">
|
||||
<input type="hidden" name="sod" value="<?php echo $sod ?>">
|
||||
<input type="hidden" name="page" value="<?php echo $page ?>">
|
||||
<input type="hidden" name="token" value="">
|
||||
|
||||
<section id="anc_bo_basic">
|
||||
<h2 class="h2_frm">게시판 기본 설정</h2>
|
||||
|
||||
@@ -7,6 +7,8 @@ if ($w == 'u')
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
check_admin_token();
|
||||
|
||||
if (!$_POST['gr_id']) { alert('그룹 ID는 반드시 선택하세요.'); }
|
||||
if (!$bo_table) { alert('게시판 TABLE명은 반드시 입력하세요.'); }
|
||||
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) { alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); }
|
||||
|
||||
@@ -51,7 +51,7 @@ if ($_POST['act_button'] == "선택수정") {
|
||||
|
||||
auth_check($auth[$sub_menu], 'd');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
// _BOARD_DELETE_ 상수를 선언해야 board_delete.inc.php 가 정상 작동함
|
||||
define('_BOARD_DELETE_', true);
|
||||
|
||||
@@ -38,6 +38,7 @@ include_once('./admin.head.php');
|
||||
<input type="hidden" name="sst" value="<?php echo $sst ?>">
|
||||
<input type="hidden" name="sod" value="<?php echo $sod ?>">
|
||||
<input type="hidden" name="page" value="<?php echo $page ?>">
|
||||
<input type="hidden" name="token" value="">
|
||||
|
||||
<div class="tbl_frm01 tbl_wrap">
|
||||
<table>
|
||||
|
||||
@@ -9,6 +9,8 @@ auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
if ($is_admin != 'super' && $w == '') alert('최고관리자만 접근 가능합니다.');
|
||||
|
||||
check_admin_token();
|
||||
|
||||
if (!preg_match("/^([A-Za-z0-9_]{1,10})$/", $_POST['gr_id']))
|
||||
alert('그룹 ID는 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (10자 이내)');
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ $colspan = 10;
|
||||
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
|
||||
<input type="hidden" name="stx" value="<?php echo $stx ?>">
|
||||
<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">
|
||||
<table>
|
||||
|
||||
@@ -8,6 +8,8 @@ check_demo();
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
check_admin_token();
|
||||
|
||||
$count = count($_POST['chk']);
|
||||
|
||||
if(!$count)
|
||||
|
||||
@@ -4,8 +4,6 @@ include_once('./_common.php');
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
$token = get_token();
|
||||
|
||||
$mb = get_member($mb_id);
|
||||
if (!$mb['mb_id'])
|
||||
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">
|
||||
<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">
|
||||
<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>
|
||||
|
||||
@@ -28,7 +28,7 @@ if ($w == '')
|
||||
}
|
||||
else
|
||||
{
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
$sql = " insert into {$g5['group_member_table']}
|
||||
set gr_id = '{$_POST['gr_id']}',
|
||||
@@ -45,7 +45,7 @@ else if ($w == 'd' || $w == 'ld')
|
||||
if(!$count)
|
||||
alert('삭제할 목록을 하나이상 선택해 주세요.');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
for($i=0; $i<$count; $i++) {
|
||||
$gm_id = $_POST['chk'][$i];
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
$sub_menu = "100510";
|
||||
include_once('./_common.php');
|
||||
|
||||
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE))
|
||||
alert('사용할 수 없는 기능입니다.', G5_ADMIN_URL);
|
||||
|
||||
if ($is_admin != 'super')
|
||||
alert('최고관리자만 접근 가능합니다.');
|
||||
|
||||
$g5['title'] = 'Browscap 업데이트';
|
||||
include_once('./admin.head.php');
|
||||
?>
|
||||
|
||||
<div id="processing">
|
||||
<p>Browscap 정보를 업데이트하시려면 아래 업데이트 버튼을 클릭해 주세요.</p>
|
||||
<button type="button" id="run_update">업데이트</button>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$("#run_update").on("click", function() {
|
||||
$("#processing").html('<div class="update_processing"></div><p>Browscap 정보를 업데이트 중입니다.</p>');
|
||||
|
||||
$.ajax({
|
||||
url: "./browscap_update.php",
|
||||
async: true,
|
||||
cache: false,
|
||||
dataType: "html",
|
||||
success: function(data) {
|
||||
if(data != "") {
|
||||
alert(data);
|
||||
return false;
|
||||
}
|
||||
|
||||
$("#processing").html("<div class='check_processing'></div><p>Browscap 정보를 업데이트 했습니다.</p>");
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<?php
|
||||
include_once('./admin.tail.php');
|
||||
?>
|
||||
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
$sub_menu = "100520";
|
||||
include_once('./_common.php');
|
||||
|
||||
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE))
|
||||
alert('사용할 수 없는 기능입니다.', G5_ADMIN_URL);
|
||||
|
||||
if ($is_admin != 'super')
|
||||
alert('최고관리자만 접근 가능합니다.');
|
||||
|
||||
$rows = preg_replace('#[^0-9]#', '', $_GET['rows']);
|
||||
if(!$rows)
|
||||
$rows = 100;
|
||||
|
||||
$g5['title'] = '접속로그 변환';
|
||||
include_once('./admin.head.php');
|
||||
?>
|
||||
|
||||
<div id="processing">
|
||||
<p>접속로그 정보를 Browscap 정보로 변환하시려면 아래 업데이트 버튼을 클릭해 주세요.</p>
|
||||
<button type="button" id="run_update">업데이트</button>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
$(document).on("click", "#run_update", function() {
|
||||
$("#processing").html('<div class="update_processing"></div><p>Browscap 정보로 변환 중입니다.</p>');
|
||||
|
||||
$.ajax({
|
||||
method: "GET",
|
||||
url: "./browscap_converter.php",
|
||||
data: { rows: "<?php echo $rows; ?>" },
|
||||
async: true,
|
||||
cache: false,
|
||||
dataType: "html",
|
||||
success: function(data) {
|
||||
$("#processing").html(data);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<?php
|
||||
include_once('./admin.tail.php');
|
||||
?>
|
||||
@@ -0,0 +1,75 @@
|
||||
<?php
|
||||
ini_set('memory_limit', '-1');
|
||||
include_once('./_common.php');
|
||||
|
||||
// clean the output buffer
|
||||
ob_end_clean();
|
||||
|
||||
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE))
|
||||
die('사용할 수 없는 기능입니다.');
|
||||
|
||||
if($is_admin != 'super')
|
||||
die('최고관리자로 로그인 후 실행해 주세요.');
|
||||
|
||||
// browscap cache 파일 체크
|
||||
if(!is_file(G5_DATA_PATH.'/cache/browscap_cache.php')) {
|
||||
echo '<p>Browscap 정보가 없습니다. 아래 링크로 이동해 Browscap 정보를 업데이트 하세요.</p>'.PHP_EOL;
|
||||
echo '<p><a href="'.G5_ADMIN_URL.'/browscap.php">Browscap 업데이트</a></p>'.PHP_EOL;
|
||||
exit;
|
||||
}
|
||||
|
||||
include_once(G5_PLUGIN_PATH.'/browscap/Browscap.php');
|
||||
$browscap = new phpbrowscap\Browscap(G5_DATA_PATH.'/cache');
|
||||
$browscap->doAutoUpdate = false;
|
||||
$browscap->cacheFilename = 'browscap_cache.php';
|
||||
|
||||
// 데이터 변환
|
||||
$rows = preg_replace('#[^0-9]#', '', $_GET['rows']);
|
||||
if(!$rows)
|
||||
$rows = 100;
|
||||
|
||||
$sql_common = " from {$g5['visit_table']} where vi_agent <> '' and ( vi_browser = '' or vi_os = '' or vi_device = '' ) ";
|
||||
$sql_order = " order by vi_id desc ";
|
||||
$sql_limit = " limit 0, $rows ";
|
||||
|
||||
$sql = " select count(vi_id) as cnt $sql_common ";
|
||||
$row = sql_fetch($sql);
|
||||
$total_count = $row['cnt'];
|
||||
|
||||
$sql = " select vi_id, vi_agent, vi_browser, vi_os, vi_device
|
||||
$sql_common
|
||||
$sql_order
|
||||
$sql_limit ";
|
||||
$result = sql_query($sql);
|
||||
|
||||
$cnt = 0;
|
||||
for($i=0; $row=sql_fetch_array($result); $i++) {
|
||||
$info = $browscap->getBrowser($row['vi_agent']);
|
||||
|
||||
$brow = $row['vi_browser'];
|
||||
if(!$brow)
|
||||
$brow = $info->Comment;
|
||||
|
||||
$os = $row['vi_os'];
|
||||
if(!$os)
|
||||
$os = $info->Platform;
|
||||
|
||||
$device = $row['vi_device'];
|
||||
if(!$device)
|
||||
$device = $info->Device_Type;
|
||||
|
||||
$sql2 = " update {$g5['visit_table']}
|
||||
set vi_browser = '$brow',
|
||||
vi_os = '$os',
|
||||
vi_device = '$device'
|
||||
where vi_id = '{$row['vi_id']}' ";
|
||||
sql_query($sql2);
|
||||
|
||||
$cnt++;
|
||||
}
|
||||
|
||||
if(($total_count - $cnt) == 0 || $total_count == 0)
|
||||
echo '<div class="check_processing"></div><p>변환완료</p>';
|
||||
else
|
||||
echo '<p>총 '.number_format($total_count).'건 중 '.number_format($cnt).'건 변환완료<br><br>접속로그를 추가로 변환하시려면 아래 업데이트 버튼을 클릭해 주세요.</p><button type="button" id="run_update">업데이트</button>';
|
||||
?>
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
ini_set('memory_limit', '-1');
|
||||
|
||||
$sub_menu = "100510";
|
||||
include_once('./_common.php');
|
||||
|
||||
// clean the output buffer
|
||||
ob_end_clean();
|
||||
|
||||
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE))
|
||||
die('사용할 수 없는 기능입니다.');
|
||||
|
||||
if ($is_admin != 'super')
|
||||
die('최고관리자만 접근 가능합니다.');
|
||||
|
||||
include_once(G5_PLUGIN_PATH.'/browscap/Browscap.php');
|
||||
|
||||
$browscap = new phpbrowscap\Browscap(G5_DATA_PATH.'/cache');
|
||||
$browscap->updateMethod = 'cURL';
|
||||
$browscap->cacheFilename = 'browscap_cache.php';
|
||||
$browscap->updateCache();
|
||||
|
||||
die('');
|
||||
?>
|
||||
+9
-3
@@ -4,8 +4,6 @@ include_once('./_common.php');
|
||||
|
||||
auth_check($auth[$sub_menu], 'r');
|
||||
|
||||
$token = get_token();
|
||||
|
||||
if ($is_admin != 'super')
|
||||
alert('최고관리자만 접근 가능합니다.');
|
||||
|
||||
@@ -186,6 +184,14 @@ if(!isset($config['cf_sms_type'])) {
|
||||
ADD `cf_sms_type` varchar(10) NOT NULL DEFAULT '' AFTER `cf_sms_use` ", true);
|
||||
}
|
||||
|
||||
// 접속자 정보 필드 추가
|
||||
if(!sql_query(" select vi_browser from {$g5['visit_table']} limit 1 ")) {
|
||||
sql_query(" ALTER TABLE `{$g5['visit_table']}`
|
||||
ADD `vi_browser` varchar(255) NOT NULL DEFAULT '' AFTER `vi_agent`,
|
||||
ADD `vi_os` varchar(255) NOT NULL DEFAULT '' AFTER `vi_browser`,
|
||||
ADD `vi_device` varchar(255) NOT NULL DEFAULT '' AFTER `vi_os` ", true);
|
||||
}
|
||||
|
||||
if(!$config['cf_faq_skin']) $config['cf_faq_skin'] = "basic";
|
||||
if(!$config['cf_mobile_faq_skin']) $config['cf_mobile_faq_skin'] = "basic";
|
||||
|
||||
@@ -221,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);">
|
||||
<input type="hidden" name="token" value="<?php echo $token ?>" id="token">
|
||||
<input type="hidden" name="token" value="" id="token">
|
||||
|
||||
<section id="anc_cf_basic">
|
||||
<h2 class="h2_frm">홈페이지 기본환경 설정</h2>
|
||||
|
||||
@@ -13,7 +13,7 @@ $mb = get_member($cf_admin);
|
||||
if (!$mb['mb_id'])
|
||||
alert('최고관리자 회원아이디가 존재하지 않습니다.');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
// 본인확인을 사용할 경우 아이핀, 휴대폰인증 중 하나는 선택되어야 함
|
||||
if($_POST['cf_cert_use'] && !$_POST['cf_cert_ipin'] && !$_POST['cf_cert_hp'])
|
||||
|
||||
@@ -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" >
|
||||
<input type="hidden" name="w" value="<?php echo $w; ?>">
|
||||
<input type="hidden" name="co_html" value="1">
|
||||
<input type="hidden" name="token" value="">
|
||||
|
||||
<div class="tbl_frm01 tbl_wrap">
|
||||
<table>
|
||||
|
||||
@@ -10,6 +10,8 @@ if ($w == 'd')
|
||||
else
|
||||
auth_check($auth[$sub_menu], "w");
|
||||
|
||||
check_admin_token();
|
||||
|
||||
@mkdir(G5_DATA_PATH."/content", G5_DIR_PERMISSION);
|
||||
@chmod(G5_DATA_PATH."/content", G5_DIR_PERMISSION);
|
||||
|
||||
|
||||
+1
-1
@@ -78,7 +78,7 @@ $result = sql_query($sql);
|
||||
<td class="td_mng">
|
||||
<a href="./contentform.php?w=u&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&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&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>
|
||||
</tr>
|
||||
<?php
|
||||
|
||||
+12
-2
@@ -395,6 +395,9 @@ td.td_grpset {width:160px;border-left:1px solid #e9ecee;text-align:center}
|
||||
.td_tdiv {border-bottom:1px solid #c9c9c9 !important}
|
||||
.td_tel {width:80px;text-align:center}
|
||||
.td_test {width:50px;text-align:center}
|
||||
.td_category1{width:130px;text-align:center}
|
||||
.td_category2{width:100px;text-align:center}
|
||||
.td_category3{width:80px;text-align:center}
|
||||
|
||||
.txt_true {color:#e8180c}
|
||||
.txt_false {color:#ccc}
|
||||
@@ -730,7 +733,7 @@ strong.sodr_nonpay {display:block;padding:5px 0;text-align:right}
|
||||
#theme_list li .tmli_if:hover button.tmli_dt{display:block}
|
||||
#theme_list li .theme_sl{float:left;border:none;margin-top:5px;padding:0 5px;height:26px;background:#999;color:#fff}
|
||||
#theme_list li .theme_sl:hover{background:#ff3061}
|
||||
#theme_list li .theme_deactive{margin-left:4px}
|
||||
#theme_list li .theme_deactive{margin-left:4px}
|
||||
#theme_list li .theme_sl_use{background:#ff3061;line-height:26px}
|
||||
#theme_list li .theme_pr{float:right;margin-top:5px;padding:0 5px;height:24px;line-height:24px; border: 1px solid #ccc; background: #fafafa; }
|
||||
#theme_list li .theme_preview{ float: right; margin-top: 5px; padding:0 5px;height:26px; border: 1px solid #ccc; background: #fafafa; margin-right:3px}
|
||||
@@ -763,4 +766,11 @@ strong.sodr_nonpay {display:block;padding:5px 0;text-align:right}
|
||||
/*전송실패 문자 재전송 내역*/
|
||||
.sms_table{padding:0 20px 40px;}
|
||||
.sms_table table th{border:1px solid #ddd;padding:9px 0}
|
||||
.sms_table table td{border:1px solid #ddd;text-align:center;width:16%;padding:9px 0}
|
||||
.sms_table table td{border:1px solid #ddd;text-align:center;width:16%;padding:9px 0}
|
||||
|
||||
/* Browscap */
|
||||
.update_processing{width:300px;height:300px;margin:0 auto;background:url(../img/ajax_loader.gif) no-repeat 0 0}
|
||||
#processing{margin: 0 auto;padding: 70px 0;max-width: 800px;border: 1px solid #eee;background: #f9f9f9;text-align:center;}
|
||||
#processing p{font-size:1.2em}
|
||||
.check_processing {width:300px;height:300px;margin:0 auto;background:url(../img/check.png) no-repeat 50% 50% }
|
||||
#processing button{background:#ff3061;border:none;color:#fff;padding: 15px;width:150px;margin-top:15px}
|
||||
@@ -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="fm_id" value="<?php echo $fm_id; ?>">
|
||||
<input type="hidden" name="fa_id" value="<?php echo $fa_id; ?>">
|
||||
<input type="hidden" name="token" value="">
|
||||
|
||||
<div class="tbl_frm01 tbl_wrap">
|
||||
<table>
|
||||
|
||||
@@ -10,6 +10,8 @@ if ($W == 'd')
|
||||
else
|
||||
auth_check($auth[$sub_menu], "w");
|
||||
|
||||
check_admin_token();
|
||||
|
||||
$sql_common = " fa_subject = '$fa_subject',
|
||||
fa_content = '$fa_content',
|
||||
fa_order = '$fa_order' ";
|
||||
|
||||
+1
-1
@@ -69,7 +69,7 @@ $result = sql_query($sql);
|
||||
<td class="td_num"><?php echo $row['fa_order']; ?></td>
|
||||
<td class="td_mngsmall">
|
||||
<a href="./faqform.php?w=u&fm_id=<?php echo $row['fm_id']; ?>&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&fm_id=<?php echo $row['fm_id']; ?>&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&fm_id=<?php echo $row['fm_id']; ?>&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>
|
||||
</tr>
|
||||
|
||||
|
||||
@@ -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">
|
||||
<input type="hidden" name="w" value="<?php echo $w; ?>">
|
||||
<input type="hidden" name="fm_id" value="<?php echo $fm_id; ?>">
|
||||
<input type="hidden" name="token" value="">
|
||||
|
||||
<div class="tbl_frm01 tbl_wrap">
|
||||
<table>
|
||||
|
||||
@@ -10,6 +10,8 @@ if ($W == 'd')
|
||||
else
|
||||
auth_check($auth[$sub_menu], "w");
|
||||
|
||||
check_admin_token();
|
||||
|
||||
@mkdir(G5_DATA_PATH."/faq", G5_DIR_PERMISSION);
|
||||
@chmod(G5_DATA_PATH."/faq", G5_DIR_PERMISSION);
|
||||
|
||||
|
||||
@@ -107,7 +107,7 @@ $result = sql_query($sql);
|
||||
<td class="td_mng">
|
||||
<a href="./faqmasterform.php?w=u&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&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&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>
|
||||
</tr>
|
||||
<?php
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 7.2 KiB |
+1
-1
@@ -84,7 +84,7 @@ $colspan = 12;
|
||||
else
|
||||
{
|
||||
$s_mod = '<a href="./member_form.php?$qstr&w=u&mb_id='.$row['mb_id'].'">수정</a>';
|
||||
$s_del = '<a href="javascript:del(\'./member_delete.php?'.$qstr.'&w=d&mb_id='.$row['mb_id'].'&url='.$_SERVER['SCRIPT_NAME'].'\');">삭제</a>';
|
||||
$s_del = '<a href="./member_delete.php?'.$qstr.'&w=d&mb_id='.$row['mb_id'].'&url='.$_SERVER['SCRIPT_NAME'].'" onclick="return delete_confirm(this);">삭제</a>';
|
||||
}
|
||||
$s_grp = '<a href="./boardgroupmember_form.php?mb_id='.$row['mb_id'].'">그룹</a>';
|
||||
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ check_demo();
|
||||
|
||||
auth_check($auth[$sub_menu], 'd');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
$count = count($_POST['chk']);
|
||||
|
||||
|
||||
+1
-3
@@ -5,8 +5,6 @@ include_once(G5_EDITOR_LIB);
|
||||
|
||||
auth_check($auth[$sub_menu], 'r');
|
||||
|
||||
$token = get_token();
|
||||
|
||||
$html_title = '회원메일';
|
||||
|
||||
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">
|
||||
<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="token" value="<?php echo $token ?>" id="token">
|
||||
<input type="hidden" name="token" value="" id="token">
|
||||
|
||||
<div class="tbl_frm01 tbl_wrap">
|
||||
<table>
|
||||
|
||||
+1
-1
@@ -82,7 +82,7 @@ $colspan = 7;
|
||||
</div>
|
||||
|
||||
<div class="btn_list01 btn_list">
|
||||
<button type="submit">선택삭제</button>
|
||||
<input type="submit" value="선택삭제">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
@@ -4,8 +4,6 @@ include_once('./_common.php');
|
||||
|
||||
auth_check($auth[$sub_menu], 'r');
|
||||
|
||||
$token = get_token();
|
||||
|
||||
$ma_last_option = "";
|
||||
|
||||
$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">
|
||||
<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 ?>">
|
||||
|
||||
<div class="tbl_head01 tbl_wrap">
|
||||
|
||||
@@ -8,7 +8,7 @@ $html_title = '회원메일 발송';
|
||||
|
||||
check_demo();
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
include_once('./admin.head.php');
|
||||
include_once(G5_LIB_PATH.'/mailer.lib.php');
|
||||
|
||||
+1
-1
@@ -7,7 +7,7 @@ if ($w == 'u' || $w == 'd')
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
if ($w == '')
|
||||
{
|
||||
|
||||
@@ -17,7 +17,7 @@ else if (is_admin($mb['mb_id']) == "super")
|
||||
else if ($mb['mb_level'] >= $member['mb_level'])
|
||||
alert("자신보다 권한이 높거나 같은 회원은 삭제할 수 없습니다.");
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
// 회원자료 삭제
|
||||
member_delete($mb['mb_id']);
|
||||
|
||||
+2
-4
@@ -4,8 +4,6 @@ include_once('./_common.php');
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
$token = get_token();
|
||||
|
||||
if ($w == '')
|
||||
{
|
||||
$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="sod" value="<?php echo $sod ?>">
|
||||
<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">
|
||||
<table>
|
||||
@@ -215,7 +213,7 @@ add_javascript(G5_POSTCODE_JS, 0); //다음 주소 js
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row"><label for="mb_zip1">주소</label></th>
|
||||
<th scope="row">주소</th>
|
||||
<td colspan="3" class="td_addr_line">
|
||||
<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">
|
||||
|
||||
@@ -8,7 +8,7 @@ if ($w == 'u')
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
$mb_id = trim($_POST['mb_id']);
|
||||
|
||||
|
||||
@@ -114,6 +114,7 @@ $colspan = 16;
|
||||
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
|
||||
<input type="hidden" name="stx" value="<?php echo $stx ?>">
|
||||
<input type="hidden" name="page" value="<?php echo $page ?>">
|
||||
<input type="hidden" name="token" value="">
|
||||
|
||||
<div class="tbl_head02 tbl_wrap">
|
||||
<table>
|
||||
|
||||
@@ -6,7 +6,7 @@ check_demo();
|
||||
|
||||
auth_check($auth[$sub_menu], "d");
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
$msg = "";
|
||||
for ($i=0; $i<count($chk); $i++)
|
||||
|
||||
+1
-3
@@ -5,8 +5,6 @@ include_once('./_common.php');
|
||||
if ($is_admin != 'super')
|
||||
alert('최고관리자만 접근 가능합니다.');
|
||||
|
||||
$token = get_token();
|
||||
|
||||
// 메뉴테이블 생성
|
||||
if( !isset($g5['menu_table']) ){
|
||||
die('<meta charset="utf-8">dbconfig.php 파일에 <strong>$g5[\'menu_table\'] = G5_TABLE_PREFIX.\'menu\';</strong> 를 추가해 주세요.');
|
||||
@@ -40,7 +38,7 @@ $colspan = 7;
|
||||
</div>
|
||||
|
||||
<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">
|
||||
<button type="button" onclick="return add_menu();">메뉴추가<span class="sound_only"> 새창</span></button>
|
||||
|
||||
@@ -7,7 +7,7 @@ check_demo();
|
||||
if ($is_admin != 'super')
|
||||
alert('최고관리자만 접근 가능합니다.');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
// 이전 메뉴정보 삭제
|
||||
$sql = " delete from {$g5['menu_table']} ";
|
||||
|
||||
@@ -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">
|
||||
<input type="hidden" name="w" value="<?php echo $w; ?>">
|
||||
<input type="hidden" name="nw_id" value="<?php echo $nw_id; ?>">
|
||||
<input type="hidden" name="token" value="">
|
||||
|
||||
<div class="local_desc01 local_desc">
|
||||
<p>초기화면 접속 시 자동으로 뜰 팝업레이어를 설정합니다.</p>
|
||||
|
||||
@@ -10,6 +10,8 @@ if ($w == 'd')
|
||||
else
|
||||
auth_check($auth[$sub_menu], "w");
|
||||
|
||||
check_admin_token();
|
||||
|
||||
$sql_common = " nw_device = '{$_POST['nw_device']}',
|
||||
nw_begin_time = '{$_POST['nw_begin_time']}',
|
||||
nw_end_time = '{$_POST['nw_end_time']}',
|
||||
|
||||
+1
-1
@@ -98,7 +98,7 @@ $result = sql_query($sql);
|
||||
<td class="td_num"><?php echo $row['nw_height']; ?>px</td>
|
||||
<td class="td_mngsmall">
|
||||
<a href="./newwinform.php?w=u&nw_id=<?php echo $row['nw_id']; ?>"><span class="sound_only"><?php echo $row['nw_subject']; ?> </span>수정</a>
|
||||
<a href="./newwinformupdate.php?w=d&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&nw_id=<?php echo $row['nw_id']; ?>" onclick="return delete_confirm(this);"><span class="sound_only"><?php echo $row['nw_subject']; ?> </span>삭제</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
|
||||
+1
-3
@@ -4,8 +4,6 @@ include_once('./_common.php');
|
||||
|
||||
auth_check($auth[$sub_menu], 'r');
|
||||
|
||||
$token = get_token();
|
||||
|
||||
$sql_common = " from {$g5['point_table']} ";
|
||||
|
||||
$sql_search = " where (1) ";
|
||||
@@ -100,7 +98,7 @@ else
|
||||
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
|
||||
<input type="hidden" name="stx" value="<?php echo $stx ?>">
|
||||
<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">
|
||||
<table>
|
||||
|
||||
@@ -6,7 +6,7 @@ check_demo();
|
||||
|
||||
auth_check($auth[$sub_menu], 'd');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
$count = count($_POST['chk']);
|
||||
if(!$count)
|
||||
|
||||
@@ -4,7 +4,7 @@ include_once('./_common.php');
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
$mb_id = $_POST['mb_id'];
|
||||
$po_point = $_POST['po_point'];
|
||||
|
||||
+1
-1
@@ -6,7 +6,7 @@ check_demo();
|
||||
|
||||
auth_check($auth[$sub_menu], 'd');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
$count = count($_POST['chk']);
|
||||
|
||||
|
||||
+1
-3
@@ -4,8 +4,6 @@ include_once('./_common.php');
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
$token = get_token();
|
||||
|
||||
$html_title = '투표';
|
||||
if ($w == '')
|
||||
$html_title .= ' 생성';
|
||||
@@ -28,7 +26,7 @@ include_once('./admin.head.php');
|
||||
<input type="hidden" name="sst" value="<?php echo $sst ?>">
|
||||
<input type="hidden" name="sod" value="<?php echo $sod ?>">
|
||||
<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">
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ if ($w == 'u' || $w == 'd')
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
if ($w == '')
|
||||
{
|
||||
|
||||
+2
-4
@@ -4,8 +4,6 @@ include_once('./_common.php');
|
||||
|
||||
auth_check($auth[$sub_menu], 'r');
|
||||
|
||||
$token = get_token();
|
||||
|
||||
$sql_common = " from {$g5['poll_table']} ";
|
||||
|
||||
$sql_search = " where (1) ";
|
||||
@@ -79,7 +77,7 @@ $colspan = 7;
|
||||
<input type="hidden" name="sfl" value="<?php echo $sfl ?>">
|
||||
<input type="hidden" name="stx" value="<?php echo $stx ?>">
|
||||
<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">
|
||||
<table>
|
||||
@@ -134,7 +132,7 @@ $colspan = 7;
|
||||
</div>
|
||||
|
||||
<div class="btn_list01 btn_list">
|
||||
<button type="submit">선택삭제</button>
|
||||
<input type="submit" value="선택삭제">
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
+1
-3
@@ -5,8 +5,6 @@ include_once(G5_EDITOR_LIB);
|
||||
|
||||
auth_check($auth[$sub_menu], 'r');
|
||||
|
||||
$token = get_token();
|
||||
|
||||
$g5['title'] = '1:1문의 설정';
|
||||
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">
|
||||
<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">
|
||||
<h2 class="h2_frm">1:1문의 설정</h2>
|
||||
|
||||
@@ -6,7 +6,7 @@ check_demo();
|
||||
|
||||
auth_check($auth[$sub_menu], 'w');
|
||||
|
||||
check_token();
|
||||
check_admin_token();
|
||||
|
||||
$sql = " update {$g5['qa_config_table']}
|
||||
set qa_title = '{$_POST['qa_title']}',
|
||||
|
||||
@@ -6,6 +6,8 @@ auth_check($auth[$sub_menu], "w");
|
||||
|
||||
check_demo();
|
||||
|
||||
check_admin_token();
|
||||
|
||||
$g5['title'] = "SMS 기본설정";
|
||||
|
||||
// 회신번호 체크
|
||||
|
||||
@@ -4,6 +4,8 @@ include_once("./_common.php");
|
||||
|
||||
auth_check($auth[$sub_menu], "w");
|
||||
|
||||
check_admin_token();
|
||||
|
||||
$g5['title'] = "문자전송중";
|
||||
|
||||
$wr_reply = preg_replace('#[^0-9\-]#', '', trim($wr_reply));
|
||||
@@ -244,7 +246,7 @@ if($config['cf_sms_type'] == 'LMS') {
|
||||
}
|
||||
} else {
|
||||
$SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
|
||||
$result = $SMS->Add($list, $reply, '', '', $wr_message, $booking, $wr_total);
|
||||
$result = $SMS->Add2($list, $reply, '', '', $wr_message, $booking, $wr_total);
|
||||
|
||||
if ($result)
|
||||
{
|
||||
|
||||
@@ -5,6 +5,8 @@ include_once('./_common.php');
|
||||
if ($is_admin != 'super')
|
||||
die('최고관리자만 접근 가능합니다.');
|
||||
|
||||
admin_referer_check();
|
||||
|
||||
$theme = trim($_POST['theme']);
|
||||
$theme_dir = get_theme_dir();
|
||||
|
||||
|
||||
@@ -29,6 +29,9 @@ $query_string = $qstr ? '?'.$qstr : '';
|
||||
<li><a href="./visit_domain.php<?php echo $query_string ?>">도메인</a></li>
|
||||
<li><a href="./visit_browser.php<?php echo $query_string ?>">브라우저</a></li>
|
||||
<li><a href="./visit_os.php<?php echo $query_string ?>">운영체제</a></li>
|
||||
<?php if(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE) { ?>
|
||||
<li><a href="./visit_device.php<?php echo $query_string ?>">접속기기</a></li>
|
||||
<?php } ?>
|
||||
<li><a href="./visit_hour.php<?php echo $query_string ?>">시간</a></li>
|
||||
<li><a href="./visit_week.php<?php echo $query_string ?>">요일</a></li>
|
||||
<li><a href="./visit_date.php<?php echo $query_string ?>">일</a></li>
|
||||
|
||||
@@ -15,7 +15,9 @@ $sql = " select * from {$g5['visit_table']}
|
||||
where vi_date between '{$fr_date}' and '{$to_date}' ";
|
||||
$result = sql_query($sql);
|
||||
while ($row=sql_fetch_array($result)) {
|
||||
$s = get_brow($row['vi_agent']);
|
||||
$s = $row['vi_browser'];
|
||||
if(!$s)
|
||||
$s = get_brow($row['vi_agent']);
|
||||
|
||||
$arr[$s]++;
|
||||
|
||||
@@ -70,7 +72,7 @@ while ($row=sql_fetch_array($result)) {
|
||||
|
||||
<tr class="<?php echo $bg; ?>">
|
||||
<td class="td_num"><?php echo $no ?></td>
|
||||
<td class="td_category"><?php echo $key ?></td>
|
||||
<td class="td_category td_category1"><?php echo $key ?></td>
|
||||
<td>
|
||||
<div class="visit_bar">
|
||||
<span style="width:<?php echo $s_rate ?>%"></span>
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
<?php
|
||||
$sub_menu = "200800";
|
||||
include_once('./_common.php');
|
||||
|
||||
auth_check($auth[$sub_menu], 'r');
|
||||
|
||||
$g5['title'] = '기기별 접속자집계';
|
||||
include_once('./visit.sub.php');
|
||||
|
||||
$colspan = 5;
|
||||
|
||||
$max = 0;
|
||||
$sum_count = 0;
|
||||
$sql = " select * from {$g5['visit_table']}
|
||||
where vi_date between '$fr_date' and '$to_date' ";
|
||||
$result = sql_query($sql);
|
||||
while ($row=sql_fetch_array($result)) {
|
||||
$s = $row['vi_device'];
|
||||
if(!$s)
|
||||
$s = '기타';
|
||||
|
||||
$arr[$s]++;
|
||||
|
||||
if ($arr[$s] > $max) $max = $arr[$s];
|
||||
|
||||
$sum_count++;
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="tbl_head01 tbl_wrap">
|
||||
<table>
|
||||
<caption><?php echo $g5['title']; ?> 목록</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">순위</th>
|
||||
<th scope="col">접속기기</th>
|
||||
<th scope="col">그래프</th>
|
||||
<th scope="col">접속자수</th>
|
||||
<th scope="col">비율(%)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="3">합계</td>
|
||||
<td><strong><?php echo $sum_count ?></strong></td>
|
||||
<td>100%</td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
<tbody>
|
||||
<?php
|
||||
$i = 0;
|
||||
$k = 0;
|
||||
$save_count = -1;
|
||||
$tot_count = 0;
|
||||
if (count($arr)) {
|
||||
arsort($arr);
|
||||
foreach ($arr as $key=>$value) {
|
||||
$count = $arr[$key];
|
||||
if ($save_count != $count) {
|
||||
$i++;
|
||||
$no = $i;
|
||||
$save_count = $count;
|
||||
} else {
|
||||
$no = '';
|
||||
}
|
||||
|
||||
if (!$key) {
|
||||
$key = '기타';
|
||||
}
|
||||
|
||||
$rate = ($count / $sum_count * 100);
|
||||
$s_rate = number_format($rate, 1);
|
||||
|
||||
$bg = 'bg'.($i%2);
|
||||
?>
|
||||
|
||||
<tr class="<?php echo $bg; ?>">
|
||||
<td class="td_num"><?php echo $no ?></td>
|
||||
<td class="td_category td_category1"><?php echo $key ?></td>
|
||||
<td>
|
||||
<div class="visit_bar">
|
||||
<span style="width:<?php echo $s_rate ?>%"></span>
|
||||
</div>
|
||||
</td>
|
||||
<td class="td_numbig"><?php echo $count ?></td>
|
||||
<td class="td_num"><?php echo $s_rate ?></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
}
|
||||
} else {
|
||||
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
include_once('./admin.tail.php');
|
||||
?>
|
||||
+15
-6
@@ -7,7 +7,7 @@ auth_check($auth[$sub_menu], 'r');
|
||||
$g5['title'] = '접속자집계';
|
||||
include_once('./visit.sub.php');
|
||||
|
||||
$colspan = 5;
|
||||
$colspan = 6;
|
||||
|
||||
$sql_common = " from {$g5['visit_table']} ";
|
||||
$sql_search = " where vi_date between '{$fr_date}' and '{$to_date}' ";
|
||||
@@ -41,15 +41,23 @@ $result = sql_query($sql);
|
||||
<th scope="col">IP</th>
|
||||
<th scope="col">접속 경로</th>
|
||||
<th scope="col">브라우저</th>
|
||||
<th scope="col">운영체제</th>
|
||||
<th scope="col">OS</th>
|
||||
<th scope="col">접속기기</th>
|
||||
<th scope="col">일시</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
for ($i=0; $row=sql_fetch_array($result); $i++) {
|
||||
$brow = get_brow($row['vi_agent']);
|
||||
$os = get_os($row['vi_agent']);
|
||||
$brow = $row['vi_browser'];
|
||||
if(!$brow)
|
||||
$brow = get_brow($row['vi_agent']);
|
||||
|
||||
$os = $row['vi_os'];
|
||||
if(!$os)
|
||||
$os = get_os($row['vi_agent']);
|
||||
|
||||
$device = $row['vi_device'];
|
||||
|
||||
$link = '';
|
||||
$link2 = '';
|
||||
@@ -83,8 +91,9 @@ $result = sql_query($sql);
|
||||
<tr class="<?php echo $bg; ?>">
|
||||
<td class="td_category"><?php echo $ip ?></td>
|
||||
<td><?php echo $link ?><?php echo $title ?><?php echo $link2 ?></td>
|
||||
<td class="td_category"><?php echo $brow ?></td>
|
||||
<td class="td_category"><?php echo $os ?></td>
|
||||
<td class="td_category td_category1"><?php echo $brow ?></td>
|
||||
<td class="td_category td_category3"><?php echo $os ?></td>
|
||||
<td class="td_category td_category2"><?php echo $device; ?></td>
|
||||
<td class="td_datetime"><?php echo $row['vi_date'] ?> <?php echo $row['vi_time'] ?></td>
|
||||
</tr>
|
||||
|
||||
|
||||
+4
-2
@@ -15,7 +15,9 @@ $sql = " select * from {$g5['visit_table']}
|
||||
where vi_date between '$fr_date' and '$to_date' ";
|
||||
$result = sql_query($sql);
|
||||
while ($row=sql_fetch_array($result)) {
|
||||
$s = get_os($row['vi_agent']);
|
||||
$s = $row['vi_os'];
|
||||
if(!$s)
|
||||
$s = get_os($row['vi_agent']);
|
||||
|
||||
$arr[$s]++;
|
||||
|
||||
@@ -63,7 +65,7 @@ while ($row=sql_fetch_array($result)) {
|
||||
}
|
||||
|
||||
if (!$key) {
|
||||
$key = '직접';
|
||||
$key = 'Unknown';
|
||||
}
|
||||
|
||||
$rate = ($count / $sum_count * 100);
|
||||
|
||||
+14
-8
@@ -9,7 +9,7 @@ $g5['title'] = '접속자검색';
|
||||
include_once('./admin.head.php');
|
||||
include_once(G5_PLUGIN_PATH.'/jquery-ui/datepicker.php');
|
||||
|
||||
$colspan = 5;
|
||||
$colspan = 6;
|
||||
$listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'">처음</a>'; //페이지 처음으로 (초기화용도)
|
||||
?>
|
||||
|
||||
@@ -36,6 +36,7 @@ $listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'">처음</a>'; //페이지 처
|
||||
<th scope="col">접속 경로</th>
|
||||
<th scope="col">브라우저</th>
|
||||
<th scope="col">OS</th>
|
||||
<th scope="col">접속기기</th>
|
||||
<th scope="col">일시</th>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -68,8 +69,15 @@ $listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'">처음</a>'; //페이지 처
|
||||
$result = sql_query($sql);
|
||||
|
||||
for ($i=0; $row=sql_fetch_array($result); $i++) {
|
||||
$brow = get_brow($row['vi_agent']);
|
||||
$os = get_os($row['vi_agent']);
|
||||
$brow = $row['vi_browser'];
|
||||
if(!$brow)
|
||||
$brow = get_brow($row['vi_agent']);
|
||||
|
||||
$os = $row['vi_os'];
|
||||
if(!$os)
|
||||
$os = get_os($row['vi_agent']);
|
||||
|
||||
$device = $row['vi_device'];
|
||||
|
||||
$link = "";
|
||||
$referer = "";
|
||||
@@ -92,16 +100,14 @@ $listall = '<a href="'.$_SERVER['SCRIPT_NAME'].'">처음</a>'; //페이지 처
|
||||
else
|
||||
$ip = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", G5_IP_DISPLAY, $row['vi_ip']);
|
||||
|
||||
if ($brow == '기타') $brow = '<span title="'.get_text($row['vi_agent']).'">'.$brow.'</span>';
|
||||
if ($os == '기타') $os = '<span title="'.get_text($row['vi_agent']).'">'.$os.'</span>';
|
||||
|
||||
$bg = 'bg'.($i%2);
|
||||
?>
|
||||
<tr class="<?php echo $bg; ?>">
|
||||
<td class="td_id"><a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>?sfl=vi_ip&stx=<?php echo $ip; ?>"><?php echo $ip; ?></a></td>
|
||||
<td><?php echo $link.$title; ?></a></td>
|
||||
<td class="td_idsmall"><?php echo $brow; ?></td>
|
||||
<td class="td_idsmall"><?php echo $os; ?></td>
|
||||
<td class="td_idsmall td_category1"><?php echo $brow; ?></td>
|
||||
<td class="td_idsmall td_category3"><?php echo $os; ?></td>
|
||||
<td class="td_idsmall td_category2"><?php echo $device; ?></td>
|
||||
<td class="td_datetime"><a href="<?php echo $_SERVER['SCRIPT_NAME']; ?>?sfl=vi_date&stx=<?php echo $row['vi_date']; ?>"><?php echo $row['vi_date']; ?></a> <?php echo $row['vi_time']; ?></td>
|
||||
</tr>
|
||||
<?php } ?>
|
||||
|
||||
@@ -5,8 +5,12 @@ include_once(G5_LIB_PATH.'/register.lib.php');
|
||||
$mb_email = trim($_POST['reg_mb_email']);
|
||||
$mb_id = trim($_POST['reg_mb_id']);
|
||||
|
||||
set_session('ss_check_mb_email', '');
|
||||
|
||||
if ($msg = empty_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 = exist_mb_email($mb_email, $mb_id)) die($msg);
|
||||
|
||||
set_session('ss_check_mb_email', $mb_email);
|
||||
?>
|
||||
@@ -4,9 +4,13 @@ include_once(G5_LIB_PATH.'/register.lib.php');
|
||||
|
||||
$mb_id = trim($_POST['reg_mb_id']);
|
||||
|
||||
set_session('ss_check_mb_id', '');
|
||||
|
||||
if ($msg = empty_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 = exist_mb_id($mb_id)) die($msg);
|
||||
if ($msg = reserve_mb_id($mb_id)) die($msg);
|
||||
|
||||
set_session('ss_check_mb_id', $mb_id);
|
||||
?>
|
||||
@@ -5,9 +5,13 @@ include_once(G5_LIB_PATH.'/register.lib.php');
|
||||
$mb_nick = trim($_POST['reg_mb_nick']);
|
||||
$mb_id = trim($_POST['reg_mb_id']);
|
||||
|
||||
set_session('ss_check_mb_nick', '');
|
||||
|
||||
if ($msg = empty_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 = exist_mb_nick($mb_nick, $mb_id)) die($msg);
|
||||
if ($msg = reserve_mb_nick($mb_nick)) die($msg);
|
||||
|
||||
set_session('ss_check_mb_nick', $mb_nick);
|
||||
?>
|
||||
+3
-3
@@ -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)
|
||||
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);
|
||||
}
|
||||
|
||||
$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 {
|
||||
if ($member['mb_level'] < $board['bo_list_level']) {
|
||||
if ($member['mb_id'])
|
||||
@@ -171,7 +171,7 @@ if (isset($wr_id) && $wr_id) {
|
||||
|
||||
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');
|
||||
|
||||
+3
-3
@@ -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 ";
|
||||
|
||||
$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) {
|
||||
$sql_common .= " and b.gr_id = '$gr_id' ";
|
||||
}
|
||||
@@ -46,7 +46,7 @@ for ($i=0; $row=sql_fetch_array($result); $i++) {
|
||||
$group_select .= '</select>';
|
||||
|
||||
$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);
|
||||
for ($i=0; $row=sql_fetch_array($result); $i++) {
|
||||
$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]['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'];
|
||||
}
|
||||
|
||||
|
||||
@@ -187,7 +187,7 @@ for ($i=1; $i<=count($_FILES['bf_file']['name']); $i++) {
|
||||
$shuffle = implode('', $chars_array);
|
||||
|
||||
// 첨부파일 첨부시 첨부파일명에 공백이 포함되어 있으면 일부 PC에서 보이지 않거나 다운로드 되지 않는 현상이 있습니다. (길상여의 님 090925)
|
||||
$upload[$i]['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr($shuffle,0,8).'_'.str_replace('%', '', urlencode(str_replace(' ', '_', $filename)));
|
||||
$upload[$i]['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr($shuffle,0,8).'_'.replace_filename($filename);
|
||||
|
||||
$dest_file = G5_DATA_PATH.'/qa/'.$upload[$i]['file'];
|
||||
|
||||
@@ -339,7 +339,7 @@ if($config['cf_sms_use'] == 'icode' && $qaconfig['qa_use_sms']) {
|
||||
// 문의글 등록시 관리자에게 전송
|
||||
if(($w == '' || $w == 'r') && trim($qaconfig['qa_admin_hp'])) {
|
||||
$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']);
|
||||
|
||||
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'])) {
|
||||
$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']);
|
||||
|
||||
if($recv_number) {
|
||||
|
||||
@@ -62,12 +62,34 @@ $mb_8 = isset($_POST['mb_8']) ? trim($_POST['mb_8'])
|
||||
$mb_9 = isset($_POST['mb_9']) ? trim($_POST['mb_9']) : "";
|
||||
$mb_10 = isset($_POST['mb_10']) ? trim($_POST['mb_10']) : "";
|
||||
|
||||
$mb_name = clean_xss_tags($mb_name);
|
||||
$mb_email = get_email_address($mb_email);
|
||||
$mb_homepage = clean_xss_tags($mb_homepage);
|
||||
$mb_tel = clean_xss_tags($mb_tel);
|
||||
$mb_zip1 = preg_replace('/[^0-9]/', '', $mb_zip1);
|
||||
$mb_zip2 = preg_replace('/[^0-9]/', '', $mb_zip2);
|
||||
$mb_addr1 = clean_xss_tags($mb_addr1);
|
||||
$mb_addr2 = clean_xss_tags($mb_addr2);
|
||||
$mb_addr3 = clean_xss_tags($mb_addr3);
|
||||
$mb_addr_jibeon = preg_match("/^(N|R)$/", $mb_addr_jibeon) ? $mb_addr_jibeon : '';
|
||||
|
||||
if ($w == '' || $w == 'u') {
|
||||
|
||||
if ($msg = empty_mb_id($mb_id)) alert($msg, "", true, true); // alert($msg, $url, $error, $post);
|
||||
if ($msg = valid_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)
|
||||
alert('비밀번호가 넘어오지 않았습니다.');
|
||||
if($w == '' && $mb_password != $mb_password_re)
|
||||
@@ -92,6 +114,14 @@ if ($w == '' || $w == 'u') {
|
||||
if ($w=='') {
|
||||
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(trim($_POST['cert_no']) != $_SESSION['ss_cert_no'] || !$_SESSION['ss_cert_no'])
|
||||
@@ -119,17 +149,6 @@ if ($w == '' || $w == 'u') {
|
||||
if ($msg = exist_mb_email($mb_email, $mb_id)) alert($msg, "", true, true);
|
||||
}
|
||||
|
||||
$mb_name = clean_xss_tags($mb_name);
|
||||
$mb_email = get_email_address($mb_email);
|
||||
$mb_homepage = clean_xss_tags($mb_homepage);
|
||||
$mb_tel = clean_xss_tags($mb_tel);
|
||||
$mb_zip1 = preg_replace('/[^0-9]/', '', $mb_zip1);
|
||||
$mb_zip2 = preg_replace('/[^0-9]/', '', $mb_zip2);
|
||||
$mb_addr1 = clean_xss_tags($mb_addr1);
|
||||
$mb_addr2 = clean_xss_tags($mb_addr2);
|
||||
$mb_addr3 = clean_xss_tags($mb_addr3);
|
||||
$mb_addr_jibeon = preg_match("/^(N|R)$/", $mb_addr_jibeon) ? $mb_addr_jibeon : '';
|
||||
|
||||
// 사용자 코드 실행
|
||||
@include_once($member_skin_path.'/register_form_update.head.skin.php');
|
||||
|
||||
|
||||
+4
-4
@@ -129,13 +129,13 @@ if ($stx) {
|
||||
$read_level[] = $g5_search['read_level'][$i];
|
||||
$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);
|
||||
$sch_class = "";
|
||||
$sch_all = "";
|
||||
if ($onetable == $g5_search['tables'][$i]) $sch_class = "class=sch_on";
|
||||
else $sch_all = "class=sch_on";
|
||||
$str_board_list .= '<li><a href="'.$_SERVER['SCRIPT_NAME'].'?'.$search_query.'&gr_id='.$gr_id.'&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.'&gr_id='.$gr_id.'&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;
|
||||
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);
|
||||
$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];
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
if(!(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE))
|
||||
return;
|
||||
|
||||
// Browscap 캐시 파일이 있으면 실행
|
||||
if(defined('G5_VISIT_BROWSCAP_USE') && G5_VISIT_BROWSCAP_USE && is_file(G5_DATA_PATH.'/cache/browscap_cache.php')) {
|
||||
include_once(G5_PLUGIN_PATH.'/browscap/Browscap.php');
|
||||
|
||||
$browscap = new phpbrowscap\Browscap(G5_DATA_PATH.'/cache');
|
||||
$browscap->doAutoUpdate = false;
|
||||
$browscap->cacheFilename = 'browscap_cache.php';
|
||||
|
||||
$info = $browscap->getBrowser($_SERVER['HTTP_USER_AGENT']);
|
||||
|
||||
$vi_browser = $info->Comment;
|
||||
$vi_os = $info->Platform;
|
||||
$vi_device = $info->Device_Type;
|
||||
}
|
||||
?>
|
||||
@@ -15,7 +15,13 @@ if (get_cookie('ck_visit_ip') != $_SERVER['REMOTE_ADDR'])
|
||||
if (isset($_SERVER['HTTP_REFERER']))
|
||||
$referer = escape_trim(clean_xss_tags($_SERVER['HTTP_REFERER']));
|
||||
$user_agent = escape_trim(clean_xss_tags($_SERVER['HTTP_USER_AGENT']));
|
||||
$sql = " insert {$g5['visit_table']} ( vi_id, vi_ip, vi_date, vi_time, vi_referer, vi_agent ) values ( '{$vi_id}', '{$remote_addr}', '".G5_TIME_YMD."', '".G5_TIME_HIS."', '{$referer}', '{$user_agent}' ) ";
|
||||
$vi_browser = '';
|
||||
$vi_os = '';
|
||||
$vi_device = '';
|
||||
if(version_compare(phpversion(), '5.3.0', '>=') && defined('G5_BROWSCAP_USE') && G5_BROWSCAP_USE) {
|
||||
include_once(G5_BBS_PATH.'/visit_browscap.inc.php');
|
||||
}
|
||||
$sql = " insert {$g5['visit_table']} ( vi_id, vi_ip, vi_date, vi_time, vi_referer, vi_agent, vi_browser, vi_os, vi_device ) values ( '{$vi_id}', '{$remote_addr}', '".G5_TIME_YMD."', '".G5_TIME_HIS."', '{$referer}', '{$user_agent}', '{$vi_browser}', '{$vi_os}', '{$vi_device}' ) ";
|
||||
|
||||
$result = sql_query($sql, FALSE);
|
||||
// 정상으로 INSERT 되었다면 방문자 합계에 반영
|
||||
|
||||
+1
-1
@@ -214,7 +214,7 @@ else
|
||||
$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;
|
||||
$notice_checked = '';
|
||||
|
||||
+12
-1
@@ -7,6 +7,17 @@ $g5['title'] = '게시글 저장';
|
||||
|
||||
$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 = '';
|
||||
if (isset($_POST['wr_subject'])) {
|
||||
$wr_subject = substr(trim($_POST['wr_subject']),0,255);
|
||||
@@ -485,7 +496,7 @@ for ($i=0; $i<count($_FILES['bf_file']['name']); $i++) {
|
||||
$shuffle = implode('', $chars_array);
|
||||
|
||||
// 첨부파일 첨부시 첨부파일명에 공백이 포함되어 있으면 일부 PC에서 보이지 않거나 다운로드 되지 않는 현상이 있습니다. (길상여의 님 090925)
|
||||
$upload[$i]['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr($shuffle,0,8).'_'.str_replace('%', '', urlencode(str_replace(' ', '_', $filename)));
|
||||
$upload[$i]['file'] = abs(ip2long($_SERVER['REMOTE_ADDR'])).'_'.substr($shuffle,0,8).'_'.replace_filename($filename);
|
||||
|
||||
$dest_file = G5_DATA_PATH.'/file/'.$bo_table.'/'.$upload[$i]['file'];
|
||||
|
||||
|
||||
+216
-209
@@ -1,214 +1,221 @@
|
||||
<?php
|
||||
|
||||
/********************
|
||||
상수 선언
|
||||
********************/
|
||||
|
||||
define('G5_VERSION', '그누보드5');
|
||||
define('G5_GNUBOARD_VER', '5.1.3');
|
||||
|
||||
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
|
||||
define('_GNUBOARD_', true);
|
||||
|
||||
if (PHP_VERSION >= '5.1.0') {
|
||||
//if (function_exists("date_default_timezone_set")) date_default_timezone_set("Asia/Seoul");
|
||||
date_default_timezone_set("Asia/Seoul");
|
||||
}
|
||||
|
||||
/********************
|
||||
경로 상수
|
||||
********************/
|
||||
|
||||
/*
|
||||
보안서버 도메인
|
||||
회원가입, 글쓰기에 사용되는 https 로 시작되는 주소를 말합니다.
|
||||
포트가 있다면 도메인 뒤에 :443 과 같이 입력하세요.
|
||||
보안서버주소가 없다면 공란으로 두시면 되며 보안서버주소 뒤에 / 는 붙이지 않습니다.
|
||||
입력예) https://www.domain.com:443/gnuboard5
|
||||
*/
|
||||
define('G5_DOMAIN', '');
|
||||
define('G5_HTTPS_DOMAIN', '');
|
||||
|
||||
/*
|
||||
www.sir.co.kr 과 sir.co.kr 도메인은 서로 다른 도메인으로 인식합니다. 쿠키를 공유하려면 .sir.co.kr 과 같이 입력하세요.
|
||||
이곳에 입력이 없다면 www 붙은 도메인과 그렇지 않은 도메인은 쿠키를 공유하지 않으므로 로그인이 풀릴 수 있습니다.
|
||||
*/
|
||||
define('G5_COOKIE_DOMAIN', '');
|
||||
|
||||
define('G5_DBCONFIG_FILE', 'dbconfig.php');
|
||||
|
||||
define('G5_ADMIN_DIR', 'adm');
|
||||
define('G5_BBS_DIR', 'bbs');
|
||||
define('G5_CSS_DIR', 'css');
|
||||
define('G5_DATA_DIR', 'data');
|
||||
define('G5_EXTEND_DIR', 'extend');
|
||||
define('G5_IMG_DIR', 'img');
|
||||
define('G5_JS_DIR', 'js');
|
||||
define('G5_LIB_DIR', 'lib');
|
||||
define('G5_PLUGIN_DIR', 'plugin');
|
||||
define('G5_SKIN_DIR', 'skin');
|
||||
define('G5_CAPTCHA_DIR', 'kcaptcha');
|
||||
define('G5_EDITOR_DIR', 'editor');
|
||||
define('G5_MOBILE_DIR', 'mobile');
|
||||
define('G5_OKNAME_DIR', 'okname');
|
||||
<?php
|
||||
|
||||
define('G5_KCPCERT_DIR', 'kcpcert');
|
||||
define('G5_LGXPAY_DIR', 'lgxpay');
|
||||
/********************
|
||||
상수 선언
|
||||
********************/
|
||||
|
||||
define('G5_SNS_DIR', 'sns');
|
||||
define('G5_SYNDI_DIR', 'syndi');
|
||||
define('G5_PHPMAILER_DIR', 'PHPMailer_v2.0.4');
|
||||
define('G5_SESSION_DIR', 'session');
|
||||
define('G5_THEME_DIR', 'theme');
|
||||
|
||||
// URL 은 브라우저상에서의 경로 (도메인으로 부터의)
|
||||
if (G5_DOMAIN) {
|
||||
define('G5_URL', G5_DOMAIN);
|
||||
} else {
|
||||
if (isset($g5_path['url']))
|
||||
define('G5_URL', $g5_path['url']);
|
||||
else
|
||||
define('G5_URL', '');
|
||||
}
|
||||
|
||||
if (isset($g5_path['path'])) {
|
||||
define('G5_PATH', $g5_path['path']);
|
||||
} else {
|
||||
define('G5_PATH', '');
|
||||
}
|
||||
|
||||
define('G5_ADMIN_URL', G5_URL.'/'.G5_ADMIN_DIR);
|
||||
define('G5_BBS_URL', G5_URL.'/'.G5_BBS_DIR);
|
||||
define('G5_CSS_URL', G5_URL.'/'.G5_CSS_DIR);
|
||||
define('G5_DATA_URL', G5_URL.'/'.G5_DATA_DIR);
|
||||
define('G5_IMG_URL', G5_URL.'/'.G5_IMG_DIR);
|
||||
define('G5_JS_URL', G5_URL.'/'.G5_JS_DIR);
|
||||
define('G5_SKIN_URL', G5_URL.'/'.G5_SKIN_DIR);
|
||||
define('G5_PLUGIN_URL', G5_URL.'/'.G5_PLUGIN_DIR);
|
||||
define('G5_CAPTCHA_URL', G5_PLUGIN_URL.'/'.G5_CAPTCHA_DIR);
|
||||
define('G5_EDITOR_URL', G5_PLUGIN_URL.'/'.G5_EDITOR_DIR);
|
||||
define('G5_OKNAME_URL', G5_PLUGIN_URL.'/'.G5_OKNAME_DIR);
|
||||
define('G5_KCPCERT_URL', G5_PLUGIN_URL.'/'.G5_KCPCERT_DIR);
|
||||
define('G5_LGXPAY_URL', G5_PLUGIN_URL.'/'.G5_LGXPAY_DIR);
|
||||
define('G5_SNS_URL', G5_PLUGIN_URL.'/'.G5_SNS_DIR);
|
||||
define('G5_SYNDI_URL', G5_PLUGIN_URL.'/'.G5_SYNDI_DIR);
|
||||
define('G5_MOBILE_URL', G5_URL.'/'.G5_MOBILE_DIR);
|
||||
|
||||
// PATH 는 서버상에서의 절대경로
|
||||
define('G5_ADMIN_PATH', G5_PATH.'/'.G5_ADMIN_DIR);
|
||||
define('G5_BBS_PATH', G5_PATH.'/'.G5_BBS_DIR);
|
||||
define('G5_DATA_PATH', G5_PATH.'/'.G5_DATA_DIR);
|
||||
define('G5_EXTEND_PATH', G5_PATH.'/'.G5_EXTEND_DIR);
|
||||
define('G5_LIB_PATH', G5_PATH.'/'.G5_LIB_DIR);
|
||||
define('G5_PLUGIN_PATH', G5_PATH.'/'.G5_PLUGIN_DIR);
|
||||
define('G5_SKIN_PATH', G5_PATH.'/'.G5_SKIN_DIR);
|
||||
define('G5_MOBILE_PATH', G5_PATH.'/'.G5_MOBILE_DIR);
|
||||
define('G5_SESSION_PATH', G5_DATA_PATH.'/'.G5_SESSION_DIR);
|
||||
define('G5_CAPTCHA_PATH', G5_PLUGIN_PATH.'/'.G5_CAPTCHA_DIR);
|
||||
define('G5_EDITOR_PATH', G5_PLUGIN_PATH.'/'.G5_EDITOR_DIR);
|
||||
define('G5_OKNAME_PATH', G5_PLUGIN_PATH.'/'.G5_OKNAME_DIR);
|
||||
define('G5_VERSION', '그누보드5');
|
||||
define('G5_GNUBOARD_VER', '5.1.11');
|
||||
|
||||
define('G5_KCPCERT_PATH', G5_PLUGIN_PATH.'/'.G5_KCPCERT_DIR);
|
||||
define('G5_LGXPAY_PATH', G5_PLUGIN_PATH.'/'.G5_LGXPAY_DIR);
|
||||
// 이 상수가 정의되지 않으면 각각의 개별 페이지는 별도로 실행될 수 없음
|
||||
define('_GNUBOARD_', true);
|
||||
|
||||
define('G5_SNS_PATH', G5_PLUGIN_PATH.'/'.G5_SNS_DIR);
|
||||
define('G5_SYNDI_PATH', G5_PLUGIN_PATH.'/'.G5_SYNDI_DIR);
|
||||
define('G5_PHPMAILER_PATH', G5_PLUGIN_PATH.'/'.G5_PHPMAILER_DIR);
|
||||
//==============================================================================
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// 사용기기 설정
|
||||
// pc 설정 시 모바일 기기에서도 PC화면 보여짐
|
||||
// mobile 설정 시 PC에서도 모바일화면 보여짐
|
||||
// both 설정 시 접속 기기에 따른 화면 보여짐
|
||||
//------------------------------------------------------------------------------
|
||||
define('G5_SET_DEVICE', 'both');
|
||||
|
||||
define('G5_USE_MOBILE', true); // 모바일 홈페이지를 사용하지 않을 경우 false 로 설정
|
||||
define('G5_USE_CACHE', true); // 최신글등에 cache 기능 사용 여부
|
||||
|
||||
|
||||
/********************
|
||||
시간 상수
|
||||
********************/
|
||||
// 서버의 시간과 실제 사용하는 시간이 틀린 경우 수정하세요.
|
||||
// 하루는 86400 초입니다. 1시간은 3600초
|
||||
// 6시간이 빠른 경우 time() + (3600 * 6);
|
||||
// 6시간이 느린 경우 time() - (3600 * 6);
|
||||
define('G5_SERVER_TIME', time());
|
||||
define('G5_TIME_YMDHIS', date('Y-m-d H:i:s', G5_SERVER_TIME));
|
||||
define('G5_TIME_YMD', substr(G5_TIME_YMDHIS, 0, 10));
|
||||
define('G5_TIME_HIS', substr(G5_TIME_YMDHIS, 11, 8));
|
||||
|
||||
// 입력값 검사 상수 (숫자를 변경하시면 안됩니다.)
|
||||
define('G5_ALPHAUPPER', 1); // 영대문자
|
||||
define('G5_ALPHALOWER', 2); // 영소문자
|
||||
define('G5_ALPHABETIC', 4); // 영대,소문자
|
||||
define('G5_NUMERIC', 8); // 숫자
|
||||
define('G5_HANGUL', 16); // 한글
|
||||
define('G5_SPACE', 32); // 공백
|
||||
define('G5_SPECIAL', 64); // 특수문자
|
||||
|
||||
// 퍼미션
|
||||
define('G5_DIR_PERMISSION', 0755); // 디렉토리 생성시 퍼미션
|
||||
define('G5_FILE_PERMISSION', 0644); // 파일 생성시 퍼미션
|
||||
|
||||
// 모바일 인지 결정 $_SERVER['HTTP_USER_AGENT']
|
||||
define('G5_MOBILE_AGENT', 'phone|samsung|lgtel|mobile|[^A]skt|nokia|blackberry|android|sony');
|
||||
|
||||
// SMTP
|
||||
// lib/mailer.lib.php 에서 사용
|
||||
define('G5_SMTP', '127.0.0.1');
|
||||
|
||||
|
||||
/********************
|
||||
기타 상수
|
||||
********************/
|
||||
|
||||
// 암호화 함수 지정
|
||||
// 사이트 운영 중 설정을 변경하면 로그인이 안되는 등의 문제가 발생합니다.
|
||||
define('G5_STRING_ENCRYPT_FUNCTION', 'sql_password');
|
||||
|
||||
// SQL 에러를 표시할 것인지 지정
|
||||
// 에러를 표시하려면 TRUE 로 변경
|
||||
define('G5_DISPLAY_SQL_ERROR', FALSE);
|
||||
|
||||
// escape string 처리 함수 지정
|
||||
// addslashes 로 변경 가능
|
||||
define('G5_ESCAPE_FUNCTION', 'sql_escape_string');
|
||||
|
||||
// sql_escape_string 함수에서 사용될 패턴
|
||||
//define('G5_ESCAPE_PATTERN', '/(and|or).*(union|select|insert|update|delete|from|where|limit|create|drop).*/i');
|
||||
//define('G5_ESCAPE_REPLACE', '');
|
||||
|
||||
// 게시판에서 링크의 기본개수를 말합니다.
|
||||
// 필드를 추가하면 이 숫자를 필드수에 맞게 늘려주십시오.
|
||||
define('G5_LINK_COUNT', 2);
|
||||
|
||||
// 썸네일 jpg Quality 설정
|
||||
define('G5_THUMB_JPG_QUALITY', 90);
|
||||
|
||||
// 썸네일 png Compress 설정
|
||||
define('G5_THUMB_PNG_COMPRESS', 5);
|
||||
|
||||
// 모바일 기기에서 DHTML 에디터 사용여부를 설정합니다.
|
||||
define('G5_IS_MOBILE_DHTML_USE', false);
|
||||
|
||||
// MySQLi 사용여부를 설정합니다.
|
||||
define('G5_MYSQLI_USE', true);
|
||||
|
||||
// ip 숨김방법 설정
|
||||
/* 123.456.789.012 ip의 숨김 방법을 변경하는 방법은
|
||||
\\1 은 123, \\2는 456, \\3은 789, \\4는 012에 각각 대응되므로
|
||||
표시되는 부분은 \\1 과 같이 사용하시면 되고 숨길 부분은 ♡등의
|
||||
다른 문자를 적어주시면 됩니다.
|
||||
*/
|
||||
define('G5_IP_DISPLAY', '\\1.♡.\\3.\\4');
|
||||
|
||||
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') { //https 통신일때 daum 주소 js
|
||||
define('G5_POSTCODE_JS', '<script src="https://spi.maps.daum.net/imap/map_js_init/postcode.v2.js"></script>');
|
||||
} else { //http 통신일때 daum 주소 js
|
||||
define('G5_POSTCODE_JS', '<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>');
|
||||
}
|
||||
if (PHP_VERSION >= '5.1.0') {
|
||||
//if (function_exists("date_default_timezone_set")) date_default_timezone_set("Asia/Seoul");
|
||||
date_default_timezone_set("Asia/Seoul");
|
||||
}
|
||||
|
||||
/********************
|
||||
경로 상수
|
||||
********************/
|
||||
|
||||
/*
|
||||
보안서버 도메인
|
||||
회원가입, 글쓰기에 사용되는 https 로 시작되는 주소를 말합니다.
|
||||
포트가 있다면 도메인 뒤에 :443 과 같이 입력하세요.
|
||||
보안서버주소가 없다면 공란으로 두시면 되며 보안서버주소 뒤에 / 는 붙이지 않습니다.
|
||||
입력예) https://www.domain.com:443/gnuboard5
|
||||
*/
|
||||
define('G5_DOMAIN', '');
|
||||
define('G5_HTTPS_DOMAIN', '');
|
||||
|
||||
/*
|
||||
www.sir.co.kr 과 sir.co.kr 도메인은 서로 다른 도메인으로 인식합니다. 쿠키를 공유하려면 .sir.co.kr 과 같이 입력하세요.
|
||||
이곳에 입력이 없다면 www 붙은 도메인과 그렇지 않은 도메인은 쿠키를 공유하지 않으므로 로그인이 풀릴 수 있습니다.
|
||||
*/
|
||||
define('G5_COOKIE_DOMAIN', '');
|
||||
|
||||
define('G5_DBCONFIG_FILE', 'dbconfig.php');
|
||||
|
||||
define('G5_ADMIN_DIR', 'adm');
|
||||
define('G5_BBS_DIR', 'bbs');
|
||||
define('G5_CSS_DIR', 'css');
|
||||
define('G5_DATA_DIR', 'data');
|
||||
define('G5_EXTEND_DIR', 'extend');
|
||||
define('G5_IMG_DIR', 'img');
|
||||
define('G5_JS_DIR', 'js');
|
||||
define('G5_LIB_DIR', 'lib');
|
||||
define('G5_PLUGIN_DIR', 'plugin');
|
||||
define('G5_SKIN_DIR', 'skin');
|
||||
define('G5_CAPTCHA_DIR', 'kcaptcha');
|
||||
define('G5_EDITOR_DIR', 'editor');
|
||||
define('G5_MOBILE_DIR', 'mobile');
|
||||
define('G5_OKNAME_DIR', 'okname');
|
||||
|
||||
define('G5_KCPCERT_DIR', 'kcpcert');
|
||||
define('G5_LGXPAY_DIR', 'lgxpay');
|
||||
|
||||
define('G5_SNS_DIR', 'sns');
|
||||
define('G5_SYNDI_DIR', 'syndi');
|
||||
define('G5_PHPMAILER_DIR', 'PHPMailer');
|
||||
define('G5_SESSION_DIR', 'session');
|
||||
define('G5_THEME_DIR', 'theme');
|
||||
|
||||
// URL 은 브라우저상에서의 경로 (도메인으로 부터의)
|
||||
if (G5_DOMAIN) {
|
||||
define('G5_URL', G5_DOMAIN);
|
||||
} else {
|
||||
if (isset($g5_path['url']))
|
||||
define('G5_URL', $g5_path['url']);
|
||||
else
|
||||
define('G5_URL', '');
|
||||
}
|
||||
|
||||
if (isset($g5_path['path'])) {
|
||||
define('G5_PATH', $g5_path['path']);
|
||||
} else {
|
||||
define('G5_PATH', '');
|
||||
}
|
||||
|
||||
define('G5_ADMIN_URL', G5_URL.'/'.G5_ADMIN_DIR);
|
||||
define('G5_BBS_URL', G5_URL.'/'.G5_BBS_DIR);
|
||||
define('G5_CSS_URL', G5_URL.'/'.G5_CSS_DIR);
|
||||
define('G5_DATA_URL', G5_URL.'/'.G5_DATA_DIR);
|
||||
define('G5_IMG_URL', G5_URL.'/'.G5_IMG_DIR);
|
||||
define('G5_JS_URL', G5_URL.'/'.G5_JS_DIR);
|
||||
define('G5_SKIN_URL', G5_URL.'/'.G5_SKIN_DIR);
|
||||
define('G5_PLUGIN_URL', G5_URL.'/'.G5_PLUGIN_DIR);
|
||||
define('G5_CAPTCHA_URL', G5_PLUGIN_URL.'/'.G5_CAPTCHA_DIR);
|
||||
define('G5_EDITOR_URL', G5_PLUGIN_URL.'/'.G5_EDITOR_DIR);
|
||||
define('G5_OKNAME_URL', G5_PLUGIN_URL.'/'.G5_OKNAME_DIR);
|
||||
define('G5_KCPCERT_URL', G5_PLUGIN_URL.'/'.G5_KCPCERT_DIR);
|
||||
define('G5_LGXPAY_URL', G5_PLUGIN_URL.'/'.G5_LGXPAY_DIR);
|
||||
define('G5_SNS_URL', G5_PLUGIN_URL.'/'.G5_SNS_DIR);
|
||||
define('G5_SYNDI_URL', G5_PLUGIN_URL.'/'.G5_SYNDI_DIR);
|
||||
define('G5_MOBILE_URL', G5_URL.'/'.G5_MOBILE_DIR);
|
||||
|
||||
// PATH 는 서버상에서의 절대경로
|
||||
define('G5_ADMIN_PATH', G5_PATH.'/'.G5_ADMIN_DIR);
|
||||
define('G5_BBS_PATH', G5_PATH.'/'.G5_BBS_DIR);
|
||||
define('G5_DATA_PATH', G5_PATH.'/'.G5_DATA_DIR);
|
||||
define('G5_EXTEND_PATH', G5_PATH.'/'.G5_EXTEND_DIR);
|
||||
define('G5_LIB_PATH', G5_PATH.'/'.G5_LIB_DIR);
|
||||
define('G5_PLUGIN_PATH', G5_PATH.'/'.G5_PLUGIN_DIR);
|
||||
define('G5_SKIN_PATH', G5_PATH.'/'.G5_SKIN_DIR);
|
||||
define('G5_MOBILE_PATH', G5_PATH.'/'.G5_MOBILE_DIR);
|
||||
define('G5_SESSION_PATH', G5_DATA_PATH.'/'.G5_SESSION_DIR);
|
||||
define('G5_CAPTCHA_PATH', G5_PLUGIN_PATH.'/'.G5_CAPTCHA_DIR);
|
||||
define('G5_EDITOR_PATH', G5_PLUGIN_PATH.'/'.G5_EDITOR_DIR);
|
||||
define('G5_OKNAME_PATH', G5_PLUGIN_PATH.'/'.G5_OKNAME_DIR);
|
||||
|
||||
define('G5_KCPCERT_PATH', G5_PLUGIN_PATH.'/'.G5_KCPCERT_DIR);
|
||||
define('G5_LGXPAY_PATH', G5_PLUGIN_PATH.'/'.G5_LGXPAY_DIR);
|
||||
|
||||
define('G5_SNS_PATH', G5_PLUGIN_PATH.'/'.G5_SNS_DIR);
|
||||
define('G5_SYNDI_PATH', G5_PLUGIN_PATH.'/'.G5_SYNDI_DIR);
|
||||
define('G5_PHPMAILER_PATH', G5_PLUGIN_PATH.'/'.G5_PHPMAILER_DIR);
|
||||
//==============================================================================
|
||||
|
||||
|
||||
//==============================================================================
|
||||
// 사용기기 설정
|
||||
// pc 설정 시 모바일 기기에서도 PC화면 보여짐
|
||||
// mobile 설정 시 PC에서도 모바일화면 보여짐
|
||||
// both 설정 시 접속 기기에 따른 화면 보여짐
|
||||
//------------------------------------------------------------------------------
|
||||
define('G5_SET_DEVICE', 'both');
|
||||
|
||||
define('G5_USE_MOBILE', true); // 모바일 홈페이지를 사용하지 않을 경우 false 로 설정
|
||||
define('G5_USE_CACHE', true); // 최신글등에 cache 기능 사용 여부
|
||||
|
||||
|
||||
/********************
|
||||
시간 상수
|
||||
********************/
|
||||
// 서버의 시간과 실제 사용하는 시간이 틀린 경우 수정하세요.
|
||||
// 하루는 86400 초입니다. 1시간은 3600초
|
||||
// 6시간이 빠른 경우 time() + (3600 * 6);
|
||||
// 6시간이 느린 경우 time() - (3600 * 6);
|
||||
define('G5_SERVER_TIME', time());
|
||||
define('G5_TIME_YMDHIS', date('Y-m-d H:i:s', G5_SERVER_TIME));
|
||||
define('G5_TIME_YMD', substr(G5_TIME_YMDHIS, 0, 10));
|
||||
define('G5_TIME_HIS', substr(G5_TIME_YMDHIS, 11, 8));
|
||||
|
||||
// 입력값 검사 상수 (숫자를 변경하시면 안됩니다.)
|
||||
define('G5_ALPHAUPPER', 1); // 영대문자
|
||||
define('G5_ALPHALOWER', 2); // 영소문자
|
||||
define('G5_ALPHABETIC', 4); // 영대,소문자
|
||||
define('G5_NUMERIC', 8); // 숫자
|
||||
define('G5_HANGUL', 16); // 한글
|
||||
define('G5_SPACE', 32); // 공백
|
||||
define('G5_SPECIAL', 64); // 특수문자
|
||||
|
||||
// 퍼미션
|
||||
define('G5_DIR_PERMISSION', 0755); // 디렉토리 생성시 퍼미션
|
||||
define('G5_FILE_PERMISSION', 0644); // 파일 생성시 퍼미션
|
||||
|
||||
// 모바일 인지 결정 $_SERVER['HTTP_USER_AGENT']
|
||||
define('G5_MOBILE_AGENT', 'phone|samsung|lgtel|mobile|[^A]skt|nokia|blackberry|android|sony');
|
||||
|
||||
// SMTP
|
||||
// lib/mailer.lib.php 에서 사용
|
||||
define('G5_SMTP', '127.0.0.1');
|
||||
define('G5_SMTP_PORT', '25');
|
||||
|
||||
|
||||
/********************
|
||||
기타 상수
|
||||
********************/
|
||||
|
||||
// 암호화 함수 지정
|
||||
// 사이트 운영 중 설정을 변경하면 로그인이 안되는 등의 문제가 발생합니다.
|
||||
define('G5_STRING_ENCRYPT_FUNCTION', 'sql_password');
|
||||
|
||||
// SQL 에러를 표시할 것인지 지정
|
||||
// 에러를 표시하려면 TRUE 로 변경
|
||||
define('G5_DISPLAY_SQL_ERROR', FALSE);
|
||||
|
||||
// escape string 처리 함수 지정
|
||||
// addslashes 로 변경 가능
|
||||
define('G5_ESCAPE_FUNCTION', 'sql_escape_string');
|
||||
|
||||
// sql_escape_string 함수에서 사용될 패턴
|
||||
//define('G5_ESCAPE_PATTERN', '/(and|or).*(union|select|insert|update|delete|from|where|limit|create|drop).*/i');
|
||||
//define('G5_ESCAPE_REPLACE', '');
|
||||
|
||||
// 게시판에서 링크의 기본개수를 말합니다.
|
||||
// 필드를 추가하면 이 숫자를 필드수에 맞게 늘려주십시오.
|
||||
define('G5_LINK_COUNT', 2);
|
||||
|
||||
// 썸네일 jpg Quality 설정
|
||||
define('G5_THUMB_JPG_QUALITY', 90);
|
||||
|
||||
// 썸네일 png Compress 설정
|
||||
define('G5_THUMB_PNG_COMPRESS', 5);
|
||||
|
||||
// 모바일 기기에서 DHTML 에디터 사용여부를 설정합니다.
|
||||
define('G5_IS_MOBILE_DHTML_USE', false);
|
||||
|
||||
// MySQLi 사용여부를 설정합니다.
|
||||
define('G5_MYSQLI_USE', true);
|
||||
|
||||
// Browscap 사용여부를 설정합니다.
|
||||
define('G5_BROWSCAP_USE', true);
|
||||
|
||||
// 접속자 기록 때 Browscap 사용여부를 설정합니다.
|
||||
define('G5_VISIT_BROWSCAP_USE', false);
|
||||
|
||||
// ip 숨김방법 설정
|
||||
/* 123.456.789.012 ip의 숨김 방법을 변경하는 방법은
|
||||
\\1 은 123, \\2는 456, \\3은 789, \\4는 012에 각각 대응되므로
|
||||
표시되는 부분은 \\1 과 같이 사용하시면 되고 숨길 부분은 ♡등의
|
||||
다른 문자를 적어주시면 됩니다.
|
||||
*/
|
||||
define('G5_IP_DISPLAY', '\\1.♡.\\3.\\4');
|
||||
|
||||
if(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on') { //https 통신일때 daum 주소 js
|
||||
define('G5_POSTCODE_JS', '<script src="https://spi.maps.daum.net/imap/map_js_init/postcode.v2.js"></script>');
|
||||
} else { //http 통신일때 daum 주소 js
|
||||
define('G5_POSTCODE_JS', '<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>');
|
||||
}
|
||||
?>
|
||||
+16
-8
@@ -119,17 +119,25 @@ a:hover, a:focus, a:active {color:#000;text-decoration:underline}
|
||||
/* ie6 이미지 너비 지정 */
|
||||
.img_fix {width:100%;height:auto}
|
||||
|
||||
/* 캡챠 자동등록(입력)방지 기본 */
|
||||
/* 캡챠 자동등록(입력)방지 기본 -pc */
|
||||
#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 #captcha_img {width:100px;height:41px;border:1px solid #e9e9e9}
|
||||
#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 span {position:absolute;top:0;left:0;width:23px;height:22px;background:url('../plugin/kcaptcha/img/sound.gif')}
|
||||
#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 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 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 legend {position:absolute;margin:0;padding:0;font-size:0;line-height:0;text-indent:-9999em;overflow:hidden;}
|
||||
#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: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:31px;height:31px;background:url('../img/captcha.png') no-repeat;}
|
||||
#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_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_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 단축키 */
|
||||
.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}
|
||||
|
||||
+19
-8
@@ -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 h2 {position:absolute;font-size:0;text-indent:-9999em;line-height:0;overflow:hidden}
|
||||
#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_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}
|
||||
|
||||
/* 캡챠 자동등록(입력)방지 기본 */
|
||||
#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}
|
||||
/* 캡챠 자동등록(입력)방지 기본 - PC */
|
||||
#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;font-size:0}
|
||||
#captcha audio {display:block;margin:0 0 5px;width:187px}
|
||||
#captcha #captcha_img {width:60px;height:30px;border:1px solid #e9e9e9}
|
||||
#captcha #captcha_reload {margin:0;padding:0 5px;height:32px;border:0;background:#e4eaec;vertical-align:middle;overflow:hidden;cursor:pointer}
|
||||
#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_img {width:160px;height:60px;border:1px solid #e9e9e9;margin-bottom:3px;margin-right:32px;vertical-align:top}
|
||||
#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;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_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}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 20 KiB |
Binary file not shown.
@@ -28,7 +28,7 @@
|
||||
|
||||
|
||||
//require_once 'PEAR.php';
|
||||
require_once 'oleread.inc';
|
||||
require_once 'oleread.inc.php';
|
||||
//require_once 'OLE.php';
|
||||
|
||||
define('SPREADSHEET_EXCEL_READER_BIFF8', 0x600);
|
||||
@@ -258,7 +258,7 @@ class Spreadsheet_Excel_Reader
|
||||
*/
|
||||
function Spreadsheet_Excel_Reader()
|
||||
{
|
||||
$this->_ole =& new OLERead();
|
||||
$this->_ole = new OLERead();
|
||||
$this->setUTFEncoder('iconv');
|
||||
}
|
||||
|
||||
|
||||
+16
-4
@@ -562,8 +562,9 @@ function html_purifier($html)
|
||||
$config = HTMLPurifier_Config::createDefault();
|
||||
// data/cache 디렉토리에 CSS, HTML, URI 디렉토리 등을 만든다.
|
||||
$config->set('Cache.SerializerPath', G5_DATA_PATH.'/cache');
|
||||
$config->set('HTML.SafeEmbed', true);
|
||||
$config->set('HTML.SafeObject', true);
|
||||
$config->set('HTML.SafeEmbed', false);
|
||||
$config->set('HTML.SafeObject', false);
|
||||
$config->set('Output.FlashCompat', false);
|
||||
$config->set('HTML.SafeIframe', true);
|
||||
$config->set('URI.SafeIframeRegexp','%^(https?:)?//('.$safeiframe.')%');
|
||||
$config->set('Attr.AllowedFrameTargets', array('_blank'));
|
||||
@@ -795,7 +796,7 @@ function get_category_option($bo_table='', $ca_name='')
|
||||
{
|
||||
global $g5, $board, $is_admin;
|
||||
|
||||
$categories = explode("|", $board['bo_category_list'].($is_admin?"|공지":"")); // 구분자가 , 로 되어 있음
|
||||
$categories = explode("|", $board['bo_category_list'].($is_admin?"|공지":"")); // 구분자가 | 로 되어 있음
|
||||
$str = "";
|
||||
for ($i=0; $i<count($categories); $i++) {
|
||||
$category = trim($categories[$i]);
|
||||
@@ -1453,7 +1454,7 @@ function sql_set_charset($charset, $link=null)
|
||||
if(function_exists('mysqli_set_charset') && G5_MYSQLI_USE)
|
||||
mysqli_set_charset($link, $charset);
|
||||
else
|
||||
sql_query(" set names {$charset} ");
|
||||
mysql_query(" set names {$charset} ", $link);
|
||||
}
|
||||
|
||||
|
||||
@@ -2913,6 +2914,17 @@ function get_safe_filename($name)
|
||||
return $name;
|
||||
}
|
||||
|
||||
// 파일명 치환
|
||||
function replace_filename($name)
|
||||
{
|
||||
@session_start();
|
||||
$ss_id = session_id();
|
||||
$usec = get_microtime();
|
||||
$ext = array_pop(explode('.', $name));
|
||||
|
||||
return sha1($ss_id.$_SERVER['REMOTE_ADDR'].$usec).'.'.$ext;
|
||||
}
|
||||
|
||||
// 아이코드 사용자정보
|
||||
function get_icode_userinfo($id, $pass)
|
||||
{
|
||||
|
||||
+10
-364
@@ -1,7 +1,7 @@
|
||||
<?php
|
||||
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
|
||||
@@ -20,24 +20,27 @@ function mailer($fname, $fmail, $to, $subject, $content, $type=0, $file="", $cc=
|
||||
if (defined('G5_SMTP') && G5_SMTP) {
|
||||
$mail->IsSMTP(); // telling the class to use SMTP
|
||||
$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->FromName = $fname;
|
||||
$mail->Subject = $subject;
|
||||
$mail->AltBody = ""; // optional, comment out and test
|
||||
$mail->MsgHTML($content);
|
||||
$mail->AddAddress($to);
|
||||
$mail->msgHTML($content);
|
||||
$mail->addAddress($to);
|
||||
if ($cc)
|
||||
$mail->AddCC($cc);
|
||||
$mail->addCC($cc);
|
||||
if ($bcc)
|
||||
$mail->AddBCC($bcc);
|
||||
$mail->addBCC($bcc);
|
||||
//print_r2($file); exit;
|
||||
if ($file != "") {
|
||||
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);
|
||||
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);
|
||||
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,7 +1,7 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit;
|
||||
|
||||
@ini_set('memory_limit', '512M');
|
||||
@ini_set('memory_limit', '-1');
|
||||
|
||||
// 게시글리스트 썸네일 생성
|
||||
function get_list_thumbnail($bo_table, $wr_id, $thumb_width, $thumb_height, $is_create=false, $is_crop=true, $crop_mode='center', $is_sharpen=false, $um_value='80/0.5/3')
|
||||
|
||||
+1
-1
@@ -17,7 +17,7 @@ $sql = " select bo_table, bo_subject
|
||||
and bo_device <> 'pc' ";
|
||||
if(!$is_admin)
|
||||
$sql .= " and bo_use_cert = '' ";
|
||||
$sql .= " order by bo_table ";
|
||||
$sql .= " order by bo_order ";
|
||||
$result = sql_query($sql);
|
||||
for ($i=0; $row=sql_fetch_array($result); $i++) {
|
||||
// 이 함수가 바로 최신글을 추출하는 역할을 합니다.
|
||||
|
||||
@@ -10,14 +10,14 @@ if ($is_checkbox) $colspan++;
|
||||
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"; ?>">
|
||||
|
||||
<?php if ($is_category) { ?>
|
||||
<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">
|
||||
<?php echo $category_option ?>
|
||||
</ul>
|
||||
|
||||
@@ -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>
|
||||
|
||||
<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; ?>">
|
||||
<header>
|
||||
|
||||
@@ -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>
|
||||
|
||||
<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">
|
||||
|
||||
<?php if ($is_category) { ?>
|
||||
<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">
|
||||
<?php echo $category_option ?>
|
||||
</ul>
|
||||
|
||||
@@ -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>
|
||||
|
||||
<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; ?>">
|
||||
<header>
|
||||
|
||||
@@ -22,7 +22,30 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
|
||||
<section id="fregister_private">
|
||||
<h2>개인정보처리방침안내</h2>
|
||||
<textarea readonly><?php echo get_text($config['cf_privacy']) ?></textarea>
|
||||
<div class="tbl_head01 tbl_wrap">
|
||||
<table>
|
||||
<caption>개인정보처리방침안내</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>목적</th>
|
||||
<th>항목</th>
|
||||
<th>보유기간</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>이용자 식별 및 본인여부 확인</td>
|
||||
<td>아이디, 이름, 비밀번호</td>
|
||||
<td>회원 탈퇴 시까지</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>고객서비스 이용에 관한 통지,<br>CS대응을 위한 이용자 식별</td>
|
||||
<td>연락처 (이메일, 휴대전화번호)</td>
|
||||
<td>회원 탈퇴 시까지</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<fieldset class="fregister_agree">
|
||||
<label for="agree21">개인정보처리방침안내의 내용에 동의합니다.</label>
|
||||
<input type="checkbox" name="agree2" value="1" id="agree21">
|
||||
|
||||
@@ -80,6 +80,10 @@
|
||||
.fregister_agree label {display:inline-block;margin-right:5px}
|
||||
#fregister p {color:#e8180c;text-align:center}
|
||||
#fregister .btn_confirm {margin:15px 0}
|
||||
#fregister_private .tbl_head01 {margin:0}
|
||||
#fregister_private .tbl_head01 th{;text-align:center;border:1px solid #d1dee2;width:33%}
|
||||
#fregister_private .tbl_head01 td {border:1px solid #e9e9e9;background:#fff}
|
||||
#fregister_private .tbl_head01 caption{position:absolute;font-size:0;line-height:0;overflow:hidden;top:0;color:#fff}
|
||||
|
||||
/* 회원가입 입력 */
|
||||
#fregisterform #reg_mb_email, #fregisterform .frm_address {width:100%}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user