Compare commits
70
Commits
v5.5.8.3.1
...
v5.5.10
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5605b539f4 | ||
|
|
a8baa8dd7d | ||
|
|
16051b3049 | ||
|
|
db1d56e07b | ||
|
|
4455f7d3c9 | ||
|
|
398967f804 | ||
|
|
ee75b32b3c | ||
|
|
c869f29f0d | ||
|
|
c95168fb0c | ||
|
|
b8ffd99362 | ||
|
|
64e1fbe786 | ||
|
|
91715ff830 | ||
|
|
1fb9e28510 | ||
|
|
babbc9afdb | ||
|
|
04030f9274 | ||
|
|
3085703c61 | ||
|
|
20dc211a82 | ||
|
|
a773839338 | ||
|
|
84b22909c5 | ||
|
|
28bfcea9c2 | ||
|
|
8cd1df0f43 | ||
|
|
cf2a8ab282 | ||
|
|
941f3e135a | ||
|
|
4b9b1af01e | ||
|
|
41d48891f4 | ||
|
|
616f5b8d46 | ||
|
|
a96460948c | ||
|
|
337ee4e68f | ||
|
|
7af4888458 | ||
|
|
fdc695d08c | ||
|
|
9fe34dae1d | ||
|
|
4364058313 | ||
|
|
0642c48106 | ||
|
|
d74c7b24bf | ||
|
|
fec5569c71 | ||
|
|
876534a440 | ||
|
|
5d4ba1030e | ||
|
|
e43e424d80 | ||
|
|
5036254b69 | ||
|
|
2ae4046d29 | ||
|
|
ccdbdebdec | ||
|
|
1c4465a692 | ||
|
|
bcbabf50f2 | ||
|
|
3da5145bef | ||
|
|
6868cee8d1 | ||
|
|
870dcec68d | ||
|
|
4735d62770 | ||
|
|
2c88ef6d13 | ||
|
|
12ce06c2d2 | ||
|
|
3a7d06b19e | ||
|
|
641656047d | ||
|
|
3becc03d23 | ||
|
|
6eaa6ee22a | ||
|
|
a8524eb070 | ||
|
|
db9b4ffd50 | ||
|
|
9416b7dd9a | ||
|
|
1634065870 | ||
|
|
14af11d0fa | ||
|
|
ec3fdce5c7 | ||
|
|
79ce9ec984 | ||
|
|
8eb1d46be1 | ||
|
|
cbdaccbdec | ||
|
|
ff6b160774 | ||
|
|
f96ff445b9 | ||
|
|
6e684e80f2 | ||
|
|
ffc8706a76 | ||
|
|
8ec09b0059 | ||
|
|
af64737b63 | ||
|
|
81792d2595 | ||
|
|
bbbc568db8 |
+3
-4
@@ -617,13 +617,12 @@ if (!$member['mb_id']) {
|
||||
}
|
||||
}
|
||||
|
||||
// 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.
|
||||
$admin_key = md5($member['mb_datetime'] . get_real_client_ip() . $_SERVER['HTTP_USER_AGENT']);
|
||||
if (get_session('ss_mb_key') !== $admin_key) {
|
||||
|
||||
// 관리자의 클라이언트를 검증하여 일치하지 않으면 세션을 끊고 관리자에게 메일을 보낸다.
|
||||
if (!verify_mb_key($member)) {
|
||||
session_destroy();
|
||||
|
||||
include_once G5_LIB_PATH . '/mailer.lib.php';
|
||||
|
||||
// 메일 알림
|
||||
mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'] . ' 아이피로 XSS 공격이 있었습니다.<br><br>관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.<br><br>해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.' . G5_URL, 0);
|
||||
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ if (!defined('_GNUBOARD_')) {
|
||||
|
||||
// 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전이 통합됨에 따라 그누보드 버전만 표시
|
||||
// $print_version = defined('G5_YOUNGCART_VER') ? 'YoungCart Version '.G5_YOUNGCART_VER : 'Version '.G5_GNUBOARD_VER;
|
||||
$print_version = 'Version ' . G5_GNUBOARD_VER;
|
||||
$print_version = ($is_admin == 'super') ? 'Version ' . G5_GNUBOARD_VER : '';
|
||||
?>
|
||||
|
||||
<noscript>
|
||||
|
||||
@@ -191,7 +191,6 @@ if ($copy_case == 'schema_data_both') {
|
||||
sql_query($sql, false);
|
||||
|
||||
// 4.00.01
|
||||
// 위의 코드는 같은 테이블명을 사용하였다는 오류가 발생함. (희한하네 ㅡㅡ;)
|
||||
$sql = " select * from {$g5['board_file_table']} where bo_table = '$bo_table' ";
|
||||
$result = sql_query($sql, false);
|
||||
for ($i = 0; $row = sql_fetch_array($result); $i++) {
|
||||
|
||||
@@ -113,17 +113,20 @@ if ($w == "") {
|
||||
set co_id = '$co_id',
|
||||
$sql_common ";
|
||||
sql_query($sql);
|
||||
run_event('admin_content_created', $co_id);
|
||||
} elseif ($w == "u") {
|
||||
$sql = " update {$g5['content_table']}
|
||||
set $sql_common
|
||||
where co_id = '$co_id' ";
|
||||
sql_query($sql);
|
||||
run_event('admin_content_updated', $co_id);
|
||||
} elseif ($w == "d") {
|
||||
@unlink(G5_DATA_PATH . "/content/{$co_id}_h");
|
||||
@unlink(G5_DATA_PATH . "/content/{$co_id}_t");
|
||||
|
||||
$sql = " delete from {$g5['content_table']} where co_id = '$co_id' ";
|
||||
sql_query($sql);
|
||||
run_event('admin_content_deleted', $co_id);
|
||||
}
|
||||
|
||||
if (function_exists('get_admin_captcha_by')) {
|
||||
|
||||
@@ -207,6 +207,18 @@ if (defined('G5_USE_SHOP') && G5_USE_SHOP) {
|
||||
}
|
||||
}
|
||||
|
||||
// auth.au_menu 컬럼 크기 조정
|
||||
$sql = " SHOW COLUMNS FROM `{$g5['auth_table']}` LIKE 'au_menu' ";
|
||||
$row = sql_fetch($sql);
|
||||
if (
|
||||
stripos($row['Type'], 'varchar') !== false
|
||||
&& (int) preg_replace('/[^0-9]/', '', $row['Type']) <= 50
|
||||
) {
|
||||
sql_query(" ALTER TABLE `{$g5['auth_table']}` CHANGE `au_menu` `au_menu` VARCHAR(50) NOT NULL; ", true);
|
||||
|
||||
$is_check = true;
|
||||
}
|
||||
|
||||
$is_check = run_replace('admin_dbupgrade', $is_check);
|
||||
|
||||
$db_upgrade_msg = $is_check ? 'DB 업그레이드가 완료되었습니다.' : '더 이상 업그레이드 할 내용이 없습니다.<br>현재 DB 업그레이드가 완료된 상태입니다.';
|
||||
|
||||
@@ -30,6 +30,7 @@ if ($w == "")
|
||||
sql_query($sql);
|
||||
|
||||
$fa_id = sql_insert_id();
|
||||
run_event('admin_faq_item_created', $fa_id, $fm_id);
|
||||
}
|
||||
else if ($w == "u")
|
||||
{
|
||||
@@ -37,11 +38,14 @@ else if ($w == "u")
|
||||
set $sql_common
|
||||
where fa_id = '$fa_id' ";
|
||||
sql_query($sql);
|
||||
run_event('admin_faq_item_updated', $fa_id, $fm_id);
|
||||
|
||||
}
|
||||
else if ($w == "d")
|
||||
{
|
||||
$sql = " delete from {$g5['faq_table']} where fa_id = '$fa_id' ";
|
||||
sql_query($sql);
|
||||
run_event('admin_faq_item_deleted', $fa_id, $fm_id);
|
||||
}
|
||||
|
||||
if ($w == 'd')
|
||||
|
||||
@@ -49,9 +49,13 @@ if ($w == "") {
|
||||
sql_query($sql);
|
||||
|
||||
$fm_id = sql_insert_id();
|
||||
run_event('admin_faq_master_created', $fm_id);
|
||||
|
||||
} elseif ($w == "u") {
|
||||
$sql = " update {$g5['faq_master_table']} $sql_common where fm_id = '$fm_id' ";
|
||||
sql_query($sql);
|
||||
run_event('admin_faq_master_updated', $fm_id);
|
||||
|
||||
} elseif ($w == "d") {
|
||||
@unlink(G5_DATA_PATH . "/faq/{$fm_id}_h");
|
||||
@unlink(G5_DATA_PATH . "/faq/{$fm_id}_t");
|
||||
@@ -63,6 +67,8 @@ if ($w == "") {
|
||||
// FAQ상세삭제
|
||||
$sql = " delete from {$g5['faq_table']} where fm_id = '$fm_id' ";
|
||||
sql_query($sql);
|
||||
|
||||
run_event('admin_faq_master_deleted', $fm_id);
|
||||
}
|
||||
|
||||
if ($w == "" || $w == "u") {
|
||||
|
||||
+298
-277
@@ -3,8 +3,10 @@ $sub_menu = '100000';
|
||||
require_once './_common.php';
|
||||
|
||||
@require_once './safe_check.php';
|
||||
|
||||
if (function_exists('social_log_file_delete')) {
|
||||
social_log_file_delete(86400); //소셜로그인 디버그 파일 24시간 지난것은 삭제
|
||||
//소셜로그인 디버그 파일 24시간 지난것은 삭제
|
||||
social_log_file_delete(86400);
|
||||
}
|
||||
|
||||
$g5['title'] = '관리자메인';
|
||||
@@ -14,304 +16,323 @@ $new_member_rows = 5;
|
||||
$new_point_rows = 5;
|
||||
$new_write_rows = 5;
|
||||
|
||||
$sql_common = " from {$g5['member_table']} ";
|
||||
|
||||
$sql_search = " where (1) ";
|
||||
|
||||
if ($is_admin != 'super') {
|
||||
$sql_search .= " and mb_level <= '{$member['mb_level']}' ";
|
||||
$addtional_content_before = run_replace('adm_index_addtional_content_before', '', $is_admin, $auth, $member);
|
||||
if ($addtional_content_before) {
|
||||
echo $addtional_content_before;
|
||||
}
|
||||
|
||||
if (!$sst) {
|
||||
$sst = "mb_datetime";
|
||||
$sod = "desc";
|
||||
}
|
||||
if (!auth_check_menu($auth, '200100', 'r', true)) {
|
||||
$sql_common = " from {$g5['member_table']} ";
|
||||
|
||||
$sql_order = " order by {$sst} {$sod} ";
|
||||
$sql_search = " where (1) ";
|
||||
|
||||
$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
|
||||
$row = sql_fetch($sql);
|
||||
$total_count = $row['cnt'];
|
||||
|
||||
// 탈퇴회원수
|
||||
$sql = " select count(*) as cnt {$sql_common} {$sql_search} and mb_leave_date <> '' {$sql_order} ";
|
||||
$row = sql_fetch($sql);
|
||||
$leave_count = $row['cnt'];
|
||||
|
||||
// 차단회원수
|
||||
$sql = " select count(*) as cnt {$sql_common} {$sql_search} and mb_intercept_date <> '' {$sql_order} ";
|
||||
$row = sql_fetch($sql);
|
||||
$intercept_count = $row['cnt'];
|
||||
|
||||
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$new_member_rows} ";
|
||||
$result = sql_query($sql);
|
||||
|
||||
$colspan = 12;
|
||||
?>
|
||||
|
||||
<section>
|
||||
<h2>신규가입회원 <?php echo $new_member_rows ?>건 목록</h2>
|
||||
<div class="local_desc02 local_desc">
|
||||
총회원수 <?php echo number_format($total_count) ?>명 중 차단 <?php echo number_format($intercept_count) ?>명, 탈퇴 : <?php echo number_format($leave_count) ?>명
|
||||
</div>
|
||||
|
||||
<div class="tbl_head01 tbl_wrap">
|
||||
<table>
|
||||
<caption>신규가입회원</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">회원아이디</th>
|
||||
<th scope="col">이름</th>
|
||||
<th scope="col">닉네임</th>
|
||||
<th scope="col">권한</th>
|
||||
<th scope="col">포인트</th>
|
||||
<th scope="col">수신</th>
|
||||
<th scope="col">공개</th>
|
||||
<th scope="col">인증</th>
|
||||
<th scope="col">차단</th>
|
||||
<th scope="col">그룹</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
for ($i = 0; $row = sql_fetch_array($result); $i++) {
|
||||
// 접근가능한 그룹수
|
||||
$sql2 = " select count(*) as cnt from {$g5['group_member_table']} where mb_id = '{$row['mb_id']}' ";
|
||||
$row2 = sql_fetch($sql2);
|
||||
$group = "";
|
||||
if ($row2['cnt']) {
|
||||
$group = '<a href="./boardgroupmember_form.php?mb_id=' . $row['mb_id'] . '">' . $row2['cnt'] . '</a>';
|
||||
}
|
||||
|
||||
if ($is_admin == 'group') {
|
||||
$s_mod = '';
|
||||
$s_del = '';
|
||||
} else {
|
||||
$s_mod = '<a href="./member_form.php?$qstr&w=u&mb_id=' . $row['mb_id'] . '">수정</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>';
|
||||
|
||||
$leave_date = $row['mb_leave_date'] ? $row['mb_leave_date'] : date("Ymd", G5_SERVER_TIME);
|
||||
$intercept_date = $row['mb_intercept_date'] ? $row['mb_intercept_date'] : date("Ymd", G5_SERVER_TIME);
|
||||
|
||||
$mb_nick = get_sideview($row['mb_id'], get_text($row['mb_nick']), $row['mb_email'], $row['mb_homepage']);
|
||||
|
||||
$mb_id = $row['mb_id'];
|
||||
?>
|
||||
<tr>
|
||||
<td class="td_mbid"><?php echo $mb_id ?></td>
|
||||
<td class="td_mbname"><?php echo get_text($row['mb_name']); ?></td>
|
||||
<td class="td_mbname sv_use">
|
||||
<div><?php echo $mb_nick ?></div>
|
||||
</td>
|
||||
<td class="td_num"><?php echo $row['mb_level'] ?></td>
|
||||
<td><a href="./point_list.php?sfl=mb_id&stx=<?php echo $row['mb_id'] ?>"><?php echo number_format($row['mb_point']) ?></a></td>
|
||||
<td class="td_boolean"><?php echo $row['mb_mailling'] ? '예' : '아니오'; ?></td>
|
||||
<td class="td_boolean"><?php echo $row['mb_open'] ? '예' : '아니오'; ?></td>
|
||||
<td class="td_boolean"><?php echo preg_match('/[1-9]/', $row['mb_email_certify']) ? '예' : '아니오'; ?></td>
|
||||
<td class="td_boolean"><?php echo $row['mb_intercept_date'] ? '예' : '아니오'; ?></td>
|
||||
<td class="td_category"><?php echo $group ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
if ($i == 0) {
|
||||
echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="btn_list03 btn_list">
|
||||
<a href="./member_list.php">회원 전체보기</a>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
|
||||
<?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 ";
|
||||
|
||||
if ($gr_id) {
|
||||
$sql_common .= " and b.gr_id = '$gr_id' ";
|
||||
}
|
||||
if (isset($view) && $view) {
|
||||
if ($view == 'w') {
|
||||
$sql_common .= " and a.wr_id = a.wr_parent ";
|
||||
} elseif ($view == 'c') {
|
||||
$sql_common .= " and a.wr_id <> a.wr_parent ";
|
||||
if ($is_admin != 'super') {
|
||||
$sql_search .= " and mb_level <= '{$member['mb_level']}' ";
|
||||
}
|
||||
}
|
||||
$sql_order = " order by a.bn_id desc ";
|
||||
|
||||
$sql = " select count(*) as cnt {$sql_common} ";
|
||||
$row = sql_fetch($sql);
|
||||
$total_count = $row['cnt'];
|
||||
if (!$sst) {
|
||||
$sst = "mb_datetime";
|
||||
$sod = "desc";
|
||||
}
|
||||
|
||||
$colspan = 5;
|
||||
?>
|
||||
$sql_order = " order by {$sst} {$sod} ";
|
||||
|
||||
<section>
|
||||
<h2>최근게시물</h2>
|
||||
$sql = " SELECT count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
|
||||
$row = sql_fetch($sql);
|
||||
$total_count = $row['cnt'];
|
||||
|
||||
<div class="tbl_head01 tbl_wrap">
|
||||
<table>
|
||||
<caption>최근게시물</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>
|
||||
<tbody>
|
||||
<?php
|
||||
$sql = " select a.*, b.bo_subject, c.gr_subject, c.gr_id {$sql_common} {$sql_order} limit {$new_write_rows} ";
|
||||
$result = sql_query($sql);
|
||||
for ($i = 0; $row = sql_fetch_array($result); $i++) {
|
||||
$tmp_write_table = $g5['write_prefix'] . $row['bo_table'];
|
||||
// 탈퇴회원수
|
||||
$sql = " select count(*) as cnt {$sql_common} {$sql_search} and mb_leave_date <> '' {$sql_order} ";
|
||||
$row = sql_fetch($sql);
|
||||
$leave_count = $row['cnt'];
|
||||
|
||||
// 원글
|
||||
if ($row['wr_id'] == $row['wr_parent']) {
|
||||
$comment = "";
|
||||
$comment_link = "";
|
||||
$row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '{$row['wr_id']}' ");
|
||||
// 차단회원수
|
||||
$sql = " SELECT count(*) as cnt {$sql_common} {$sql_search} and mb_intercept_date <> '' {$sql_order} ";
|
||||
$row = sql_fetch($sql);
|
||||
$intercept_count = $row['cnt'];
|
||||
|
||||
$name = get_sideview($row2['mb_id'], get_text(cut_str($row2['wr_name'], $config['cf_cut_name'])), $row2['wr_email'], $row2['wr_homepage']);
|
||||
// 당일인 경우 시간으로 표시함
|
||||
$datetime = substr($row2['wr_datetime'], 0, 10);
|
||||
$datetime2 = $row2['wr_datetime'];
|
||||
if ($datetime == G5_TIME_YMD) {
|
||||
$datetime2 = substr($datetime2, 11, 5);
|
||||
} else {
|
||||
$datetime2 = substr($datetime2, 5, 5);
|
||||
}
|
||||
} else // 코멘트
|
||||
{
|
||||
$comment = '댓글. ';
|
||||
$comment_link = '#c_' . $row['wr_id'];
|
||||
$row2 = sql_fetch(" select * from {$tmp_write_table} where wr_id = '{$row['wr_parent']}' ");
|
||||
$row3 = sql_fetch(" select mb_id, wr_name, wr_email, wr_homepage, wr_datetime from {$tmp_write_table} where wr_id = '{$row['wr_id']}' ");
|
||||
$sql = " SELECT * {$sql_common} {$sql_search} {$sql_order} limit {$new_member_rows} ";
|
||||
$result = sql_query($sql);
|
||||
|
||||
$name = get_sideview($row3['mb_id'], get_text(cut_str($row3['wr_name'], $config['cf_cut_name'])), $row3['wr_email'], $row3['wr_homepage']);
|
||||
// 당일인 경우 시간으로 표시함
|
||||
$datetime = substr($row3['wr_datetime'], 0, 10);
|
||||
$datetime2 = $row3['wr_datetime'];
|
||||
if ($datetime == G5_TIME_YMD) {
|
||||
$datetime2 = substr($datetime2, 11, 5);
|
||||
} else {
|
||||
$datetime2 = substr($datetime2, 5, 5);
|
||||
}
|
||||
}
|
||||
?>
|
||||
$colspan = 12;
|
||||
?>
|
||||
|
||||
<section>
|
||||
<h2>신규가입회원 <?php echo $new_member_rows ?>건 목록</h2>
|
||||
<div class="local_desc02 local_desc">
|
||||
총회원수 <?php echo number_format($total_count) ?>명 중 차단 <?php echo number_format($intercept_count) ?>명, 탈퇴 : <?php echo number_format($leave_count) ?>명
|
||||
</div>
|
||||
|
||||
<div class="tbl_head01 tbl_wrap">
|
||||
<table>
|
||||
<caption>신규가입회원</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="td_category"><a href="<?php echo G5_BBS_URL ?>/new.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo cut_str($row['gr_subject'], 10) ?></a></td>
|
||||
<td class="td_category"><a href="<?php echo get_pretty_url($row['bo_table']) ?>"><?php echo cut_str($row['bo_subject'], 20) ?></a></td>
|
||||
<td><a href="<?php echo get_pretty_url($row['bo_table'], $row2['wr_id']); ?><?php echo $comment_link ?>"><?php echo $comment ?><?php echo conv_subject($row2['wr_subject'], 100) ?></a></td>
|
||||
<td class="td_mbname">
|
||||
<div><?php echo $name ?></div>
|
||||
</td>
|
||||
<td class="td_datetime"><?php echo $datetime ?></td>
|
||||
<th scope="col">회원아이디</th>
|
||||
<th scope="col">이름</th>
|
||||
<th scope="col">닉네임</th>
|
||||
<th scope="col">권한</th>
|
||||
<th scope="col">포인트</th>
|
||||
<th scope="col">수신</th>
|
||||
<th scope="col">공개</th>
|
||||
<th scope="col">인증</th>
|
||||
<th scope="col">차단</th>
|
||||
<th scope="col">그룹</th>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
}
|
||||
if ($i == 0) {
|
||||
echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="btn_list03 btn_list">
|
||||
<a href="<?php echo G5_BBS_URL ?>/new.php">최근게시물 더보기</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php
|
||||
$sql_common = " from {$g5['point_table']} ";
|
||||
$sql_search = " where (1) ";
|
||||
$sql_order = " order by po_id desc ";
|
||||
|
||||
$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
|
||||
$row = sql_fetch($sql);
|
||||
$total_count = $row['cnt'];
|
||||
|
||||
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$new_point_rows} ";
|
||||
$result = sql_query($sql);
|
||||
|
||||
$colspan = 7;
|
||||
?>
|
||||
|
||||
<section>
|
||||
<h2>최근 포인트 발생내역</h2>
|
||||
<div class="local_desc02 local_desc">
|
||||
전체 <?php echo number_format($total_count) ?> 건 중 <?php echo $new_point_rows ?>건 목록
|
||||
</div>
|
||||
|
||||
<div class="tbl_head01 tbl_wrap">
|
||||
<table>
|
||||
<caption>최근 포인트 발생내역</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">회원아이디</th>
|
||||
<th scope="col">이름</th>
|
||||
<th scope="col">닉네임</th>
|
||||
<th scope="col">일시</th>
|
||||
<th scope="col">포인트 내용</th>
|
||||
<th scope="col">포인트</th>
|
||||
<th scope="col">포인트합</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$row2['mb_id'] = '';
|
||||
for ($i = 0; $row = sql_fetch_array($result); $i++) {
|
||||
if ($row2['mb_id'] != $row['mb_id']) {
|
||||
$sql2 = " select mb_id, mb_name, mb_nick, mb_email, mb_homepage, mb_point from {$g5['member_table']} where mb_id = '{$row['mb_id']}' ";
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
for ($i = 0; $row = sql_fetch_array($result); $i++) {
|
||||
// 접근가능한 그룹수
|
||||
$sql2 = " SELECT count(*) as cnt from {$g5['group_member_table']} where mb_id = '{$row['mb_id']}' ";
|
||||
$row2 = sql_fetch($sql2);
|
||||
$group = "";
|
||||
if ($row2['cnt']) {
|
||||
$group = '<a href="./boardgroupmember_form.php?mb_id=' . $row['mb_id'] . '">' . $row2['cnt'] . '</a>';
|
||||
}
|
||||
|
||||
if ($is_admin == 'group') {
|
||||
$s_mod = '';
|
||||
$s_del = '';
|
||||
} else {
|
||||
$s_mod = '<a href="./member_form.php?$qstr&w=u&mb_id=' . $row['mb_id'] . '">수정</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>';
|
||||
|
||||
$leave_date = $row['mb_leave_date'] ? $row['mb_leave_date'] : date("Ymd", G5_SERVER_TIME);
|
||||
$intercept_date = $row['mb_intercept_date'] ? $row['mb_intercept_date'] : date("Ymd", G5_SERVER_TIME);
|
||||
|
||||
$mb_nick = get_sideview($row['mb_id'], get_text($row['mb_nick']), $row['mb_email'], $row['mb_homepage']);
|
||||
|
||||
$mb_id = $row['mb_id'];
|
||||
?>
|
||||
<tr>
|
||||
<td class="td_mbid"><?php echo $mb_id ?></td>
|
||||
<td class="td_mbname"><?php echo get_text($row['mb_name']); ?></td>
|
||||
<td class="td_mbname sv_use">
|
||||
<div><?php echo $mb_nick ?></div>
|
||||
</td>
|
||||
<td class="td_num"><?php echo $row['mb_level'] ?></td>
|
||||
<td><a href="./point_list.php?sfl=mb_id&stx=<?php echo $row['mb_id'] ?>"><?php echo number_format($row['mb_point']) ?></a></td>
|
||||
<td class="td_boolean"><?php echo $row['mb_mailling'] ? '예' : '아니오'; ?></td>
|
||||
<td class="td_boolean"><?php echo $row['mb_open'] ? '예' : '아니오'; ?></td>
|
||||
<td class="td_boolean"><?php echo preg_match('/[1-9]/', $row['mb_email_certify']) ? '예' : '아니오'; ?></td>
|
||||
<td class="td_boolean"><?php echo $row['mb_intercept_date'] ? '예' : '아니오'; ?></td>
|
||||
<td class="td_category"><?php echo $group ?></td>
|
||||
</tr>
|
||||
<?php
|
||||
}
|
||||
|
||||
$mb_nick = get_sideview($row['mb_id'], $row2['mb_nick'], $row2['mb_email'], $row2['mb_homepage']);
|
||||
|
||||
$link1 = $link2 = "";
|
||||
if (!preg_match("/^\@/", $row['po_rel_table']) && $row['po_rel_table']) {
|
||||
$link1 = '<a href="' . get_pretty_url($row['po_rel_table'], $row['po_rel_id']) . '" target="_blank">';
|
||||
$link2 = '</a>';
|
||||
if ($i == 0) {
|
||||
echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
|
||||
}
|
||||
?>
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="btn_list03 btn_list">
|
||||
<a href="./member_list.php">회원 전체보기</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php
|
||||
} //endif 최신 회원
|
||||
|
||||
if (!auth_check_menu($auth, '300100', 'r', true)) {
|
||||
|
||||
$sql_common = " from {$g5['board_new_table']} a, {$g5['board_table']} b, {$g5['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id ";
|
||||
|
||||
if ($gr_id) {
|
||||
$sql_common .= " and b.gr_id = '{$gr_id}' ";
|
||||
}
|
||||
if (isset($view) && $view) {
|
||||
if ($view == 'w') {
|
||||
$sql_common .= " and a.wr_id = a.wr_parent ";
|
||||
} elseif ($view == 'c') {
|
||||
$sql_common .= " and a.wr_id <> a.wr_parent ";
|
||||
}
|
||||
}
|
||||
$sql_order = " order by a.bn_id desc ";
|
||||
|
||||
$sql = " SELECT count(*) as cnt {$sql_common} ";
|
||||
$row = sql_fetch($sql);
|
||||
$total_count = $row['cnt'];
|
||||
|
||||
$colspan = 5;
|
||||
?>
|
||||
|
||||
<section>
|
||||
<h2>최근게시물</h2>
|
||||
|
||||
<div class="tbl_head01 tbl_wrap">
|
||||
<table>
|
||||
<caption>최근게시물</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<td class="td_mbid"><a href="./point_list.php?sfl=mb_id&stx=<?php echo $row['mb_id'] ?>"><?php echo $row['mb_id'] ?></a></td>
|
||||
<td class="td_mbname"><?php echo get_text($row2['mb_name']); ?></td>
|
||||
<td class="td_name sv_use">
|
||||
<div><?php echo $mb_nick ?></div>
|
||||
</td>
|
||||
<td class="td_datetime"><?php echo $row['po_datetime'] ?></td>
|
||||
<td><?php echo $link1 . $row['po_content'] . $link2 ?></td>
|
||||
<td class="td_numbig"><?php echo number_format($row['po_point']) ?></td>
|
||||
<td class="td_numbig"><?php echo number_format($row['po_mb_point']) ?></td>
|
||||
<th scope="col">그룹</th>
|
||||
<th scope="col">게시판</th>
|
||||
<th scope="col">제목</th>
|
||||
<th scope="col">이름</th>
|
||||
<th scope="col">일시</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$sql = " SELECT a.*, b.bo_subject, c.gr_subject, c.gr_id {$sql_common} {$sql_order} limit {$new_write_rows} ";
|
||||
$result = sql_query($sql);
|
||||
for ($i = 0; $row = sql_fetch_array($result); $i++) {
|
||||
$tmp_write_table = $g5['write_prefix'] . $row['bo_table'];
|
||||
|
||||
<?php
|
||||
}
|
||||
if ($row['wr_id'] == $row['wr_parent']) {
|
||||
// 원글
|
||||
$comment = "";
|
||||
$comment_link = "";
|
||||
$row2 = sql_fetch(" SELECT * from {$tmp_write_table} where wr_id = '{$row['wr_id']}' ");
|
||||
|
||||
if ($i == 0) {
|
||||
echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
$name = get_sideview($row2['mb_id'], get_text(cut_str($row2['wr_name'], $config['cf_cut_name'])), $row2['wr_email'], $row2['wr_homepage']);
|
||||
// 당일인 경우 시간으로 표시함
|
||||
$datetime = substr($row2['wr_datetime'], 0, 10);
|
||||
$datetime2 = $row2['wr_datetime'];
|
||||
if ($datetime == G5_TIME_YMD) {
|
||||
$datetime2 = substr($datetime2, 11, 5);
|
||||
} else {
|
||||
$datetime2 = substr($datetime2, 5, 5);
|
||||
}
|
||||
} else {
|
||||
// 코멘트
|
||||
$comment = '댓글. ';
|
||||
$comment_link = '#c_' . $row['wr_id'];
|
||||
$row2 = sql_fetch(" SELECT * from {$tmp_write_table} where wr_id = '{$row['wr_parent']}' ");
|
||||
$row3 = sql_fetch(" SELECT mb_id, wr_name, wr_email, wr_homepage, wr_datetime from {$tmp_write_table} where wr_id = '{$row['wr_id']}' ");
|
||||
|
||||
<div class="btn_list03 btn_list">
|
||||
<a href="./point_list.php">포인트내역 전체보기</a>
|
||||
</div>
|
||||
</section>
|
||||
$name = get_sideview($row3['mb_id'], get_text(cut_str($row3['wr_name'], $config['cf_cut_name'])), $row3['wr_email'], $row3['wr_homepage']);
|
||||
// 당일인 경우 시간으로 표시함
|
||||
$datetime = substr($row3['wr_datetime'], 0, 10);
|
||||
$datetime2 = $row3['wr_datetime'];
|
||||
if ($datetime == G5_TIME_YMD) {
|
||||
$datetime2 = substr($datetime2, 11, 5);
|
||||
} else {
|
||||
$datetime2 = substr($datetime2, 5, 5);
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
<?php
|
||||
require_once './admin.tail.php';
|
||||
<tr>
|
||||
<td class="td_category"><a href="<?php echo G5_BBS_URL ?>/new.php?gr_id=<?php echo $row['gr_id'] ?>"><?php echo cut_str($row['gr_subject'], 10) ?></a></td>
|
||||
<td class="td_category"><a href="<?php echo get_pretty_url($row['bo_table']) ?>"><?php echo cut_str($row['bo_subject'], 20) ?></a></td>
|
||||
<td><a href="<?php echo get_pretty_url($row['bo_table'], $row2['wr_id']); ?><?php echo $comment_link ?>"><?php echo $comment ?><?php echo conv_subject($row2['wr_subject'], 100) ?></a></td>
|
||||
<td class="td_mbname">
|
||||
<div><?php echo $name ?></div>
|
||||
</td>
|
||||
<td class="td_datetime"><?php echo $datetime ?></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
}
|
||||
if ($i == 0) {
|
||||
echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="btn_list03 btn_list">
|
||||
<a href="<?php echo G5_BBS_URL ?>/new.php">최근게시물 더보기</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php
|
||||
} //endif 최근게시물
|
||||
|
||||
if (!auth_check_menu($auth, '200200', 'r', true)) {
|
||||
|
||||
$sql_common = " from {$g5['point_table']} ";
|
||||
$sql_search = " where (1) ";
|
||||
$sql_order = " order by po_id desc ";
|
||||
|
||||
$sql = " SELECT count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
|
||||
$row = sql_fetch($sql);
|
||||
$total_count = $row['cnt'];
|
||||
|
||||
$sql = " SELECT * {$sql_common} {$sql_search} {$sql_order} limit {$new_point_rows} ";
|
||||
$result = sql_query($sql);
|
||||
|
||||
$colspan = 7;
|
||||
?>
|
||||
|
||||
<section>
|
||||
<h2>최근 포인트 발생내역</h2>
|
||||
<div class="local_desc02 local_desc">
|
||||
전체 <?php echo number_format($total_count) ?> 건 중 <?php echo $new_point_rows ?>건 목록
|
||||
</div>
|
||||
|
||||
<div class="tbl_head01 tbl_wrap">
|
||||
<table>
|
||||
<caption>최근 포인트 발생내역</caption>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col">회원아이디</th>
|
||||
<th scope="col">이름</th>
|
||||
<th scope="col">닉네임</th>
|
||||
<th scope="col">일시</th>
|
||||
<th scope="col">포인트 내용</th>
|
||||
<th scope="col">포인트</th>
|
||||
<th scope="col">포인트합</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php
|
||||
$row2['mb_id'] = '';
|
||||
for ($i = 0; $row = sql_fetch_array($result); $i++) {
|
||||
if ($row2['mb_id'] != $row['mb_id']) {
|
||||
$sql2 = " SELECT mb_id, mb_name, mb_nick, mb_email, mb_homepage, mb_point from {$g5['member_table']} where mb_id = '{$row['mb_id']}' ";
|
||||
$row2 = sql_fetch($sql2);
|
||||
}
|
||||
|
||||
$mb_nick = get_sideview($row['mb_id'], $row2['mb_nick'], $row2['mb_email'], $row2['mb_homepage']);
|
||||
|
||||
$link1 = $link2 = "";
|
||||
if (!preg_match("/^\@/", $row['po_rel_table']) && $row['po_rel_table']) {
|
||||
$link1 = '<a href="' . get_pretty_url($row['po_rel_table'], $row['po_rel_id']) . '" target="_blank">';
|
||||
$link2 = '</a>';
|
||||
}
|
||||
?>
|
||||
|
||||
<tr>
|
||||
<td class="td_mbid"><a href="./point_list.php?sfl=mb_id&stx=<?php echo $row['mb_id'] ?>"><?php echo $row['mb_id'] ?></a></td>
|
||||
<td class="td_mbname"><?php echo get_text($row2['mb_name']); ?></td>
|
||||
<td class="td_name sv_use">
|
||||
<div><?php echo $mb_nick ?></div>
|
||||
</td>
|
||||
<td class="td_datetime"><?php echo $row['po_datetime'] ?></td>
|
||||
<td><?php echo $link1 . $row['po_content'] . $link2 ?></td>
|
||||
<td class="td_numbig"><?php echo number_format($row['po_point']) ?></td>
|
||||
<td class="td_numbig"><?php echo number_format($row['po_mb_point']) ?></td>
|
||||
</tr>
|
||||
|
||||
<?php
|
||||
}
|
||||
|
||||
if ($i == 0) {
|
||||
echo '<tr><td colspan="' . $colspan . '" class="empty_table">자료가 없습니다.</td></tr>';
|
||||
}
|
||||
?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="btn_list03 btn_list">
|
||||
<a href="./point_list.php">포인트내역 전체보기</a>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php
|
||||
} //endif
|
||||
|
||||
$addtional_content_after = run_replace('adm_index_addtional_content_after', '', $is_admin, $auth, $member);
|
||||
if ($addtional_content_after) {
|
||||
echo $addtional_content_after;
|
||||
}
|
||||
require_once './admin.tail.php';
|
||||
@@ -19,6 +19,7 @@ for ($i = 0; $i < $post_count_chk; $i++) {
|
||||
|
||||
$sql = " delete from {$g5['mail_table']} where ma_id = '$ma_id' ";
|
||||
sql_query($sql);
|
||||
run_event('admin_mail_deleted', $ma_id);
|
||||
}
|
||||
|
||||
goto_url('./mail_list.php');
|
||||
|
||||
@@ -21,6 +21,10 @@ if ($w == '') {
|
||||
ma_time = '" . G5_TIME_YMDHIS . "',
|
||||
ma_ip = '{$_SERVER['REMOTE_ADDR']}' ";
|
||||
sql_query($sql);
|
||||
|
||||
$ma_id = sql_insert_id();
|
||||
run_event('admin_mail_created', $ma_id);
|
||||
|
||||
} elseif ($w == 'u') {
|
||||
$sql = " update {$g5['mail_table']}
|
||||
set ma_subject = '{$ma_subject}',
|
||||
@@ -29,9 +33,12 @@ if ($w == '') {
|
||||
ma_ip = '{$_SERVER['REMOTE_ADDR']}'
|
||||
where ma_id = '{$ma_id}' ";
|
||||
sql_query($sql);
|
||||
run_event('admin_mail_updated', $ma_id);
|
||||
|
||||
} elseif ($w == 'd') {
|
||||
$sql = " delete from {$g5['mail_table']} where ma_id = '{$ma_id}' ";
|
||||
sql_query($sql);
|
||||
run_event('admin_mail_deleted', $ma_id);
|
||||
}
|
||||
|
||||
goto_url('./mail_list.php');
|
||||
|
||||
@@ -59,14 +59,16 @@ $sql_common = " nw_device = '{$posts['nw_device']}',
|
||||
if ($w == "") {
|
||||
$sql = " insert {$g5['new_win_table']} set $sql_common ";
|
||||
sql_query($sql);
|
||||
|
||||
$nw_id = sql_insert_id();
|
||||
run_event('admin_newwin_created', $nw_id);
|
||||
} elseif ($w == "u") {
|
||||
$sql = " update {$g5['new_win_table']} set $sql_common where nw_id = '$nw_id' ";
|
||||
sql_query($sql);
|
||||
run_event('admin_newwin_updated', $nw_id);
|
||||
} elseif ($w == "d") {
|
||||
$sql = " delete from {$g5['new_win_table']} where nw_id = '$nw_id' ";
|
||||
sql_query($sql);
|
||||
run_event('admin_newwin_deleted', $nw_id);
|
||||
}
|
||||
|
||||
if ($w == "d") {
|
||||
|
||||
@@ -108,6 +108,8 @@ $sql = " update {$g5['qa_config_table']}
|
||||
qa_5 = '{$_POST['qa_5']}' ";
|
||||
sql_query($sql);
|
||||
|
||||
run_event('admin_qa_config_updated');
|
||||
|
||||
if (function_exists('get_admin_captcha_by')) {
|
||||
get_admin_captcha_by('remove');
|
||||
}
|
||||
|
||||
@@ -193,6 +193,7 @@ if ($w == "")
|
||||
ca_name = '$ca_name',
|
||||
$sql_common ";
|
||||
sql_query($sql);
|
||||
run_event('shop_admin_category_created', $ca_id);
|
||||
}
|
||||
else if ($w == "u")
|
||||
{
|
||||
@@ -212,6 +213,7 @@ else if ($w == "u")
|
||||
$sql .= " and ca_mb_id = '{$member['mb_id']}' ";
|
||||
sql_query($sql);
|
||||
}
|
||||
run_event('shop_admin_category_updated', $ca_id);
|
||||
}
|
||||
else if ($w == "d")
|
||||
{
|
||||
@@ -243,6 +245,7 @@ else if ($w == "d")
|
||||
// 분류 삭제
|
||||
$sql = " delete from {$g5['g5_shop_category_table']} where ca_id = '$ca_id' ";
|
||||
sql_query($sql);
|
||||
run_event('shop_admin_category_deleted', $ca_id);
|
||||
}
|
||||
|
||||
if(function_exists('get_admin_captcha_by'))
|
||||
|
||||
+62
-60
@@ -112,7 +112,7 @@ function get_max_value($arr)
|
||||
return array_pop($arr);
|
||||
}
|
||||
?>
|
||||
|
||||
<?php if (! auth_check_menu($auth, '400400', 'r', true)) { ?>
|
||||
<div class="sidx">
|
||||
<section id="anc_sidx_ord">
|
||||
<h2>주문현황</h2>
|
||||
@@ -368,6 +368,66 @@ function get_max_value($arr)
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
jQuery(function($) {
|
||||
graph_draw();
|
||||
|
||||
$("#sidx_graph_area div").hover(
|
||||
function() {
|
||||
if($(this).is(":animated"))
|
||||
return false;
|
||||
|
||||
var title = $(this).attr("title");
|
||||
if(title && $(this).data("title") == undefined)
|
||||
$(this).data("title", title);
|
||||
var left = parseInt($(this).css("left")) + 10;
|
||||
var bottom = $(this).height() + 5;
|
||||
|
||||
$(this)
|
||||
.attr("title", "")
|
||||
.append("<div id=\"price_tooltip\"><div></div></div>");
|
||||
$("#price_tooltip")
|
||||
.find("div")
|
||||
.html(title)
|
||||
.end()
|
||||
// .css({ left: left+"px", bottom: bottom+"px" })
|
||||
.show(200);
|
||||
},
|
||||
function() {
|
||||
if($(this).is(":animated"))
|
||||
return false;
|
||||
|
||||
$(this).attr("title", $(this).data("title"));
|
||||
$("#price_tooltip").remove();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
function graph_draw()
|
||||
{
|
||||
var g_h1 = new Array("<?php echo implode('", "', $h_val['order']); ?>");
|
||||
var g_h2 = new Array("<?php echo implode('", "', $h_val['cancel']); ?>");
|
||||
var duration = 600;
|
||||
|
||||
var $el = $("#sidx_graph_area li");
|
||||
var h1, h2;
|
||||
var $g1, $g2;
|
||||
|
||||
$el.each(function(index) {
|
||||
h1 = g_h1[index];
|
||||
h2 = g_h2[index];
|
||||
|
||||
$g1 = $(this).find(".order");
|
||||
$g2 = $(this).find(".cancel");
|
||||
|
||||
$g1.animate({ height: h1+"px" }, duration);
|
||||
$g2.animate({ height: h2+"px" }, duration);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<?php } //endif ?>
|
||||
<?php if ($is_admin === 'super') { ?>
|
||||
<div class="sidx sidx_cs">
|
||||
<section id="anc_sidx_oneq">
|
||||
<h2>1:1문의</h2>
|
||||
@@ -480,64 +540,6 @@ function get_max_value($arr)
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function() {
|
||||
graph_draw();
|
||||
|
||||
$("#sidx_graph_area div").hover(
|
||||
function() {
|
||||
if($(this).is(":animated"))
|
||||
return false;
|
||||
|
||||
var title = $(this).attr("title");
|
||||
if(title && $(this).data("title") == undefined)
|
||||
$(this).data("title", title);
|
||||
var left = parseInt($(this).css("left")) + 10;
|
||||
var bottom = $(this).height() + 5;
|
||||
|
||||
$(this)
|
||||
.attr("title", "")
|
||||
.append("<div id=\"price_tooltip\"><div></div></div>");
|
||||
$("#price_tooltip")
|
||||
.find("div")
|
||||
.html(title)
|
||||
.end()
|
||||
// .css({ left: left+"px", bottom: bottom+"px" })
|
||||
.show(200);
|
||||
},
|
||||
function() {
|
||||
if($(this).is(":animated"))
|
||||
return false;
|
||||
|
||||
$(this).attr("title", $(this).data("title"));
|
||||
$("#price_tooltip").remove();
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
function graph_draw()
|
||||
{
|
||||
var g_h1 = new Array("<?php echo implode('", "', $h_val['order']); ?>");
|
||||
var g_h2 = new Array("<?php echo implode('", "', $h_val['cancel']); ?>");
|
||||
var duration = 600;
|
||||
|
||||
var $el = $("#sidx_graph_area li");
|
||||
var h1, h2;
|
||||
var $g1, $g2;
|
||||
|
||||
$el.each(function(index) {
|
||||
h1 = g_h1[index];
|
||||
h2 = g_h2[index];
|
||||
|
||||
$g1 = $(this).find(".order");
|
||||
$g2 = $(this).find(".cancel");
|
||||
|
||||
$g1.animate({ height: h1+"px" }, duration);
|
||||
$g2.animate({ height: h2+"px" }, duration);
|
||||
});
|
||||
}
|
||||
</script>
|
||||
|
||||
<?php
|
||||
} //end if
|
||||
include_once (G5_ADMIN_PATH.'/admin.tail.php');
|
||||
@@ -53,6 +53,7 @@ $opt_sql = " insert ignore into {$g5['g5_shop_item_option_table']} ( io_id, io_t
|
||||
sql_query($opt_sql);
|
||||
|
||||
// html 에디터로 첨부된 이미지 파일 복사
|
||||
$copied_editor_images = array();
|
||||
if($cp['it_explan']) {
|
||||
$matchs = get_editor_image($cp['it_explan'], false);
|
||||
$count_matchs = (isset($matchs[1]) && is_array($matchs[1])) ? count($matchs[1]) : 0;
|
||||
@@ -73,7 +74,13 @@ if($cp['it_explan']) {
|
||||
|
||||
$newfile = preg_replace("/\.([^\.]+)$/", "_".$new_it_id.".\\1", $matchs[1][$i]);
|
||||
$cp['it_explan'] = str_replace($matchs[1][$i], $newfile, $cp['it_explan']);
|
||||
|
||||
$copied_editor_images[] = array(
|
||||
'original' => $srcfile,
|
||||
'new' => $dstfile
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$sql = " update {$g5['g5_shop_item_table']} set it_explan = '".addslashes($cp['it_explan'])."' where it_id = '$new_it_id' ";
|
||||
@@ -100,6 +107,11 @@ if($cp['it_mobile_explan']) {
|
||||
|
||||
$newfile = preg_replace("/\.([^\.]+)$/", "_".$new_it_id.".\\1", $matchs[1][$i]);
|
||||
$cp['it_mobile_explan'] = str_replace($matchs[1][$i], $newfile, $cp['it_mobile_explan']);
|
||||
|
||||
$copied_editor_images[] = array(
|
||||
'original' => $srcfile,
|
||||
'new' => $dstfile
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -140,6 +152,7 @@ function copy_directory($src_dir, $dest_dir)
|
||||
}
|
||||
|
||||
// 파일복사
|
||||
$copied_item_files = array();
|
||||
$dest_path = G5_DATA_PATH.'/item/'.$new_it_id;
|
||||
@mkdir($dest_path, G5_DIR_PERMISSION);
|
||||
@chmod($dest_path, G5_DIR_PERMISSION);
|
||||
@@ -155,6 +168,11 @@ for($i=1; $i<=10; $i++) {
|
||||
copy($file, $dstfile);
|
||||
@chmod($dstfile, G5_FILE_PERMISSION);
|
||||
$new_img = $new_it_id.'/'.basename($file);
|
||||
|
||||
$copied_item_files[] = array(
|
||||
'original' => $file,
|
||||
'new' => $dstfile,
|
||||
);
|
||||
}
|
||||
|
||||
$sql_img .= $comma." it_img{$i} = '$new_img' ";
|
||||
@@ -166,6 +184,22 @@ $sql = " update {$g5['g5_shop_item_table']}
|
||||
where it_id = '$new_it_id' ";
|
||||
sql_query($sql);
|
||||
|
||||
/**
|
||||
* 아이템 복사 처리 후 Event Hook
|
||||
* @var string $it_id 원본 아이템 ID
|
||||
* @var string $new_it_id 복사한 새로운 아이템 ID
|
||||
* @var array $cp 복사한 아이템 정보
|
||||
* @var array $copied_item_files 복사한 파일 목록
|
||||
* @var array $copied_editor_images 복사한 에디터 이미지 목록
|
||||
*/
|
||||
run_event('shop_admin_itemcopy', array(
|
||||
'it_id' => (string) $it_id,
|
||||
'new_it_id' => (string) $new_it_id,
|
||||
'cp' => $cp,
|
||||
'copied_item_files' => $copied_item_files,
|
||||
'copied_editor_images' => $copied_editor_images
|
||||
));
|
||||
|
||||
$qstr = "ca_id=$ca_id&sfl=$sfl&sca=$sca&page=$page&stx=".urlencode($stx);
|
||||
|
||||
goto_url("itemlist.php?$qstr");
|
||||
@@ -75,6 +75,7 @@ if ($w == "")
|
||||
$sql_common
|
||||
, ev_id = '$ev_id' ";
|
||||
sql_query($sql);
|
||||
run_event('shop_admin_event_created', $ev_id);
|
||||
}
|
||||
else if ($w == "u")
|
||||
{
|
||||
@@ -82,6 +83,7 @@ else if ($w == "u")
|
||||
$sql_common
|
||||
where ev_id = '$ev_id' ";
|
||||
sql_query($sql);
|
||||
run_event('shop_admin_event_updated', $ev_id);
|
||||
}
|
||||
else if ($w == "d")
|
||||
{
|
||||
@@ -92,6 +94,7 @@ else if ($w == "d")
|
||||
// 이벤트상품삭제
|
||||
$sql = " delete from {$g5['g5_shop_event_item_table']} where ev_id = '$ev_id' ";
|
||||
sql_query($sql);
|
||||
run_event('shop_admin_event_deleted', $ev_id);
|
||||
|
||||
$sql = " delete from {$g5['g5_shop_event_table']} where ev_id = '$ev_id' ";
|
||||
sql_query($sql);
|
||||
|
||||
@@ -19,6 +19,7 @@ if ($w == "u")
|
||||
iq_answer = '$iq_answer'
|
||||
where iq_id = '$iq_id' ";
|
||||
sql_query($sql);
|
||||
run_event('shop_admin_item_qa_updated', $iq_id);
|
||||
|
||||
if(trim($iq_answer)) {
|
||||
$sql = " select a.iq_email, a.iq_hp, b.it_name
|
||||
|
||||
@@ -23,6 +23,7 @@ if ($_POST['act_button'] == "선택삭제") {
|
||||
|
||||
$sql = "delete from {$g5['g5_shop_item_qa_table']} where iq_id = '{$iiq_id}' ";
|
||||
sql_query($sql);
|
||||
run_event('shop_admin_item_qa_deleted', $iiq_id);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ if ($w == "u")
|
||||
is_reply_name = '".$member['mb_nick']."'
|
||||
where is_id = '".$posts['is_id']."'";
|
||||
sql_query($sql);
|
||||
run_event('shop_admin_item_use_updated', $posts['is_id']);
|
||||
|
||||
if( isset($_POST['it_id']) ) {
|
||||
update_use_cnt($_POST['it_id']);
|
||||
|
||||
@@ -40,6 +40,7 @@ for ($i=0; $i<$count_post_chk; $i++)
|
||||
{
|
||||
$sql = "delete from {$g5['g5_shop_item_use_table']} where is_id = '{$iis_id}' ";
|
||||
sql_query($sql);
|
||||
run_event('shop_admin_item_use_deleted', $iis_id);
|
||||
}
|
||||
|
||||
if($iit_id){
|
||||
|
||||
+3
-3
@@ -16,13 +16,13 @@ if( ! $is_admin ){
|
||||
}
|
||||
}
|
||||
|
||||
run_event('admin_request_handler_'.$call, $arr_query, $token);
|
||||
|
||||
$sub_menu = admin_menu_find_by($call, 'sub_menu');
|
||||
$g5['title'] = admin_menu_find_by($call, 'title');
|
||||
|
||||
run_event('admin_request_handler_'.$call, $arr_query, $token);
|
||||
|
||||
include_once ('./admin.head.php');
|
||||
|
||||
run_event('admin_get_page_'.$call, $arr_query, $token);
|
||||
|
||||
include_once ('./admin.tail.php');
|
||||
include_once ('./admin.tail.php');
|
||||
|
||||
@@ -104,6 +104,13 @@ if (!$is_search_bbs) {
|
||||
|
||||
$list[$i] = get_list($row, $board, $board_skin_url, G5_IS_MOBILE ? $board['bo_mobile_subject_len'] : $board['bo_subject_len']);
|
||||
$list[$i]['is_notice'] = true;
|
||||
$list[$i]['list_content'] = $list[$i]['wr_content'];
|
||||
|
||||
// 비밀글인 경우 리스트에서 내용이 출력되지 않게 글 내용을 지웁니다.
|
||||
if (strstr($list[$i]['wr_option'], "secret")) {
|
||||
$list[$i]['wr_content'] = '';
|
||||
}
|
||||
|
||||
$list[$i]['num'] = 0;
|
||||
$i++;
|
||||
$notice_count++;
|
||||
@@ -197,6 +204,13 @@ if($page_rows > 0) {
|
||||
$list[$i]['subject'] = search_font($stx, $list[$i]['subject']);
|
||||
}
|
||||
$list[$i]['is_notice'] = false;
|
||||
$list[$i]['list_content'] = $list[$i]['wr_content'];
|
||||
|
||||
// 비밀글인 경우 리스트에서 내용이 출력되지 않게 글 내용을 지웁니다.
|
||||
if (strstr($list[$i]['wr_option'], "secret")) {
|
||||
$list[$i]['wr_content'] = '';
|
||||
}
|
||||
|
||||
$list_num = $total_count - ($page - 1) * $list_page_rows - $notice_count;
|
||||
$list[$i]['num'] = $list_num - $k;
|
||||
|
||||
|
||||
+10
-2
@@ -62,10 +62,18 @@ run_event('login_session_before', $mb, $is_social_login);
|
||||
|
||||
@include_once($member_skin_path.'/login_check.skin.php');
|
||||
|
||||
if (! (defined('SKIP_SESSION_REGENERATE_ID') && SKIP_SESSION_REGENERATE_ID)) {
|
||||
session_regenerate_id(false);
|
||||
if (function_exists('session_start_samesite')) {
|
||||
session_start_samesite();
|
||||
}
|
||||
}
|
||||
|
||||
// 회원아이디 세션 생성
|
||||
set_session('ss_mb_id', $mb['mb_id']);
|
||||
// FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함 - 110106
|
||||
set_session('ss_mb_key', md5($mb['mb_datetime'] . get_real_client_ip() . $_SERVER['HTTP_USER_AGENT']));
|
||||
// FLASH XSS 공격에 대응하기 위하여 회원의 고유키를 생성해 놓는다. 관리자에서 검사함
|
||||
generate_mb_key($mb);
|
||||
|
||||
// 회원의 토큰키를 세션에 저장한다. /common.php 에서 해당 회원의 토큰값을 검사한다.
|
||||
if(function_exists('update_auth_session_token')) update_auth_session_token($mb['mb_datetime']);
|
||||
|
||||
|
||||
+9
-2
@@ -49,7 +49,9 @@ while ($row = sql_fetch_array($result))
|
||||
$count_write = 0;
|
||||
$count_comment = 0;
|
||||
|
||||
$next_wr_num = get_next_num($move_write_table);
|
||||
// get_next_num 함수는 mysql 지연시 중복이 될수 있는 문제로 더 이상 사용하지 않습니다.
|
||||
// $next_wr_num = get_next_num($move_write_table);
|
||||
$next_wr_num = 0;
|
||||
|
||||
$sql2 = " select * from $write_table where wr_num = '$wr_num' order by wr_parent, wr_is_comment, wr_comment desc, wr_id ";
|
||||
$result2 = sql_query($sql2);
|
||||
@@ -78,7 +80,7 @@ while ($row = sql_fetch_array($result))
|
||||
}
|
||||
|
||||
$sql = " insert into $move_write_table
|
||||
set wr_num = '$next_wr_num',
|
||||
set wr_num = " . ($next_wr_num ? "'$next_wr_num'" : "(SELECT IFNULL(MIN(wr_num) - 1, -1) FROM $move_write_table sq) ") . ",
|
||||
wr_reply = '{$row2['wr_reply']}',
|
||||
wr_is_comment = '{$row2['wr_is_comment']}',
|
||||
wr_comment = '{$row2['wr_comment']}',
|
||||
@@ -116,6 +118,11 @@ while ($row = sql_fetch_array($result))
|
||||
sql_query($sql);
|
||||
|
||||
$insert_id = sql_insert_id();
|
||||
|
||||
if ($next_wr_num === 0) {
|
||||
$tmp = sql_fetch("select wr_num from $move_write_table where wr_id = '$insert_id'");
|
||||
$next_wr_num = $tmp['wr_num'];
|
||||
}
|
||||
|
||||
// 코멘트가 아니라면
|
||||
if (!$row2['wr_is_comment'])
|
||||
|
||||
+18
-9
@@ -15,6 +15,7 @@ if (!($token && $delete_token === $token))
|
||||
alert('토큰 에러로 삭제 불가합니다.');
|
||||
|
||||
$tmp_array = array();
|
||||
$deleted = array();
|
||||
if ($qa_id) // 건별삭제
|
||||
$tmp_array[0] = $qa_id;
|
||||
else // 일괄삭제
|
||||
@@ -56,21 +57,23 @@ for($i=0; $i<$count; $i++) {
|
||||
delete_editor_thumbnail($row['qa_content']);
|
||||
|
||||
// 답변이 있는 질문글이라면 답변글 삭제
|
||||
if(!$row['qa_type'] && $row['qa_status']) {
|
||||
$row2 = sql_fetch(" select qa_content, qa_file1, qa_file2 from {$g5['qa_content_table']} where qa_parent = '$qa_id' ");
|
||||
if (!$row['qa_type'] && $row['qa_status']) {
|
||||
$answer = sql_fetch(" SELECT qa_id, qa_content, qa_file1, qa_file2 from {$g5['qa_content_table']} where qa_type = 1 AND qa_parent = {$qa_id} ");
|
||||
// 첨부파일 삭제
|
||||
for($k=1; $k<=2; $k++) {
|
||||
@unlink(G5_DATA_PATH.'/qa/'.clean_relative_paths($row2['qa_file'.$k]));
|
||||
for ($k = 1; $k <= 2; $k++) {
|
||||
@unlink(G5_DATA_PATH . '/qa/' . clean_relative_paths($answer['qa_file' . $k]));
|
||||
// 썸네일삭제
|
||||
if(preg_match("/\.({$config['cf_image_extension']})$/i", $row2['qa_file'.$k])) {
|
||||
delete_qa_thumbnail($row2['qa_file'.$k]);
|
||||
if (preg_match("/\.({$config['cf_image_extension']})$/i", $answer['qa_file' . $k])) {
|
||||
delete_qa_thumbnail($answer['qa_file' . $k]);
|
||||
}
|
||||
}
|
||||
|
||||
// 에디터 썸네일 삭제
|
||||
delete_editor_thumbnail($row2['qa_content']);
|
||||
delete_editor_thumbnail($answer['qa_content']);
|
||||
|
||||
sql_query(" delete from {$g5['qa_content_table']} where qa_type = '1' and qa_parent = '$qa_id' ");
|
||||
// 답변글 삭제
|
||||
sql_query(" DELETE from {$g5['qa_content_table']} where qa_type = 1 and qa_parent = {$qa_id} ");
|
||||
$deleted[] = (int) $answer['qa_id'];
|
||||
}
|
||||
|
||||
// 답변글 삭제시 질문글의 상태변경
|
||||
@@ -80,8 +83,14 @@ for($i=0; $i<$count; $i++) {
|
||||
|
||||
// 글삭제
|
||||
sql_query(" delete from {$g5['qa_content_table']} where qa_id = '$qa_id' ");
|
||||
$deleted[] = $qa_id;
|
||||
}
|
||||
|
||||
run_event('qa_delete', $tmp_array);
|
||||
/**
|
||||
* QA 글 삭제 후 Event Hook
|
||||
* @var array $tmp_array 삭제 요청된 qa_id 목록. 소유자 확인, 답변글 존재 여부 등의 이유로 실제로 삭제처리가 안 된 ID가 포함될 수 있으며, 삭제처리 되었더라도 답변글은 이 목록에 포함되지 않음
|
||||
* @var array $deleted 답변글을 포함한 삭제가 완료된 qa_id 목록
|
||||
*/
|
||||
run_event('qa_delete', $tmp_array, $deleted);
|
||||
|
||||
goto_url(G5_BBS_URL.'/qalist.php'.preg_replace('/^&/', '?', $qstr));
|
||||
+11
-1
@@ -86,6 +86,7 @@ $qa_related = 0;
|
||||
$qa_email_recv = (isset($_POST['qa_email_recv']) && $_POST['qa_email_recv']) ? 1 : 0;
|
||||
$qa_sms_recv = (isset($_POST['qa_sms_recv']) && $_POST['qa_sms_recv']) ? 1 : 0;
|
||||
$qa_status = 0;
|
||||
$answer_id = null;
|
||||
|
||||
for ($i=1; $i<=5; $i++) {
|
||||
$var = "qa_$i";
|
||||
@@ -301,6 +302,7 @@ if($w == '' || $w == 'a' || $w == 'r') {
|
||||
}
|
||||
|
||||
if($w == 'a') {
|
||||
$answer_id = (int) sql_insert_id();
|
||||
$sql = " update {$g5['qa_content_table']}
|
||||
set qa_status = '1'
|
||||
where qa_id = '{$write['qa_parent']}' ";
|
||||
@@ -339,7 +341,15 @@ if($w == '' || $w == 'a' || $w == 'r') {
|
||||
sql_query($sql);
|
||||
}
|
||||
|
||||
run_event('qawrite_update', $qa_id, $write, $w, $qaconfig);
|
||||
/**
|
||||
* 1:1 문의/답변의 변경 시 Event Hook
|
||||
* @var int $qa_id 삽입/수정 또는 답글/추가질문 대상 글의 ID
|
||||
* @var array $write 삽입/수정 또는 답글/추가질문 대상 글의 데이터
|
||||
* @var string $w 동작 모드 ('': 질문글 작성, 'a': 답변글 작성, 'u': 질문/답변 수정, 'r': 추가(관련) 질문)
|
||||
* @var array $qaconfig 1:1 문의 설정
|
||||
* @var ?int $answer_id 답변글 작성($w = 'a') 시 답변글의 ID
|
||||
*/
|
||||
run_event('qawrite_update', $qa_id, $write, $w, $qaconfig, ($w === 'a') ? $answer_id : null);
|
||||
|
||||
// SMS 알림
|
||||
if($config['cf_sms_use'] == 'icode' && $qaconfig['qa_use_sms']) {
|
||||
|
||||
+12
-4
@@ -252,12 +252,14 @@ if ($w == '' || $w == 'r') {
|
||||
$wr_num = $write['wr_num'];
|
||||
$wr_reply = $reply;
|
||||
} else {
|
||||
$wr_num = get_next_num($write_table);
|
||||
// get_next_num 함수는 mysql 지연시 중복이 될수 있는 문제로 더 이상 사용하지 않습니다.
|
||||
// $wr_num = get_next_num($write_table);
|
||||
$wr_num = 0;
|
||||
$wr_reply = '';
|
||||
}
|
||||
|
||||
|
||||
$sql = " insert into $write_table
|
||||
set wr_num = '$wr_num',
|
||||
set wr_num = " . ($w == 'r' ? "'$wr_num'" : "(SELECT IFNULL(MIN(wr_num) - 1, -1) FROM $write_table sq) ") . ",
|
||||
wr_reply = '$wr_reply',
|
||||
wr_comment = 0,
|
||||
ca_name = '$ca_name',
|
||||
@@ -676,8 +678,14 @@ sql_query(" delete from {$g5['autosave_table']} where as_uid = '{$uid}' ");
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
// 비밀글이라면 세션에 비밀글의 아이디를 저장한다. 자신의 글은 다시 비밀번호를 묻지 않기 위함
|
||||
if ($secret)
|
||||
if ($secret) {
|
||||
if (! $wr_num) {
|
||||
$write = get_write($write_table, $wr_id, true);
|
||||
$wr_num = $write['wr_num'];
|
||||
}
|
||||
|
||||
set_session("ss_secret_{$bo_table}_{$wr_num}", TRUE);
|
||||
}
|
||||
|
||||
// 메일발송 사용 (수정글은 발송하지 않음)
|
||||
if (!($w == 'u' || $w == 'cu') && $config['cf_email_use'] && $board['bo_use_email']) {
|
||||
|
||||
+24
-11
@@ -62,6 +62,11 @@ if(! isset($_SERVER['SERVER_ADDR'])) {
|
||||
$_SERVER['SERVER_ADDR'] = isset($_SERVER['LOCAL_ADDR']) ? $_SERVER['LOCAL_ADDR'] : '';
|
||||
}
|
||||
|
||||
// Cloudflare 환경을 고려한 https 사용여부
|
||||
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === "https") {
|
||||
$_SERVER['HTTPS'] = 'on';
|
||||
}
|
||||
|
||||
// multi-dimensional array에 사용자지정 함수적용
|
||||
function array_map_deep($fn, $array)
|
||||
{
|
||||
@@ -221,7 +226,12 @@ ini_set("session.gc_maxlifetime", 10800); // session data의 garbage collection
|
||||
ini_set("session.gc_probability", 1); // session.gc_probability는 session.gc_divisor와 연계하여 gc(쓰레기 수거) 루틴의 시작 확률을 관리합니다. 기본값은 1입니다. 자세한 내용은 session.gc_divisor를 참고하십시오.
|
||||
ini_set("session.gc_divisor", 100); // session.gc_divisor는 session.gc_probability와 결합하여 각 세션 초기화 시에 gc(쓰레기 수거) 프로세스를 시작할 확률을 정의합니다. 확률은 gc_probability/gc_divisor를 사용하여 계산합니다. 즉, 1/100은 각 요청시에 GC 프로세스를 시작할 확률이 1%입니다. session.gc_divisor의 기본값은 100입니다.
|
||||
|
||||
session_set_cookie_params(0, '/');
|
||||
if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
|
||||
session_set_cookie_params(0, '/', null, true, true);
|
||||
} else {
|
||||
session_set_cookie_params(0, '/', null, false, true);
|
||||
}
|
||||
|
||||
ini_set("session.cookie_domain", G5_COOKIE_DOMAIN);
|
||||
|
||||
function chrome_domain_session_name(){
|
||||
@@ -366,8 +376,7 @@ if( $config['cf_cert_use'] || (defined('G5_YOUNGCART_VER') && G5_YOUNGCART_VER)
|
||||
|| preg_match('/(iPhone|iPod|iPad).*AppleWebKit.*Safari/i', $_SERVER['HTTP_USER_AGENT'])
|
||||
|| preg_match('~MSIE|Internet Explorer~i', $_SERVER['HTTP_USER_AGENT'])
|
||||
|| preg_match('~Trident/7.0(; Touch)?; rv:11.0~',$_SERVER['HTTP_USER_AGENT'])
|
||||
|| !(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on')
|
||||
|| !(isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == "https")){
|
||||
|| !(isset($_SERVER['HTTPS']) && $_SERVER['HTTPS']=='on')) {
|
||||
return $res;
|
||||
}
|
||||
}
|
||||
@@ -377,7 +386,7 @@ if( $config['cf_cert_use'] || (defined('G5_YOUNGCART_VER') && G5_YOUNGCART_VER)
|
||||
$cookie_session_name = method_exists('XenoPostToForm', 'g5_session_name') ? XenoPostToForm::g5_session_name() : 'PHPSESSID';
|
||||
foreach ($headers as $header) {
|
||||
if (!preg_match('~^Set-Cookie: '.$cookie_session_name.'=~', $header)) continue;
|
||||
$header = preg_replace('~; secure(; HttpOnly)?$~', '', $header) . '; secure; SameSite=None';
|
||||
$header = preg_replace('~(; secure; HttpOnly)?$~', '; secure; HttpOnly; SameSite=None', $header);
|
||||
header($header, false);
|
||||
$g5['session_cookie_samesite'] = 'none';
|
||||
break;
|
||||
@@ -480,6 +489,7 @@ if (isset($_REQUEST['w'])) {
|
||||
$w = '';
|
||||
}
|
||||
|
||||
/** @var int $wr_id 게시판 글의 ID */
|
||||
if (isset($_REQUEST['wr_id'])) {
|
||||
$wr_id = (int)$_REQUEST['wr_id'];
|
||||
} else {
|
||||
@@ -503,7 +513,7 @@ if (isset($_REQUEST['url'])) {
|
||||
if (G5_DOMAIN) {
|
||||
$p = @parse_url(G5_DOMAIN);
|
||||
$p['path'] = isset($p['path']) ? $p['path'] : '/';
|
||||
$urlencode = G5_DOMAIN.urldecode(preg_replace("/^".urlencode($p['path'])."/", "", $urlencode));
|
||||
$urlencode = rtrim(G5_DOMAIN, '%2F').'%2F'.ltrim(urldecode(preg_replace("/^".urlencode($p['path'])."/", "", $urlencode)), '%2F');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -577,27 +587,30 @@ if (isset($_SESSION['ss_mb_id']) && $_SESSION['ss_mb_id']) { // 로그인중이
|
||||
}
|
||||
|
||||
|
||||
/** @var array $write 글 데이터 */
|
||||
$write = array();
|
||||
/** @var string $write_table 게시판 테이블 전체이름 */
|
||||
$write_table = '';
|
||||
if ($bo_table) {
|
||||
$board = get_board_db($bo_table, true);
|
||||
if (isset($board['bo_table']) && $board['bo_table']) {
|
||||
set_cookie("ck_bo_table", $board['bo_table'], 86400 * 1);
|
||||
$gr_id = $board['gr_id'];
|
||||
$write_table = $g5['write_prefix'] . $bo_table; // 게시판 테이블 전체이름
|
||||
// 게시판 테이블 전체이름
|
||||
$write_table = $g5['write_prefix'] . $bo_table;
|
||||
|
||||
if (isset($wr_id) && $wr_id) {
|
||||
$write = get_write($write_table, $wr_id);
|
||||
} else if (isset($wr_seo_title) && $wr_seo_title) {
|
||||
$write = get_content_by_field($write_table, 'bbs', 'wr_seo_title', generate_seo_title($wr_seo_title));
|
||||
if( isset($write['wr_id']) ){
|
||||
$wr_id = $write['wr_id'];
|
||||
if (isset($write['wr_id'])) {
|
||||
$wr_id = (int) $write['wr_id'];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 게시판에서
|
||||
if (isset($board['bo_select_editor']) && $board['bo_select_editor']){
|
||||
|
||||
// 게시판에서 사용하는 에디터를 설정
|
||||
if (isset($board['bo_select_editor']) && $board['bo_select_editor']) {
|
||||
$config['cf_editor'] = $board['bo_select_editor'];
|
||||
}
|
||||
}
|
||||
|
||||
@@ -799,7 +799,7 @@ box-shadow: 1px 2px 2px #eee;}
|
||||
#od_tot_price strong{font-size:1.5em;color:#ff006c}
|
||||
#sod_frm #sod_frm_pt_alert {margin:5px 0;color:#38b2bb }
|
||||
#od_pay_sl h3{font-size:1.167em;margin:20px 0 5px}
|
||||
#od_pay_sl input[type="radio"]{position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left: 0;z-index: -1px;}
|
||||
#od_pay_sl input[type="radio"]{position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left: 0;z-index: -1;}
|
||||
#od_pay_sl .lb_icon {display: inline-block;float:left;width:50%;background:#fff;border:1px solid #eceff4;margin:-1px 0 0 -1px;cursor: pointer;height:60px;position:relative;padding-left:65px;padding-top:20px;z-index:1}
|
||||
#od_pay_sl input[type="radio"]:checked+.lb_icon {border:1px solid #ff006c;z-index:3}
|
||||
#sod_frm_paysel {}
|
||||
|
||||
+6
-6
@@ -84,8 +84,8 @@ input[type=radio] {-webkit-appearance: radio}
|
||||
/*카테고리*/
|
||||
.menu {display:none;position:fixed;top:0;height:100%;z-index:99999;-webkit-backface-visibility:hidden;width:100%;background:#efefef}
|
||||
.menu .menu_wr{width:100%;height:100%;overflow-y:auto;background:#eee;position:relative;z-index:199919;
|
||||
-webkit-box-shadow: 0 0 5px rgba(55,55,5,0.4));
|
||||
-moz-box-shadow: 0 0 5px rgba(55,55,5,0.4));
|
||||
-webkit-box-shadow: 0 0 5px rgba(55,55,5,0.4);
|
||||
-moz-box-shadow: 0 0 5px rgba(55,55,5,0.4);
|
||||
box-shadow: 0 0 5px rgba(55,55,5,0.4);}
|
||||
.menu .menu_close {position:absolute;top:50%;right:0px;width:40px;height:40px;background:none;color:#fff;font-size:20px;margin-top:-20px;border:0;z-index:199999}
|
||||
|
||||
@@ -359,7 +359,7 @@ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
#sod_addr .addr_btn:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
#sod_addr .sel_address {width:32%;float:left;margin-right:1%;height:30px;background:none;border:1px solid #333;color:#333;padding:0 5px}
|
||||
#sod_addr .del_address {display:block;width:32%;text-align:center;float:left;margin-right:1%;border:1px solid #aaa;background:none;color:#888;padding:0 5px;height:30px;line-height:28px;vertical-align:middle}
|
||||
#sod_addr input[type="radio"] {position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left:0;z-index:-1px}
|
||||
#sod_addr input[type="radio"] {position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left:0;z-index:-1}
|
||||
#sod_addr .add_lb {display:inline-block;float:left;width:32%;text-align:center;border:1px solid #4162ff;color:#4162ff;height:30px;line-height:28px}
|
||||
#sod_addr input[type="radio"]:checked+.add_lb {z-index:3;background:#4162ff;color:#fff}
|
||||
|
||||
@@ -579,7 +579,7 @@ a.btn02 {display:inline-block;padding:8px 7px 7px;border:1px solid #3b3c3f;backg
|
||||
a.btn02:focus, .btn02:hover {text-decoration:none}
|
||||
button.btn02 {display:inline-block;margin:0;padding:7px;border:1px solid #3b3c3f;background:#4b545e;color:#fff;text-decoration:none}
|
||||
.btn_confirm {text-align:center} /* 서식단계 진행 */
|
||||
.btn_submit {padding:0 5px;border:0;background:#3a8afd;border:1px solid #1c70e9;color:#fff;letter-spacing:-0.1em;border-radius:3px}}
|
||||
.btn_submit {padding:0 5px;border:0;background:#3a8afd;border:1px solid #1c70e9;color:#fff;letter-spacing:-0.1em;border-radius:3px}
|
||||
fieldset .btn_submit {padding:0 7px;height:24px;line-height:1em}
|
||||
a.btn_cancel {display:inline-block;padding:8px 7px 7px;border:1px solid #ccc;background:#fff;color:#000;text-decoration:none;vertical-align:middle}
|
||||
button.btn_cancel {display:inline-block;padding:7px;border:1px solid #ccc;background:#fafafa;color:#000;vertical-align:top;text-decoration:none}
|
||||
@@ -821,7 +821,7 @@ box-shadow:0 0 8px rgba(65,98,255,0.8)}
|
||||
.sod_right #sod_bsk_tot{margin:10px}
|
||||
#sod_frm_taker textarea{width:100%;height:80px}
|
||||
|
||||
#od_pay_sl input[type="radio"] {position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left:0;z-index:-1px}
|
||||
#od_pay_sl input[type="radio"] {position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left:0;z-index:-1}
|
||||
#od_pay_sl .lb_icon {display:inline-block;float:left;width:150px;background:#fff;border:1px solid #eceff4;margin:-1px 0 0 -1px;cursor:pointer;height:60px;position:relative;padding-left:65px;padding-top:20px;z-index:1}
|
||||
#od_pay_sl input[type="radio"]:checked+.lb_icon {border:1px solid #ff006c;z-index:3}
|
||||
|
||||
@@ -900,7 +900,7 @@ box-shadow:0 0 8px rgba(65,98,255,0.8)}
|
||||
#od_tot_price span{float:left;font-weight:bold}
|
||||
#od_tot_price strong{font-size:1.5em;color:#ff006c}
|
||||
#od_pay_sl h3{font-size:1.167em;margin:20px 0 5px}
|
||||
#od_pay_sl input[type="radio"]{position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left: 0;z-index: -1px;}
|
||||
#od_pay_sl input[type="radio"]{position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left: 0;z-index: -1;}
|
||||
#od_pay_sl .lb_icon {display: inline-block;float:left;width:50%;background:#fff;border:1px solid #eceff4;margin:-1px 0 0 -1px;cursor: pointer;height:60px;position:relative;padding-left:65px;padding-top:20px;z-index:1}
|
||||
#od_pay_sl input[type="radio"]:checked+.lb_icon {border:1px solid #ff006c;z-index:3}
|
||||
#sod_frm_paysel {}
|
||||
|
||||
@@ -1,2 +0,0 @@
|
||||
<?php
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가;
|
||||
@@ -7,7 +7,7 @@
|
||||
DROP TABLE IF EXISTS `g5_auth`;
|
||||
CREATE TABLE IF NOT EXISTS `g5_auth` (
|
||||
`mb_id` varchar(20) NOT NULL default '',
|
||||
`au_menu` varchar(20) NOT NULL default '',
|
||||
`au_menu` varchar(50) NOT NULL default '',
|
||||
`au_auth` set('r','w','d') NOT NULL default '',
|
||||
PRIMARY KEY (`mb_id`,`au_menu`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.9 KiB |
@@ -72,7 +72,6 @@ Class G5_object_cache {
|
||||
* @param string $key
|
||||
* @param string $group
|
||||
* @return bool
|
||||
* kkigomi 님이 고쳐주심
|
||||
*/
|
||||
function delete($type, $key, $group = 'default')
|
||||
{
|
||||
|
||||
@@ -19,7 +19,7 @@ Class GML_Hook extends Hook {
|
||||
|
||||
$args = $this->getArguments($argsNumber, $args);
|
||||
|
||||
if (! ($class && $method) && function_exists($function)) {
|
||||
if (! ($class && $method) && is_callable($function)) {
|
||||
return call_user_func_array($function, $args);
|
||||
} elseif ($obj = call_user_func(array($class, $this->singleton))) {
|
||||
if ($obj !== false) {
|
||||
@@ -161,4 +161,4 @@ Class GML_Hook extends Hook {
|
||||
}
|
||||
}
|
||||
|
||||
// end Hook Class;
|
||||
// end Hook Class;
|
||||
|
||||
+78
-8
@@ -9,11 +9,14 @@ include_once(dirname(__FILE__) .'/pbkdf2.compat.php');
|
||||
**
|
||||
*************************************************************************/
|
||||
|
||||
// 마이크로 타임을 얻어 계산 형식으로 만듦
|
||||
/**
|
||||
* 마이크로타임을 반환
|
||||
* @return float
|
||||
* @deprecated use `microtime(true)`
|
||||
*/
|
||||
function get_microtime()
|
||||
{
|
||||
list($usec, $sec) = explode(" ",microtime());
|
||||
return ((float)$usec + (float)$sec);
|
||||
return microtime(true);
|
||||
}
|
||||
|
||||
|
||||
@@ -152,6 +155,10 @@ function set_cookie($cookie_name, $value, $expire, $path='/', $domain=G5_COOKIE_
|
||||
global $g5;
|
||||
|
||||
$c = run_replace('set_cookie_params', array('path'=>$path, 'domain'=>$domain, 'secure'=>$secure, 'httponly'=>$httponly), $cookie_name);
|
||||
|
||||
if (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != 'off') {
|
||||
$c['secure'] = true;
|
||||
}
|
||||
|
||||
setcookie(md5($cookie_name), base64_encode($value), G5_SERVER_TIME + $expire, $c['path'], $c['domain'], $c['secure'], $c['httponly']);
|
||||
}
|
||||
@@ -1840,11 +1847,22 @@ function sql_free_result($result)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* MySQL PASSWORD() 함수로 생성된 비밀번호의 hash 값을 반환
|
||||
*
|
||||
* MySQL 버전에 따라 결과가 다르게 나올 수 있음.
|
||||
* MySQL 8.0.11 버전 이상에서는 오류 발생(PASSWORD 함수가 제거됨)으로 사용할 수 없음.
|
||||
*
|
||||
* @deprecated 이 함수는 안전하지 않으므로 사용하지 않는 것을 권장 함
|
||||
* @see get_encrypt_string() and check_password()
|
||||
* @param string $value
|
||||
* @return string
|
||||
*/
|
||||
function sql_password($value)
|
||||
{
|
||||
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
|
||||
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
|
||||
$row = sql_fetch(" select password('$value') as pass ");
|
||||
$row = sql_fetch(" SELECT password('{$value}') as pass ");
|
||||
|
||||
return $row['pass'];
|
||||
}
|
||||
@@ -2252,6 +2270,53 @@ function check_token()
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 브라우저 검증을 위한 세션 반환 및 재생성
|
||||
* @param array $member 로그인 된 회원의 정보. 가입일시(mb_datetime)를 반드시 포함해야 한다.
|
||||
* @param bool $regenerate true 이면 재생성
|
||||
* @return string
|
||||
*/
|
||||
function ss_mb_key($member, $regenerate = false)
|
||||
{
|
||||
$client_key = ($regenerate) ? null : get_cookie('mb_client_key');
|
||||
|
||||
if (!$client_key) {
|
||||
$client_key = get_random_token_string(16);
|
||||
set_cookie('mb_client_key', $client_key, G5_SERVER_TIME * -1);
|
||||
}
|
||||
|
||||
$mb_key = md5($member['mb_datetime'] . $client_key) . run_replace('ss_mb_key_user_agent', md5($_SERVER['HTTP_USER_AGENT']));
|
||||
|
||||
return $mb_key;
|
||||
}
|
||||
|
||||
/**
|
||||
* 회원의 클라이언트 검증
|
||||
* @param array $member 로그인 된 회원의 정보. 가입일시(mb_datetime)를 반드시 포함해야 한다.
|
||||
* @return bool
|
||||
*/
|
||||
function verify_mb_key($member)
|
||||
{
|
||||
$mb_key = ss_mb_key($member);
|
||||
$verified = get_session('ss_mb_key') === $mb_key;
|
||||
|
||||
if (!$verified) {
|
||||
ss_mb_key($member, true);
|
||||
}
|
||||
|
||||
return $verified;
|
||||
}
|
||||
|
||||
/**
|
||||
* 회원의 클라이언트 검증 키 생성
|
||||
* 클라이언트 키를 다시 생성하여 생성된 키는 `ss_mb_key` 세션에 저장됨
|
||||
* @param array $member 로그인 된 회원의 정보. 가입일시(mb_datetime)를 반드시 포함해야 한다.
|
||||
*/
|
||||
function generate_mb_key($member)
|
||||
{
|
||||
$mb_key = ss_mb_key($member, true);
|
||||
set_session('ss_mb_key', $mb_key);
|
||||
}
|
||||
|
||||
// 문자열에 utf8 문자가 들어 있는지 검사하는 함수
|
||||
// 코드 : http://in2.php.net/manual/en/function.mb-check-encoding.php#95289
|
||||
@@ -2461,14 +2526,19 @@ function check_device($device)
|
||||
}
|
||||
|
||||
|
||||
// 게시판 최신글 캐시 파일 삭제
|
||||
/**
|
||||
* 게시판 최신글 캐시 파일 삭제
|
||||
* @param string $bo_table 게시판 ID
|
||||
*/
|
||||
function delete_cache_latest($bo_table)
|
||||
{
|
||||
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) {
|
||||
return;
|
||||
}
|
||||
|
||||
g5_delete_cache_by_prefix('latest-'.$bo_table.'-');
|
||||
run_event('delete_cache_latest', $bo_table);
|
||||
|
||||
g5_delete_cache_by_prefix('latest-' . $bo_table . '-');
|
||||
}
|
||||
|
||||
// 게시판 첨부파일 썸네일 삭제
|
||||
@@ -3801,7 +3871,7 @@ function check_vaild_callback($callback){
|
||||
class str_encrypt
|
||||
{
|
||||
var $salt;
|
||||
var $lenght;
|
||||
var $length;
|
||||
|
||||
function __construct($salt='')
|
||||
{
|
||||
@@ -4154,7 +4224,7 @@ function get_random_token_string($length=6)
|
||||
}
|
||||
|
||||
$characters = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
|
||||
$output = substr(str_shuffle($characters), 0, $length); // jihan001 님 제안코드로 수정
|
||||
$output = substr(str_shuffle($characters), 0, $length);
|
||||
|
||||
return bin2hex($output);
|
||||
}
|
||||
|
||||
+2
-2
@@ -65,7 +65,7 @@ function run_event($tag, $arg = ''){
|
||||
}
|
||||
}
|
||||
|
||||
function add_replace($tag, $func, $priority=G5_HOOK_DEFAULT_PRIORITY, $args=0){
|
||||
function add_replace($tag, $func, $priority=G5_HOOK_DEFAULT_PRIORITY, $args=1){
|
||||
|
||||
if( $hook = get_hook_class() ){
|
||||
return $hook->addFilter($tag, $func, $priority, $args);
|
||||
@@ -130,4 +130,4 @@ function get_hook_datas($type='', $is_callback=''){
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
+13
-6
@@ -1943,8 +1943,9 @@ function is_soldout($it_id, $is_cache=false)
|
||||
// 상품정보
|
||||
$it = get_shop_item($it_id, $is_cache);
|
||||
|
||||
if($it['it_soldout'] || $it['it_stock_qty'] <= 0)
|
||||
if ($it['it_soldout']) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$count = 0;
|
||||
$soldout = false;
|
||||
@@ -1953,7 +1954,7 @@ function is_soldout($it_id, $is_cache=false)
|
||||
$sql = " select count(*) as cnt from {$g5['g5_shop_item_option_table']} where it_id = '$it_id' and io_type = '0' ";
|
||||
$row = sql_fetch($sql);
|
||||
|
||||
if($row['cnt']) {
|
||||
if (isset($row['cnt']) && $row['cnt']) {
|
||||
$sql = " select io_id, io_type, io_stock_qty
|
||||
from {$g5['g5_shop_item_option_table']}
|
||||
where it_id = '$it_id'
|
||||
@@ -1972,12 +1973,18 @@ function is_soldout($it_id, $is_cache=false)
|
||||
// 모든 선택옵션 품절이면 상품 품절
|
||||
if($i == $count)
|
||||
$soldout = true;
|
||||
} else {
|
||||
// 상품 재고수량
|
||||
$stock_qty = get_it_stock_qty($it_id);
|
||||
|
||||
if($stock_qty <= 0)
|
||||
} else {
|
||||
|
||||
if ($it['it_stock_qty'] <= 0) {
|
||||
$soldout = true;
|
||||
} else {
|
||||
// 상품 재고수량
|
||||
$stock_qty = get_it_stock_qty($it_id);
|
||||
|
||||
if($stock_qty <= 0)
|
||||
$soldout = true;
|
||||
}
|
||||
}
|
||||
|
||||
$cache[$key] = $soldout;
|
||||
|
||||
+10
-3
@@ -10,15 +10,22 @@ function get_list_thumbnail($bo_table, $wr_id, $thumb_width, $thumb_height, $is_
|
||||
$filename = $alt = $data_path = '';
|
||||
$edt = false;
|
||||
|
||||
$row = get_thumbnail_find_cache($bo_table, $wr_id, 'file');
|
||||
$empty_array = array('src'=>'', 'ori'=>'', 'alt'=>'');
|
||||
|
||||
if(isset($row['bf_file']) && $row['bf_file']) {
|
||||
$write = get_thumbnail_find_cache($bo_table, $wr_id, 'content');
|
||||
|
||||
// 비밀글이면 썸네일을 노출하지 않습니다.
|
||||
if (isset($write['wr_option']) && strstr($write['wr_option'], "secret")) {
|
||||
return run_replace('is_secret_list_thumbnail', $empty_array, $bo_table, $write);
|
||||
}
|
||||
|
||||
$row = get_thumbnail_find_cache($bo_table, $wr_id, 'file');
|
||||
|
||||
if (isset($row['bf_file']) && $row['bf_file']) {
|
||||
$filename = $row['bf_file'];
|
||||
$filepath = G5_DATA_PATH.'/file/'.$bo_table;
|
||||
$alt = get_text($row['bf_content']);
|
||||
} else {
|
||||
$write = get_thumbnail_find_cache($bo_table, $wr_id, 'content');
|
||||
$edt = true;
|
||||
|
||||
if( $matches = get_editor_image($write['wr_content'], false) ){
|
||||
|
||||
@@ -32,7 +32,7 @@ else
|
||||
if (!$skin)
|
||||
$skin = $default['de_mobile_listtype_list_skin'];
|
||||
else
|
||||
$skin = preg_replace('#\.+[\\\/]#', '', $skin);
|
||||
$skin = preg_replace('#\.+[\\\/]#', '', strip_tags($skin));
|
||||
|
||||
define('G5_SHOP_CSS_URL', G5_MSHOP_SKIN_URL);
|
||||
|
||||
@@ -65,7 +65,7 @@ if (file_exists($list_file)) {
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<div align="center">'.$skin.' 파일을 찾을 수 없습니다.<br>관리자에게 알려주시면 감사하겠습니다.</div>';
|
||||
echo '<div align="center">'.get_text($skin).' 파일을 찾을 수 없습니다.<br>관리자에게 알려주시면 감사하겠습니다.</div>';
|
||||
}
|
||||
?>
|
||||
</div>
|
||||
|
||||
@@ -766,7 +766,7 @@ $od_memo = nl2br(htmlspecialchars2(stripslashes($od_memo))) . " ";
|
||||
if($is_member) {
|
||||
$it_cp_cnt = (isset($_POST['cp_id']) && is_array($_POST['cp_id'])) ? count($_POST['cp_id']) : 0;
|
||||
for($i=0; $i<$it_cp_cnt; $i++) {
|
||||
$cid = isset($_POST['cp_id'][$i]) ? $_POST['cp_id'][$i] : '';
|
||||
$cid = isset($_POST['cp_id'][$i]) ? clean_xss_tags($_POST['cp_id'][$i], 1, 1) : '';
|
||||
$cp_it_id = isset($_POST['it_id'][$i]) ? safe_replace_regex($_POST['it_id'][$i], 'it_id') : '';
|
||||
$cp_prc = isset($arr_it_cp_prc[$cp_it_id]) ? (int) $arr_it_cp_prc[$cp_it_id] : 0;
|
||||
|
||||
|
||||
@@ -33,14 +33,14 @@ add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">',
|
||||
<h2>회원로그인 안내</h2>
|
||||
<div>
|
||||
<a href="<?php echo G5_BBS_URL ?>/password_lost.php">아이디/비밀번호 찾기</a>
|
||||
<a href="./register.php">회원 가입</a>
|
||||
<a href="<?php echo G5_BBS_URL ?>/register.php">회원 가입</a>
|
||||
</div>
|
||||
</section>
|
||||
</form>
|
||||
|
||||
|
||||
<?php // 쇼핑몰 사용시 여기부터 ?>
|
||||
<?php if ($default['de_level_sell'] == 1) { // 상품구입 권한 ?>
|
||||
<?php if (isset($default['de_level_sell']) && $default['de_level_sell'] == 1) { // 상품구입 권한 ?>
|
||||
|
||||
<!-- 주문하기, 신청하기 -->
|
||||
<?php if (preg_match("/orderform.php/", $url)) { ?>
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
|
||||
/* 회원가입 약관 */
|
||||
#fregister section {position:relative;background:#fff;border-bottom:1px solid #e5e9f0;padding:15px}
|
||||
#fregister_chkall {position:relative;font-size:bold;text-align:left;background:#fff;padding:15px;border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;border-radius:3px}
|
||||
#fregister_chkall {position:relative;font-weight:bold;text-align:left;background:#fff;padding:15px;border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;border-radius:3px}
|
||||
#fregister h2 {text-align:left;padding-bottom:15px;line-height:1.7em;font-size:1.4em}
|
||||
#fregister textarea {display:block;width:100%;height:180px;padding:10px;background:#fbfbfb;border:1px solid #d1d7d8;line-height:1.5em;color:#555}
|
||||
#fregister p {position:relative;text-align:left;color:#fff;line-height:18px;padding:15px;font-size:1.1em;background:#f2838f;margin:15px;border-radius:5px}
|
||||
@@ -98,7 +98,7 @@
|
||||
|
||||
/* 기존 회원 본인인증 */
|
||||
#member_cert_refresh section {position:relative;background:#fff;border-bottom:1px solid #e5e9f0;padding:15px}
|
||||
#member_cert_refresh_chkall {position:relative;font-size:bold;text-align:left;background:#fff;padding:15px;border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;border-radius:3px}
|
||||
#member_cert_refresh_chkall {position:relative;font-weight:bold;text-align:left;background:#fff;padding:15px;border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;border-radius:3px}
|
||||
#member_cert_refresh h2 {text-align:left;padding-bottom:15px;line-height:1.7em;font-size:1.4em}
|
||||
#member_cert_refresh textarea {display:block;width:100%;height:180px;padding:10px;background:#fbfbfb;border:1px solid #d1d7d8;line-height:1.5em;color:#555}
|
||||
#member_cert_refresh p {position:relative;text-align:left;color:#fff;line-height:18px;padding:15px;font-size:1.1em;background:#f2838f;margin:15px;border-radius:5px}
|
||||
|
||||
@@ -1,35 +1,35 @@
|
||||
<?php
|
||||
require_once("config.php");
|
||||
|
||||
if(!function_exists('ft_nonce_is_valid')){
|
||||
if (!function_exists('ft_nonce_is_valid')) {
|
||||
include_once('../editor.lib.php');
|
||||
}
|
||||
|
||||
if( !function_exists('che_reprocessImage') ){
|
||||
function che_reprocessImage($file_path, $callback){
|
||||
|
||||
if (!function_exists('che_reprocessImage')) {
|
||||
function che_reprocessImage($file_path, $callback)
|
||||
{
|
||||
$MIME_TYPES_PROCESSORS = array(
|
||||
"image/gif" => array("imagecreatefromgif", "imagegif"),
|
||||
"image/jpg" => array("imagecreatefromjpeg", "imagejpeg"),
|
||||
"image/jpeg" => array("imagecreatefromjpeg", "imagejpeg"),
|
||||
"image/png" => array("imagecreatefrompng", "imagepng"),
|
||||
"image/webp" => array("imagecreatefromwebp", "imagewebp"),
|
||||
"image/bmp" => array("imagecreatefromwbmp", "imagewbmp")
|
||||
"image/gif" => array("imagecreatefromgif", "imagegif"),
|
||||
"image/jpg" => array("imagecreatefromjpeg", "imagejpeg"),
|
||||
"image/jpeg" => array("imagecreatefromjpeg", "imagejpeg"),
|
||||
"image/png" => array("imagecreatefrompng", "imagepng"),
|
||||
"image/webp" => array("imagecreatefromwebp", "imagewebp"),
|
||||
"image/bmp" => array("imagecreatefromwbmp", "imagewbmp")
|
||||
);
|
||||
|
||||
// Extracting mime type using getimagesize
|
||||
try {
|
||||
$image_info = getimagesize($file_path);
|
||||
if ($image_info === null) {
|
||||
//throw new Exception("Invalid image type");
|
||||
return false;
|
||||
//throw new Exception("Invalid image type");
|
||||
return false;
|
||||
}
|
||||
|
||||
$mime_type = $image_info["mime"];
|
||||
|
||||
if (!array_key_exists($mime_type, $MIME_TYPES_PROCESSORS)) {
|
||||
//throw new Exception("Invalid image MIME type");
|
||||
return false;
|
||||
//throw new Exception("Invalid image MIME type");
|
||||
return false;
|
||||
}
|
||||
|
||||
$image_from_file = $MIME_TYPES_PROCESSORS[$mime_type][0];
|
||||
@@ -38,13 +38,13 @@ if( !function_exists('che_reprocessImage') ){
|
||||
$reprocessed_image = @$image_from_file($file_path);
|
||||
|
||||
if (!$reprocessed_image) {
|
||||
//throw new Exception("Unable to create reprocessed image from file");
|
||||
return false;
|
||||
//throw new Exception("Unable to create reprocessed image from file");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Calling callback(if set) with path of image as a parameter
|
||||
if ($callback !== null) {
|
||||
$callback($reprocessed_image);
|
||||
$callback($reprocessed_image);
|
||||
}
|
||||
|
||||
// Freeing up memory
|
||||
@@ -60,13 +60,13 @@ if( !function_exists('che_reprocessImage') ){
|
||||
|
||||
$is_editor_upload = false;
|
||||
|
||||
$get_nonce = get_session('nonce_'.FT_NONCE_SESSION_KEY);
|
||||
$get_nonce = get_session('nonce_' . FT_NONCE_SESSION_KEY);
|
||||
|
||||
if( $get_nonce && ft_nonce_is_valid( $get_nonce, 'cheditor' ) ){
|
||||
if ($get_nonce && ft_nonce_is_valid($get_nonce, 'cheditor')) {
|
||||
$is_editor_upload = true;
|
||||
}
|
||||
|
||||
if( !$is_editor_upload ){
|
||||
if (!$is_editor_upload) {
|
||||
exit;
|
||||
}
|
||||
|
||||
@@ -78,19 +78,19 @@ run_event('cheditor_photo_upload', $data_dir, $data_url);
|
||||
$tempfile = $_FILES['file']['tmp_name'];
|
||||
$filename = $_FILES['file']['name'];
|
||||
$filename_len = strrpos($filename, ".");
|
||||
$type = substr($filename, strrpos($filename, ".")+1);
|
||||
$type = substr($filename, strrpos($filename, ".") + 1);
|
||||
$found = false;
|
||||
switch ($type) {
|
||||
case "jpg":
|
||||
case "jpeg":
|
||||
case "gif":
|
||||
case "png":
|
||||
case "jpg":
|
||||
case "jpeg":
|
||||
case "gif":
|
||||
case "png":
|
||||
case "webp":
|
||||
$found = true;
|
||||
$found = true;
|
||||
}
|
||||
|
||||
if ($found != true || $filename_len != 23) {
|
||||
exit;
|
||||
exit;
|
||||
}
|
||||
|
||||
// 저장 파일 이름: 년월일시분초_렌덤문자8자
|
||||
@@ -105,32 +105,50 @@ $imgsize = getimagesize($savefile);
|
||||
$filesize = filesize($savefile);
|
||||
|
||||
if (!$imgsize) {
|
||||
$filesize = 0;
|
||||
$random_name = '-ERR';
|
||||
unlink($savefile);
|
||||
};
|
||||
$filesize = 0;
|
||||
$random_name = '-ERR';
|
||||
unlink($savefile);
|
||||
}
|
||||
|
||||
if ( CHE_UPLOAD_IMG_CHECK && ! che_reprocessImage($savefile, null) ){
|
||||
$filesize = 0;
|
||||
$random_name = '-ERR';
|
||||
unlink($savefile);
|
||||
if (CHE_UPLOAD_IMG_CHECK && !che_reprocessImage($savefile, null)) {
|
||||
$filesize = 0;
|
||||
$random_name = '-ERR';
|
||||
unlink($savefile);
|
||||
}
|
||||
|
||||
try {
|
||||
if(defined('G5_FILE_PERMISSION')) chmod($savefile, G5_FILE_PERMISSION);
|
||||
if (defined('G5_FILE_PERMISSION')) {
|
||||
chmod($savefile, G5_FILE_PERMISSION);
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
}
|
||||
|
||||
$file_url = SAVE_URL.'/'.$filename;
|
||||
$file_url = SAVE_URL . '/' . $filename;
|
||||
|
||||
if( function_exists('run_replace') ){
|
||||
$file_url = run_replace('get_editor_upload_url', $file_url, $savefile, array());
|
||||
if (function_exists('run_replace')) {
|
||||
$fileInfo = new \stdClass();
|
||||
$fileInfo->name = (string) $filename;
|
||||
$fileInfo->size = (int) $filesize;
|
||||
$fileInfo->url = (string) $file_url;
|
||||
|
||||
if (isset($_POST['origname'])) {
|
||||
$fileInfo->oriname = (string) $_POST['origname'];
|
||||
}
|
||||
|
||||
if ($imgsize) {
|
||||
$fileInfo->width = (int) $imgsize[0];
|
||||
$fileInfo->height = (int) $imgsize[1];
|
||||
$fileInfo->type = (string) $imgsize['mime'];
|
||||
}
|
||||
|
||||
$file_url = run_replace('get_editor_upload_url', $file_url, $savefile, $fileInfo);
|
||||
}
|
||||
|
||||
$rdata = sprintf('{"fileUrl": "%s", "filePath": "%s", "fileName": "%s", "fileSize": "%d" }',
|
||||
$file_url,
|
||||
$savefile,
|
||||
$filename,
|
||||
$filesize );
|
||||
$rdata = sprintf(
|
||||
'{"fileUrl": "%s", "fileName": "%s", "fileSize": "%d" }',
|
||||
$file_url,
|
||||
$filename,
|
||||
$filesize
|
||||
);
|
||||
|
||||
echo $rdata;
|
||||
@@ -315,7 +315,7 @@ class Services_JSON
|
||||
*/
|
||||
for ($c = 0; $c < $strlen_var; ++$c) {
|
||||
|
||||
$ord_var_c = ord($var{$c});
|
||||
$ord_var_c = ord($var[$c]);
|
||||
|
||||
switch (true) {
|
||||
case $ord_var_c == 0x08:
|
||||
@@ -338,12 +338,12 @@ class Services_JSON
|
||||
case $ord_var_c == 0x2F:
|
||||
case $ord_var_c == 0x5C:
|
||||
// double quote, slash, slosh
|
||||
$ascii .= '\\'.$var{$c};
|
||||
$ascii .= '\\'.$var[$c];
|
||||
break;
|
||||
|
||||
case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
|
||||
// characters U-00000000 - U-0000007F (same as ASCII)
|
||||
$ascii .= $var{$c};
|
||||
$ascii .= $var[$c];
|
||||
break;
|
||||
|
||||
case (($ord_var_c & 0xE0) == 0xC0):
|
||||
@@ -355,7 +355,7 @@ class Services_JSON
|
||||
break;
|
||||
}
|
||||
|
||||
$char = pack('C*', $ord_var_c, ord($var{$c + 1}));
|
||||
$char = pack('C*', $ord_var_c, ord($var[$c + 1]));
|
||||
$c += 1;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -370,8 +370,8 @@ class Services_JSON
|
||||
// characters U-00000800 - U-0000FFFF, mask 1110XXXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c,
|
||||
@ord($var{$c + 1}),
|
||||
@ord($var{$c + 2}));
|
||||
@ord($var[$c + 1]),
|
||||
@ord($var[$c + 2]));
|
||||
$c += 2;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -386,9 +386,9 @@ class Services_JSON
|
||||
// characters U-00010000 - U-001FFFFF, mask 11110XXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c,
|
||||
ord($var{$c + 1}),
|
||||
ord($var{$c + 2}),
|
||||
ord($var{$c + 3}));
|
||||
ord($var[$c + 1]),
|
||||
ord($var[$c + 2]),
|
||||
ord($var[$c + 3]));
|
||||
$c += 3;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -403,10 +403,10 @@ class Services_JSON
|
||||
break;
|
||||
}
|
||||
$char = pack('C*', $ord_var_c,
|
||||
ord($var{$c + 1}),
|
||||
ord($var{$c + 2}),
|
||||
ord($var{$c + 3}),
|
||||
ord($var{$c + 4}));
|
||||
ord($var[$c + 1]),
|
||||
ord($var[$c + 2]),
|
||||
ord($var[$c + 3]),
|
||||
ord($var[$c + 4]));
|
||||
$c += 4;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -421,11 +421,11 @@ class Services_JSON
|
||||
// characters U-04000000 - U-7FFFFFFF, mask 1111110X
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c,
|
||||
ord($var{$c + 1}),
|
||||
ord($var{$c + 2}),
|
||||
ord($var{$c + 3}),
|
||||
ord($var{$c + 4}),
|
||||
ord($var{$c + 5}));
|
||||
ord($var[$c + 1]),
|
||||
ord($var[$c + 2]),
|
||||
ord($var[$c + 3]),
|
||||
ord($var[$c + 4]),
|
||||
ord($var[$c + 5]));
|
||||
$c += 5;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -618,7 +618,7 @@ class Services_JSON
|
||||
for ($c = 0; $c < $strlen_chrs; ++$c) {
|
||||
|
||||
$substr_chrs_c_2 = $this->substr8($chrs, $c, 2);
|
||||
$ord_chrs_c = ord($chrs{$c});
|
||||
$ord_chrs_c = ord($chrs[$c]);
|
||||
|
||||
switch (true) {
|
||||
case $substr_chrs_c_2 == '\b':
|
||||
@@ -648,7 +648,7 @@ class Services_JSON
|
||||
case $substr_chrs_c_2 == '\\/':
|
||||
if (($delim == '"' && $substr_chrs_c_2 != '\\\'') ||
|
||||
($delim == "'" && $substr_chrs_c_2 != '\\"')) {
|
||||
$utf8 .= $chrs{++$c};
|
||||
$utf8 .= $chrs[++$c];
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -661,7 +661,7 @@ class Services_JSON
|
||||
break;
|
||||
|
||||
case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F):
|
||||
$utf8 .= $chrs{$c};
|
||||
$utf8 .= $chrs[$c];
|
||||
break;
|
||||
|
||||
case ($ord_chrs_c & 0xE0) == 0xC0:
|
||||
@@ -708,7 +708,7 @@ class Services_JSON
|
||||
} elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) {
|
||||
// array, or object notation
|
||||
|
||||
if ($str{0} == '[') {
|
||||
if ($str[0] == '[') {
|
||||
$stk = array(SERVICES_JSON_IN_ARR);
|
||||
$arr = array();
|
||||
} else {
|
||||
@@ -747,7 +747,7 @@ class Services_JSON
|
||||
$top = end($stk);
|
||||
$substr_chrs_c_2 = $this->substr8($chrs, $c, 2);
|
||||
|
||||
if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) {
|
||||
if (($c == $strlen_chrs) || (($chrs[$c] == ',') && ($top['what'] == SERVICES_JSON_SLICE))) {
|
||||
// found a comma that is not inside a string, array, etc.,
|
||||
// OR we've reached the end of the character list
|
||||
$slice = $this->substr8($chrs, $top['where'], ($c - $top['where']));
|
||||
@@ -788,12 +788,12 @@ class Services_JSON
|
||||
|
||||
}
|
||||
|
||||
} elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) {
|
||||
} elseif ((($chrs[$c] == '"') || ($chrs[$c] == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) {
|
||||
// found a quote, and we are not inside a string
|
||||
array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c}));
|
||||
array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs[$c]));
|
||||
//print("Found start of string at {$c}\n");
|
||||
|
||||
} elseif (($chrs{$c} == $top['delim']) &&
|
||||
} elseif (($chrs[$c] == $top['delim']) &&
|
||||
($top['what'] == SERVICES_JSON_IN_STR) &&
|
||||
(($this->strlen8($this->substr8($chrs, 0, $c)) - $this->strlen8(rtrim($this->substr8($chrs, 0, $c), '\\'))) % 2 != 1)) {
|
||||
// found a quote, we're in a string, and it's not escaped
|
||||
@@ -802,24 +802,24 @@ class Services_JSON
|
||||
array_pop($stk);
|
||||
//print("Found end of string at {$c}: ".$this->substr8($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n");
|
||||
|
||||
} elseif (($chrs{$c} == '[') &&
|
||||
} elseif (($chrs[$c] == '[') &&
|
||||
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
|
||||
// found a left-bracket, and we are in an array, object, or slice
|
||||
array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false));
|
||||
//print("Found start of array at {$c}\n");
|
||||
|
||||
} elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) {
|
||||
} elseif (($chrs[$c] == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) {
|
||||
// found a right-bracket, and we're in an array
|
||||
array_pop($stk);
|
||||
//print("Found end of array at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n");
|
||||
|
||||
} elseif (($chrs{$c} == '{') &&
|
||||
} elseif (($chrs[$c] == '{') &&
|
||||
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
|
||||
// found a left-brace, and we are in an array, object, or slice
|
||||
array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false));
|
||||
//print("Found start of object at {$c}\n");
|
||||
|
||||
} elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) {
|
||||
} elseif (($chrs[$c] == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) {
|
||||
// found a right-brace, and we're in an object
|
||||
array_pop($stk);
|
||||
//print("Found end of object at {$c}: ".$this->substr8($chrs, $top['where'], (1 + $c - $top['where']))."\n");
|
||||
|
||||
@@ -12,9 +12,9 @@ if($config['cf_cert_use'] == 2) { // 실서비스 일때
|
||||
$mTxId ='SIR_'.$max_cr_id;
|
||||
certify_count_check($member['mb_id'], 'simple'); // 금일 인증시도 횟수 체크
|
||||
} else { // 테스트 일때
|
||||
$mid = "INIiasTest";
|
||||
$apiKey = "TGdxb2l3enJDWFRTbTgvREU3MGYwUT09";
|
||||
$mTxId ='test_'.$max_cr_id;
|
||||
$mid = "SRAiasTest";
|
||||
$apiKey = "43700dfd4c795fe9550853aef3b6aaf1";
|
||||
$mTxId ='SIR_'.$max_cr_id;
|
||||
}
|
||||
$reqSvcCd ='01';
|
||||
|
||||
|
||||
@@ -153,7 +153,7 @@ class Services_JSON
|
||||
return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
|
||||
}
|
||||
|
||||
$bytes = (ord($utf16{0}) << 8) | ord($utf16{1});
|
||||
$bytes = (ord($utf16[0]) << 8) | ord($utf16[1]);
|
||||
|
||||
switch(true) {
|
||||
case ((0x7F & $bytes) == $bytes):
|
||||
@@ -206,17 +206,17 @@ class Services_JSON
|
||||
case 2:
|
||||
// return a UTF-16 character from a 2-byte UTF-8 char
|
||||
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
return chr(0x07 & (ord($utf8{0}) >> 2))
|
||||
. chr((0xC0 & (ord($utf8{0}) << 6))
|
||||
| (0x3F & ord($utf8{1})));
|
||||
return chr(0x07 & (ord($utf8[0]) >> 2))
|
||||
. chr((0xC0 & (ord($utf8[0]) << 6))
|
||||
| (0x3F & ord($utf8[1])));
|
||||
|
||||
case 3:
|
||||
// return a UTF-16 character from a 3-byte UTF-8 char
|
||||
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
return chr((0xF0 & (ord($utf8{0}) << 4))
|
||||
| (0x0F & (ord($utf8{1}) >> 2)))
|
||||
. chr((0xC0 & (ord($utf8{1}) << 6))
|
||||
| (0x7F & ord($utf8{2})));
|
||||
return chr((0xF0 & (ord($utf8[0]) << 4))
|
||||
| (0x0F & (ord($utf8[1]) >> 2)))
|
||||
. chr((0xC0 & (ord($utf8[1]) << 6))
|
||||
| (0x7F & ord($utf8[2])));
|
||||
}
|
||||
|
||||
// ignoring UTF-32 for now, sorry
|
||||
@@ -261,7 +261,7 @@ class Services_JSON
|
||||
*/
|
||||
for ($c = 0; $c < $strlen_var; ++$c) {
|
||||
|
||||
$ord_var_c = ord($var{$c});
|
||||
$ord_var_c = ord($var[$c]);
|
||||
|
||||
switch (true) {
|
||||
case $ord_var_c == 0x08:
|
||||
@@ -284,18 +284,18 @@ class Services_JSON
|
||||
case $ord_var_c == 0x2F:
|
||||
case $ord_var_c == 0x5C:
|
||||
// double quote, slash, slosh
|
||||
$ascii .= '\\'.$var{$c};
|
||||
$ascii .= '\\'.$var[$c];
|
||||
break;
|
||||
|
||||
case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
|
||||
// characters U-00000000 - U-0000007F (same as ASCII)
|
||||
$ascii .= $var{$c};
|
||||
$ascii .= $var[$c];
|
||||
break;
|
||||
|
||||
case (($ord_var_c & 0xE0) == 0xC0):
|
||||
// characters U-00000080 - U-000007FF, mask 110XXXXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c, ord($var{$c + 1}));
|
||||
$char = pack('C*', $ord_var_c, ord($var[$c + 1]));
|
||||
$c += 1;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -305,8 +305,8 @@ class Services_JSON
|
||||
// characters U-00000800 - U-0000FFFF, mask 1110XXXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c,
|
||||
ord($var{$c + 1}),
|
||||
ord($var{$c + 2}));
|
||||
ord($var[$c + 1]),
|
||||
ord($var[$c + 2]));
|
||||
$c += 2;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -316,9 +316,9 @@ class Services_JSON
|
||||
// characters U-00010000 - U-001FFFFF, mask 11110XXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c,
|
||||
ord($var{$c + 1}),
|
||||
ord($var{$c + 2}),
|
||||
ord($var{$c + 3}));
|
||||
ord($var[$c + 1]),
|
||||
ord($var[$c + 2]),
|
||||
ord($var[$c + 3]));
|
||||
$c += 3;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -328,10 +328,10 @@ class Services_JSON
|
||||
// characters U-00200000 - U-03FFFFFF, mask 111110XX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c,
|
||||
ord($var{$c + 1}),
|
||||
ord($var{$c + 2}),
|
||||
ord($var{$c + 3}),
|
||||
ord($var{$c + 4}));
|
||||
ord($var[$c + 1]),
|
||||
ord($var[$c + 2]),
|
||||
ord($var[$c + 3]),
|
||||
ord($var[$c + 4]));
|
||||
$c += 4;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -341,11 +341,11 @@ class Services_JSON
|
||||
// characters U-04000000 - U-7FFFFFFF, mask 1111110X
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c,
|
||||
ord($var{$c + 1}),
|
||||
ord($var{$c + 2}),
|
||||
ord($var{$c + 3}),
|
||||
ord($var{$c + 4}),
|
||||
ord($var{$c + 5}));
|
||||
ord($var[$c + 1]),
|
||||
ord($var[$c + 2]),
|
||||
ord($var[$c + 3]),
|
||||
ord($var[$c + 4]),
|
||||
ord($var[$c + 5]));
|
||||
$c += 5;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -520,7 +520,7 @@ class Services_JSON
|
||||
for ($c = 0; $c < $strlen_chrs; ++$c) {
|
||||
|
||||
$substr_chrs_c_2 = substr($chrs, $c, 2);
|
||||
$ord_chrs_c = ord($chrs{$c});
|
||||
$ord_chrs_c = ord($chrs[$c]);
|
||||
|
||||
switch (true) {
|
||||
case $substr_chrs_c_2 == '\b':
|
||||
@@ -550,7 +550,7 @@ class Services_JSON
|
||||
case $substr_chrs_c_2 == '\\/':
|
||||
if (($delim == '"' && $substr_chrs_c_2 != '\\\'') ||
|
||||
($delim == "'" && $substr_chrs_c_2 != '\\"')) {
|
||||
$utf8 .= $chrs{++$c};
|
||||
$utf8 .= $chrs[++$c];
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -563,7 +563,7 @@ class Services_JSON
|
||||
break;
|
||||
|
||||
case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F):
|
||||
$utf8 .= $chrs{$c};
|
||||
$utf8 .= $chrs[$c];
|
||||
break;
|
||||
|
||||
case ($ord_chrs_c & 0xE0) == 0xC0:
|
||||
@@ -610,7 +610,7 @@ class Services_JSON
|
||||
} elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) {
|
||||
// array, or object notation
|
||||
|
||||
if ($str{0} == '[') {
|
||||
if ($str[0] == '[') {
|
||||
$stk = array(SERVICES_JSON_IN_ARR);
|
||||
$arr = array();
|
||||
} else {
|
||||
@@ -649,7 +649,7 @@ class Services_JSON
|
||||
$top = end($stk);
|
||||
$substr_chrs_c_2 = substr($chrs, $c, 2);
|
||||
|
||||
if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) {
|
||||
if (($c == $strlen_chrs) || (($chrs[$c] == ',') && ($top['what'] == SERVICES_JSON_SLICE))) {
|
||||
// found a comma that is not inside a string, array, etc.,
|
||||
// OR we've reached the end of the character list
|
||||
$slice = substr($chrs, $top['where'], ($c - $top['where']));
|
||||
@@ -691,12 +691,12 @@ class Services_JSON
|
||||
|
||||
}
|
||||
|
||||
} elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) {
|
||||
} elseif ((($chrs[$c] == '"') || ($chrs[$c] == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) {
|
||||
// found a quote, and we are not inside a string
|
||||
array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c}));
|
||||
array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs[$c]));
|
||||
//print("Found start of string at {$c}\n");
|
||||
|
||||
} elseif (($chrs{$c} == $top['delim']) &&
|
||||
} elseif (($chrs[$c] == $top['delim']) &&
|
||||
($top['what'] == SERVICES_JSON_IN_STR) &&
|
||||
((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) {
|
||||
// found a quote, we're in a string, and it's not escaped
|
||||
@@ -705,24 +705,24 @@ class Services_JSON
|
||||
array_pop($stk);
|
||||
//print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n");
|
||||
|
||||
} elseif (($chrs{$c} == '[') &&
|
||||
} elseif (($chrs[$c] == '[') &&
|
||||
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
|
||||
// found a left-bracket, and we are in an array, object, or slice
|
||||
array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false));
|
||||
//print("Found start of array at {$c}\n");
|
||||
|
||||
} elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) {
|
||||
} elseif (($chrs[$c] == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) {
|
||||
// found a right-bracket, and we're in an array
|
||||
array_pop($stk);
|
||||
//print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
|
||||
|
||||
} elseif (($chrs{$c} == '{') &&
|
||||
} elseif (($chrs[$c] == '{') &&
|
||||
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
|
||||
// found a left-brace, and we are in an array, object, or slice
|
||||
array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false));
|
||||
//print("Found start of object at {$c}\n");
|
||||
|
||||
} elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) {
|
||||
} elseif (($chrs[$c] == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) {
|
||||
// found a right-brace, and we're in an object
|
||||
array_pop($stk);
|
||||
//print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
|
||||
|
||||
+1
-1
@@ -81,7 +81,7 @@ if($act == "buy")
|
||||
$sum = sql_fetch($sql);
|
||||
// $sum['cnt'] 가 null 일때 재고 반영이 제대로 안되는 오류 수정 (그누위즈님,210614)
|
||||
// $sum_qty = $sum['cnt'];
|
||||
$sum_qty = is_int($sum['cnt']) ? $sum['cnt'] : 0;
|
||||
$sum_qty = isset($sum['cnt']) ? (int) $sum['cnt'] : 0;
|
||||
|
||||
// 재고 구함
|
||||
$ct_qty = $row['ct_qty'];
|
||||
|
||||
+38
-38
@@ -153,7 +153,7 @@ class Services_JSON
|
||||
return mb_convert_encoding($utf16, 'UTF-8', 'UTF-16');
|
||||
}
|
||||
|
||||
$bytes = (ord($utf16{0}) << 8) | ord($utf16{1});
|
||||
$bytes = (ord($utf16[0]) << 8) | ord($utf16[1]);
|
||||
|
||||
switch(true) {
|
||||
case ((0x7F & $bytes) == $bytes):
|
||||
@@ -206,17 +206,17 @@ class Services_JSON
|
||||
case 2:
|
||||
// return a UTF-16 character from a 2-byte UTF-8 char
|
||||
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
return chr(0x07 & (ord($utf8{0}) >> 2))
|
||||
. chr((0xC0 & (ord($utf8{0}) << 6))
|
||||
| (0x3F & ord($utf8{1})));
|
||||
return chr(0x07 & (ord($utf8[0]) >> 2))
|
||||
. chr((0xC0 & (ord($utf8[0]) << 6))
|
||||
| (0x3F & ord($utf8[1])));
|
||||
|
||||
case 3:
|
||||
// return a UTF-16 character from a 3-byte UTF-8 char
|
||||
// see: http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
return chr((0xF0 & (ord($utf8{0}) << 4))
|
||||
| (0x0F & (ord($utf8{1}) >> 2)))
|
||||
. chr((0xC0 & (ord($utf8{1}) << 6))
|
||||
| (0x7F & ord($utf8{2})));
|
||||
return chr((0xF0 & (ord($utf8[0]) << 4))
|
||||
| (0x0F & (ord($utf8[1]) >> 2)))
|
||||
. chr((0xC0 & (ord($utf8[1]) << 6))
|
||||
| (0x7F & ord($utf8[2])));
|
||||
}
|
||||
|
||||
// ignoring UTF-32 for now, sorry
|
||||
@@ -261,7 +261,7 @@ class Services_JSON
|
||||
*/
|
||||
for ($c = 0; $c < $strlen_var; ++$c) {
|
||||
|
||||
$ord_var_c = ord($var{$c});
|
||||
$ord_var_c = ord($var[$c]);
|
||||
|
||||
switch (true) {
|
||||
case $ord_var_c == 0x08:
|
||||
@@ -284,18 +284,18 @@ class Services_JSON
|
||||
case $ord_var_c == 0x2F:
|
||||
case $ord_var_c == 0x5C:
|
||||
// double quote, slash, slosh
|
||||
$ascii .= '\\'.$var{$c};
|
||||
$ascii .= '\\'.$var[$c];
|
||||
break;
|
||||
|
||||
case (($ord_var_c >= 0x20) && ($ord_var_c <= 0x7F)):
|
||||
// characters U-00000000 - U-0000007F (same as ASCII)
|
||||
$ascii .= $var{$c};
|
||||
$ascii .= $var[$c];
|
||||
break;
|
||||
|
||||
case (($ord_var_c & 0xE0) == 0xC0):
|
||||
// characters U-00000080 - U-000007FF, mask 110XXXXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c, ord($var{$c + 1}));
|
||||
$char = pack('C*', $ord_var_c, ord($var[$c + 1]));
|
||||
$c += 1;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -305,8 +305,8 @@ class Services_JSON
|
||||
// characters U-00000800 - U-0000FFFF, mask 1110XXXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c,
|
||||
ord($var{$c + 1}),
|
||||
ord($var{$c + 2}));
|
||||
ord($var[$c + 1]),
|
||||
ord($var[$c + 2]));
|
||||
$c += 2;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -316,9 +316,9 @@ class Services_JSON
|
||||
// characters U-00010000 - U-001FFFFF, mask 11110XXX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c,
|
||||
ord($var{$c + 1}),
|
||||
ord($var{$c + 2}),
|
||||
ord($var{$c + 3}));
|
||||
ord($var[$c + 1]),
|
||||
ord($var[$c + 2]),
|
||||
ord($var[$c + 3]));
|
||||
$c += 3;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -328,10 +328,10 @@ class Services_JSON
|
||||
// characters U-00200000 - U-03FFFFFF, mask 111110XX
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c,
|
||||
ord($var{$c + 1}),
|
||||
ord($var{$c + 2}),
|
||||
ord($var{$c + 3}),
|
||||
ord($var{$c + 4}));
|
||||
ord($var[$c + 1]),
|
||||
ord($var[$c + 2]),
|
||||
ord($var[$c + 3]),
|
||||
ord($var[$c + 4]));
|
||||
$c += 4;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -341,11 +341,11 @@ class Services_JSON
|
||||
// characters U-04000000 - U-7FFFFFFF, mask 1111110X
|
||||
// see http://www.cl.cam.ac.uk/~mgk25/unicode.html#utf-8
|
||||
$char = pack('C*', $ord_var_c,
|
||||
ord($var{$c + 1}),
|
||||
ord($var{$c + 2}),
|
||||
ord($var{$c + 3}),
|
||||
ord($var{$c + 4}),
|
||||
ord($var{$c + 5}));
|
||||
ord($var[$c + 1]),
|
||||
ord($var[$c + 2]),
|
||||
ord($var[$c + 3]),
|
||||
ord($var[$c + 4]),
|
||||
ord($var[$c + 5]));
|
||||
$c += 5;
|
||||
$utf16 = $this->utf82utf16($char);
|
||||
$ascii .= sprintf('\u%04s', bin2hex($utf16));
|
||||
@@ -520,7 +520,7 @@ class Services_JSON
|
||||
for ($c = 0; $c < $strlen_chrs; ++$c) {
|
||||
|
||||
$substr_chrs_c_2 = substr($chrs, $c, 2);
|
||||
$ord_chrs_c = ord($chrs{$c});
|
||||
$ord_chrs_c = ord($chrs[$c]);
|
||||
|
||||
switch (true) {
|
||||
case $substr_chrs_c_2 == '\b':
|
||||
@@ -550,7 +550,7 @@ class Services_JSON
|
||||
case $substr_chrs_c_2 == '\\/':
|
||||
if (($delim == '"' && $substr_chrs_c_2 != '\\\'') ||
|
||||
($delim == "'" && $substr_chrs_c_2 != '\\"')) {
|
||||
$utf8 .= $chrs{++$c};
|
||||
$utf8 .= $chrs[++$c];
|
||||
}
|
||||
break;
|
||||
|
||||
@@ -563,7 +563,7 @@ class Services_JSON
|
||||
break;
|
||||
|
||||
case ($ord_chrs_c >= 0x20) && ($ord_chrs_c <= 0x7F):
|
||||
$utf8 .= $chrs{$c};
|
||||
$utf8 .= $chrs[$c];
|
||||
break;
|
||||
|
||||
case ($ord_chrs_c & 0xE0) == 0xC0:
|
||||
@@ -610,7 +610,7 @@ class Services_JSON
|
||||
} elseif (preg_match('/^\[.*\]$/s', $str) || preg_match('/^\{.*\}$/s', $str)) {
|
||||
// array, or object notation
|
||||
|
||||
if ($str{0} == '[') {
|
||||
if ($str[0] == '[') {
|
||||
$stk = array(SERVICES_JSON_IN_ARR);
|
||||
$arr = array();
|
||||
} else {
|
||||
@@ -649,7 +649,7 @@ class Services_JSON
|
||||
$top = end($stk);
|
||||
$substr_chrs_c_2 = substr($chrs, $c, 2);
|
||||
|
||||
if (($c == $strlen_chrs) || (($chrs{$c} == ',') && ($top['what'] == SERVICES_JSON_SLICE))) {
|
||||
if (($c == $strlen_chrs) || (($chrs[$c] == ',') && ($top['what'] == SERVICES_JSON_SLICE))) {
|
||||
// found a comma that is not inside a string, array, etc.,
|
||||
// OR we've reached the end of the character list
|
||||
$slice = substr($chrs, $top['where'], ($c - $top['where']));
|
||||
@@ -691,12 +691,12 @@ class Services_JSON
|
||||
|
||||
}
|
||||
|
||||
} elseif ((($chrs{$c} == '"') || ($chrs{$c} == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) {
|
||||
} elseif ((($chrs[$c] == '"') || ($chrs[$c] == "'")) && ($top['what'] != SERVICES_JSON_IN_STR)) {
|
||||
// found a quote, and we are not inside a string
|
||||
array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs{$c}));
|
||||
array_push($stk, array('what' => SERVICES_JSON_IN_STR, 'where' => $c, 'delim' => $chrs[$c]));
|
||||
//print("Found start of string at {$c}\n");
|
||||
|
||||
} elseif (($chrs{$c} == $top['delim']) &&
|
||||
} elseif (($chrs[$c] == $top['delim']) &&
|
||||
($top['what'] == SERVICES_JSON_IN_STR) &&
|
||||
((strlen(substr($chrs, 0, $c)) - strlen(rtrim(substr($chrs, 0, $c), '\\'))) % 2 != 1)) {
|
||||
// found a quote, we're in a string, and it's not escaped
|
||||
@@ -705,24 +705,24 @@ class Services_JSON
|
||||
array_pop($stk);
|
||||
//print("Found end of string at {$c}: ".substr($chrs, $top['where'], (1 + 1 + $c - $top['where']))."\n");
|
||||
|
||||
} elseif (($chrs{$c} == '[') &&
|
||||
} elseif (($chrs[$c] == '[') &&
|
||||
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
|
||||
// found a left-bracket, and we are in an array, object, or slice
|
||||
array_push($stk, array('what' => SERVICES_JSON_IN_ARR, 'where' => $c, 'delim' => false));
|
||||
//print("Found start of array at {$c}\n");
|
||||
|
||||
} elseif (($chrs{$c} == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) {
|
||||
} elseif (($chrs[$c] == ']') && ($top['what'] == SERVICES_JSON_IN_ARR)) {
|
||||
// found a right-bracket, and we're in an array
|
||||
array_pop($stk);
|
||||
//print("Found end of array at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
|
||||
|
||||
} elseif (($chrs{$c} == '{') &&
|
||||
} elseif (($chrs[$c] == '{') &&
|
||||
in_array($top['what'], array(SERVICES_JSON_SLICE, SERVICES_JSON_IN_ARR, SERVICES_JSON_IN_OBJ))) {
|
||||
// found a left-brace, and we are in an array, object, or slice
|
||||
array_push($stk, array('what' => SERVICES_JSON_IN_OBJ, 'where' => $c, 'delim' => false));
|
||||
//print("Found start of object at {$c}\n");
|
||||
|
||||
} elseif (($chrs{$c} == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) {
|
||||
} elseif (($chrs[$c] == '}') && ($top['what'] == SERVICES_JSON_IN_OBJ)) {
|
||||
// found a right-brace, and we're in an object
|
||||
array_pop($stk);
|
||||
//print("Found end of object at {$c}: ".substr($chrs, $top['where'], (1 + $c - $top['where']))."\n");
|
||||
|
||||
@@ -47,6 +47,8 @@ if ($w == "")
|
||||
iq_time = '".G5_TIME_YMDHIS."',
|
||||
iq_ip = '".$_SERVER['REMOTE_ADDR']."' ";
|
||||
sql_query($sql);
|
||||
$iq_id = sql_insert_id();
|
||||
run_event('shop_item_qa_created', $iq_id, $it_id);
|
||||
|
||||
$alert_msg = '상품문의가 등록 되었습니다.';
|
||||
}
|
||||
@@ -68,6 +70,7 @@ else if ($w == "u")
|
||||
iq_question = '$iq_question'
|
||||
where iq_id = '$iq_id' ";
|
||||
sql_query($sql);
|
||||
run_event('shop_item_qa_updated', $iq_id, $it_id);
|
||||
|
||||
$alert_msg = '상품문의가 수정 되었습니다.';
|
||||
}
|
||||
@@ -84,7 +87,7 @@ else if ($w == "d")
|
||||
alert("답변이 있는 상품문의는 삭제하실 수 없습니다.");
|
||||
}
|
||||
|
||||
// 에디터로 첨부된 이미지 삭제
|
||||
// 에디터로 첨부된 썸네일 이미지만 삭제
|
||||
$sql = " select iq_question, iq_answer from {$g5['g5_shop_item_qa_table']} where iq_id = '$iq_id' and md5(concat(iq_id,iq_time,iq_ip)) = '{$hash}' ";
|
||||
$row = sql_fetch($sql);
|
||||
|
||||
@@ -101,8 +104,10 @@ else if ($w == "d")
|
||||
|
||||
$destfile = ( ! preg_match('/\w+\/\.\.\//', $data_path) ) ? G5_PATH.$data_path : '';
|
||||
|
||||
if($destfile && preg_match('/\/data\/editor\/[A-Za-z0-9_]{1,20}\//', $destfile) && is_file($destfile))
|
||||
@unlink($destfile);
|
||||
if ($destfile && preg_match('/\/data\/editor\/[A-Za-z0-9_]{1,20}\//', $destfile) && is_file($destfile)) {
|
||||
delete_item_thumbnail(dirname($destfile), basename($destfile));
|
||||
//@unlink($destfile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -121,13 +126,16 @@ else if ($w == "d")
|
||||
|
||||
$destfile = ( ! preg_match('/\w+\/\.\.\//', $data_path) ) ? G5_PATH.$data_path : '';
|
||||
|
||||
if($destfile && preg_match('/\/data\/editor\/[A-Za-z0-9_]{1,20}\//', $destfile) && is_file($destfile))
|
||||
@unlink($destfile);
|
||||
if ($destfile && preg_match('/\/data\/editor\/[A-Za-z0-9_]{1,20}\//', $destfile) && is_file($destfile)) {
|
||||
delete_item_thumbnail(dirname($destfile), basename($destfile));
|
||||
// @unlink($destfile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$sql = " delete from {$g5['g5_shop_item_qa_table']} where iq_id = '$iq_id' and md5(concat(iq_id,iq_time,iq_ip)) = '{$hash}' ";
|
||||
sql_query($sql);
|
||||
run_event('shop_item_qa_deleted', $iq_id, $it_id);
|
||||
|
||||
$alert_msg = '상품문의가 삭제 되었습니다.';
|
||||
}
|
||||
|
||||
@@ -59,6 +59,8 @@ if ($w == "")
|
||||
if (!$default['de_item_use_use'])
|
||||
$sql .= ", is_confirm = '1' ";
|
||||
sql_query($sql);
|
||||
$is_id = sql_insert_id();
|
||||
run_event('shop_item_use_created', $is_id, $it_id);
|
||||
|
||||
if ($default['de_item_use_use']) {
|
||||
$alert_msg = "평가하신 글은 관리자가 확인한 후에 출력됩니다.";
|
||||
@@ -80,6 +82,7 @@ else if ($w == "u")
|
||||
is_score = '$is_score'
|
||||
where is_id = '$is_id' ";
|
||||
sql_query($sql);
|
||||
run_event('shop_item_use_updated', $is_id, $it_id);
|
||||
|
||||
$alert_msg = "사용후기가 수정 되었습니다.";
|
||||
}
|
||||
@@ -93,7 +96,7 @@ else if ($w == "d")
|
||||
alert("자신의 사용후기만 삭제하실 수 있습니다.");
|
||||
}
|
||||
|
||||
// 에디터로 첨부된 이미지 삭제
|
||||
// 에디터로 첨부된 썸네일 이미지 삭제
|
||||
$sql = " select is_content from {$g5['g5_shop_item_use_table']} where is_id = '$is_id' and md5(concat(is_id,is_time,is_ip)) = '{$hash}' ";
|
||||
$row = sql_fetch($sql);
|
||||
|
||||
@@ -111,13 +114,16 @@ else if ($w == "d")
|
||||
|
||||
$destfile = ( ! preg_match('/\w+\/\.\.\//', $data_path) ) ? G5_PATH.$data_path : '';
|
||||
|
||||
if($destfile && preg_match('/\/data\/editor\/[A-Za-z0-9_]{1,20}\//', $destfile) && is_file($destfile))
|
||||
@unlink($destfile);
|
||||
if ($destfile && preg_match('/\/data\/editor\/[A-Za-z0-9_]{1,20}\//', $destfile) && is_file($destfile)) {
|
||||
delete_item_thumbnail(dirname($destfile), basename($destfile));
|
||||
//@unlink($destfile);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$sql = " delete from {$g5['g5_shop_item_use_table']} where is_id = '$is_id' and md5(concat(is_id,is_time,is_ip)) = '{$hash}' ";
|
||||
sql_query($sql);
|
||||
run_event('shop_item_use_deleted', $is_id, $it_id);
|
||||
|
||||
$alert_msg = "사용후기를 삭제 하였습니다.";
|
||||
}
|
||||
|
||||
+2
-2
@@ -34,7 +34,7 @@ if ($sort != '')
|
||||
else
|
||||
$order_by = 'it_order, it_id desc';
|
||||
|
||||
$skin = isset($skin) ? $skin : '';
|
||||
$skin = isset($skin) ? strip_tags($skin) : '';
|
||||
if (!$skin || preg_match('#\.+[\\\/]#', $skin))
|
||||
$skin = $default['de_listtype_list_skin'];
|
||||
else
|
||||
@@ -77,7 +77,7 @@ if (file_exists($list_file)) {
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<div align="center">'.$skin.' 파일을 찾을 수 없습니다.<br>관리자에게 알려주시면 감사하겠습니다.</div>';
|
||||
echo '<div align="center">'.get_text($skin).' 파일을 찾을 수 없습니다.<br>관리자에게 알려주시면 감사하겠습니다.</div>';
|
||||
}
|
||||
|
||||
$qstr .= '&type='.$type.'&sort='.$sort;
|
||||
|
||||
@@ -789,7 +789,7 @@ box-shadow: 1px 2px 2px #eee;}
|
||||
#od_tot_price strong{font-size:1.5em;color:#ff006c}
|
||||
#sod_frm #sod_frm_pt_alert {margin:5px 0;color:#38b2bb }
|
||||
#od_pay_sl h3{font-size:1.167em;margin:20px 0 5px}
|
||||
#od_pay_sl input[type="radio"]{position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left: 0;z-index: -1px;}
|
||||
#od_pay_sl input[type="radio"]{position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left: 0;z-index: -1;}
|
||||
#od_pay_sl .lb_icon {display: inline-block;float:left;width:50%;background:#fff;border:1px solid #eceff4;margin:-1px 0 0 -1px;cursor: pointer;height:60px;position:relative;padding-left:65px;padding-top:20px;z-index:1}
|
||||
#od_pay_sl input[type="radio"]:checked+.lb_icon {border:1px solid #ff006c;z-index:3}
|
||||
#sod_frm_paysel {}
|
||||
|
||||
@@ -82,8 +82,8 @@ input, textarea {
|
||||
/*카테고리*/
|
||||
.menu {display:none;position:fixed;top:0;height:100%;z-index:99999;-webkit-backface-visibility:hidden;width:100%;background:#efefef}
|
||||
.menu .menu_wr{width:100%;height:100%;overflow-y:auto;background:#eee;position:relative;z-index:199919;
|
||||
-webkit-box-shadow: 0 0 5px rgba(55,55,5,0.4));
|
||||
-moz-box-shadow: 0 0 5px rgba(55,55,5,0.4));
|
||||
-webkit-box-shadow: 0 0 5px rgba(55,55,5,0.4);
|
||||
-moz-box-shadow: 0 0 5px rgba(55,55,5,0.4);
|
||||
box-shadow: 0 0 5px rgba(55,55,5,0.4);}
|
||||
.menu .menu_close {position:absolute;top:50%;right:0px;width:40px;height:40px;background:none;color:#fff;font-size:20px;margin-top:-20px;border:0;z-index:199999}
|
||||
|
||||
@@ -357,7 +357,7 @@ box-shadow: inset 0 1px 1px rgba(0, 0, 0, .075);
|
||||
#sod_addr .addr_btn:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
#sod_addr .sel_address {width:32%;float:left;margin-right:1%;height:30px;background:none;border:1px solid #333;color:#333;padding:0 5px}
|
||||
#sod_addr .del_address {display:block;width:32%;text-align:center;float:left;margin-right:1%;border:1px solid #aaa;background:none;color:#888;padding:0 5px;height:30px;line-height:28px;vertical-align:middle}
|
||||
#sod_addr input[type="radio"] {position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left:0;z-index:-1px}
|
||||
#sod_addr input[type="radio"] {position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left:0;z-index:-1}
|
||||
#sod_addr .add_lb {display:inline-block;float:left;width:32%;text-align:center;border:1px solid #4162ff;color:#4162ff;height:30px;line-height:28px}
|
||||
#sod_addr input[type="radio"]:checked+.add_lb {z-index:3;background:#4162ff;color:#fff}
|
||||
|
||||
@@ -577,7 +577,7 @@ a.btn02 {display:inline-block;padding:8px 7px 7px;border:1px solid #3b3c3f;backg
|
||||
a.btn02:focus, .btn02:hover {text-decoration:none}
|
||||
button.btn02 {display:inline-block;margin:0;padding:7px;border:1px solid #3b3c3f;background:#4b545e;color:#fff;text-decoration:none}
|
||||
.btn_confirm {text-align:center} /* 서식단계 진행 */
|
||||
.btn_submit {padding:0 5px;border:0;background:#3a8afd;border:1px solid #1c70e9;color:#fff;letter-spacing:-0.1em;border-radius:3px}}
|
||||
.btn_submit {padding:0 5px;border:0;background:#3a8afd;border:1px solid #1c70e9;color:#fff;letter-spacing:-0.1em;border-radius:3px}
|
||||
fieldset .btn_submit {padding:0 7px;height:24px;line-height:1em}
|
||||
a.btn_cancel {display:inline-block;padding:8px 7px 7px;border:1px solid #ccc;background:#fff;color:#000;text-decoration:none;vertical-align:middle}
|
||||
button.btn_cancel {display:inline-block;padding:7px;border:1px solid #ccc;background:#fafafa;color:#000;vertical-align:top;text-decoration:none}
|
||||
@@ -806,7 +806,7 @@ box-shadow:0 0 8px rgba(65,98,255,0.8)}
|
||||
.naverpay-item {padding-top:15px;clear:both}
|
||||
#sod_bsk_act .naverpay-cart {margin-top:15px;clear:both;position:static}
|
||||
|
||||
/*PC 주문서*/
|
||||
/*PC 주문서*/
|
||||
|
||||
#sod_frm .tbl_head03{padding:0;background:none}
|
||||
#sod_frm .tbl_head03 .sod_opt {padding:5px 0}
|
||||
@@ -819,7 +819,7 @@ box-shadow:0 0 8px rgba(65,98,255,0.8)}
|
||||
.sod_right #sod_bsk_tot{margin:10px}
|
||||
#sod_frm_taker textarea{width:100%;height:80px}
|
||||
|
||||
#od_pay_sl input[type="radio"] {position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left:0;z-index:-1px}
|
||||
#od_pay_sl input[type="radio"] {position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left:0;z-index:-1}
|
||||
#od_pay_sl .lb_icon {display:inline-block;float:left;width:150px;background:#fff;border:1px solid #eceff4;margin:-1px 0 0 -1px;cursor:pointer;height:60px;position:relative;padding-left:65px;padding-top:20px;z-index:1}
|
||||
#od_pay_sl input[type="radio"]:checked+.lb_icon {border:1px solid #ff006c;z-index:3}
|
||||
|
||||
@@ -898,7 +898,7 @@ box-shadow:0 0 8px rgba(65,98,255,0.8)}
|
||||
#od_tot_price span{float:left;font-weight:bold}
|
||||
#od_tot_price strong{font-size:1.5em;color:#ff006c}
|
||||
#od_pay_sl h3{font-size:1.167em;margin:20px 0 5px}
|
||||
#od_pay_sl input[type="radio"]{position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left: 0;z-index: -1px;}
|
||||
#od_pay_sl input[type="radio"]{position:absolute;width:0;height:0;overflow:hidden;visibility:hidden;text-indent:-999px;left: 0;z-index: -1;}
|
||||
#od_pay_sl .lb_icon {display: inline-block;float:left;width:50%;background:#fff;border:1px solid #eceff4;margin:-1px 0 0 -1px;cursor: pointer;height:60px;position:relative;padding-left:65px;padding-top:20px;z-index:1}
|
||||
#od_pay_sl input[type="radio"]:checked+.lb_icon {border:1px solid #ff006c;z-index:3}
|
||||
#sod_frm_paysel {}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
/* 회원가입 약관 */
|
||||
#fregister section {position:relative;background:#fff;border-bottom:1px solid #e5e9f0;padding:15px}
|
||||
#fregister_chkall {position:relative;font-size:bold;text-align:left;background:#fff;padding:15px;border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;border-radius:3px}
|
||||
#fregister_chkall {position:relative;font-weight:bold;text-align:left;background:#fff;padding:15px;border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;border-radius:3px}
|
||||
#fregister h2 {text-align:left;padding-bottom:15px;line-height:1.7em;font-size:1.4em}
|
||||
#fregister textarea {display:block;width:100%;height:180px;padding:10px;background:#fbfbfb;border:1px solid #d1d7d8;line-height:1.5em;color:#555}
|
||||
#fregister p {position:relative;text-align:left;color:#fff;line-height:18px;padding:15px;font-size:1.1em;background:#f2838f;margin:15px;border-radius:5px}
|
||||
@@ -99,7 +99,7 @@
|
||||
|
||||
/* 기존 회원 본인인증 */
|
||||
#member_cert_refresh section {position:relative;background:#fff;border-bottom:1px solid #e5e9f0;padding:15px}
|
||||
#member_cert_refresh_chkall {position:relative;font-size:bold;text-align:left;background:#fff;padding:15px;border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;border-radius:3px}
|
||||
#member_cert_refresh_chkall {position:relative;font-weight:bold;text-align:left;background:#fff;padding:15px;border-top:1px solid #e5e9f0;border-bottom:1px solid #e5e9f0;border-radius:3px}
|
||||
#member_cert_refresh h2 {text-align:left;padding-bottom:15px;line-height:1.7em;font-size:1.4em}
|
||||
#member_cert_refresh textarea {display:block;width:100%;height:180px;padding:10px;background:#fbfbfb;border:1px solid #d1d7d8;line-height:1.5em;color:#555}
|
||||
#member_cert_refresh p {position:relative;text-align:left;color:#fff;line-height:18px;padding:15px;font-size:1.1em;background:#f2838f;margin:15px;border-radius:5px}
|
||||
@@ -138,7 +138,7 @@
|
||||
#mb_login_notmb {background:#fff;border-bottom:1px solid #ccc;padding:20px}
|
||||
#mb_login_notmb .chk_box input[type="checkbox"] + label{padding-left:20px}
|
||||
#mb_login_notmb h2 {font-size:1.25em;padding:10px;background:#f3f3f3}
|
||||
#mb_login_notmb p {border:0;padding:0;margin:10px;color:#}
|
||||
#mb_login_notmb p {border:0;padding:0;margin:10px;}
|
||||
#guest_privacy {border:1px solid #ccc;text-align:left;line-height:1.6em;color:#666;background:#fafafa;padding:10px;height:200px;margin:10px 0;overflow-y:auto}
|
||||
#mb_login_notmb .btn_submit {width:100%;display:block;height:40px;line-height:40px}
|
||||
|
||||
@@ -199,7 +199,7 @@
|
||||
.memo_from li.memo_view_date {display:block;color:#555;line-height:24px}
|
||||
.memo_from li.memo_op_btn {position:absolute}
|
||||
.memo_from li.list_btn {right:53px;}
|
||||
.memo_from li.del_btn {right:15px;padding}
|
||||
.memo_from li.del_btn {right:15px;}
|
||||
.memo_from:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
|
||||
.memo_btn {width:100%}
|
||||
|
||||
@@ -213,7 +213,7 @@
|
||||
.memo_from li.memo_view_date {display:block;color:#555;line-height:24px}
|
||||
.memo_from li.memo_op_btn {position:absolute}
|
||||
.memo_from li.list_btn {right:53px;}
|
||||
.memo_from li.del_btn {right:15px;padding}
|
||||
.memo_from li.del_btn {right:15px;}
|
||||
.memo_from:after {display:block;visibility:hidden;clear:both;content:""}
|
||||
|
||||
.memo_btn {width:100%}
|
||||
|
||||
+1
-1
@@ -2,7 +2,7 @@
|
||||
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
|
||||
|
||||
define('G5_VERSION', '그누보드5');
|
||||
define('G5_GNUBOARD_VER', '5.5.8.3.1');
|
||||
define('G5_GNUBOARD_VER', '5.5.10');
|
||||
// 그누보드5.4.5.5 버전과 영카트5.4.5.5.1 버전을 합쳐서 그누보드5.4.6 버전에서 시작함 (kagla-210617)
|
||||
// G5_YOUNGCART_VER 이 상수를 사용하는 곳이 있으므로 주석 처리 해제함
|
||||
// 그누보드5.4.6 이상 버전 부터는 영카트를 그누보드에 포함하여 배포하므로 영카트5의 버전은 의미가 없습니다.
|
||||
|
||||
Reference in New Issue
Block a user