경로 수정 작업 중

This commit is contained in:
chicpro
2013-03-14 17:56:20 +09:00
parent 8ba59fe9b0
commit 1a60978568
1212 changed files with 39023 additions and 33180 deletions

View File

@ -1,5 +1,5 @@
<?
$g4_path = ".."; // common.php 의 상대 경로
include_once ("$g4_path/common.php");
include_once("$g4[admin_path]/admin.lib.php");
?>
define('G4_IS_ADMIN', true);
include_once ('../common.php');
include_once(G4_ADMIN_PATH.'/admin.lib.php');
?>

View File

@ -1,78 +1,42 @@
<?
if (!defined("_GNUBOARD_")) exit;
if (!defined('_GNUBOARD_')) exit;
$begin_time = get_microtime();
include_once("$g4[path]/head.sub.php");
include_once(G4_PATH.'/head.sub.php');
function print_menu1($key, $no)
{
global $menu;
$str = "<table width=130 cellpadding=1 cellspacing=0 id='menu_{$key}' style='position:absolute; display:none; z-index:1;' onpropertychange=\"selectBoxHidden('menu_{$key}')\"><colgroup><colgroup><colgroup width=10><tr><td rowspan=2 colspan=2 bgcolor=#EFCA95><table width=127 cellpadding=0 cellspacing=0 bgcolor=#FEF8F0><colgroup style='padding-left:10px'>";
$str .= print_menu2($key, $no);
$str .= "</table></td><td></td></tr><tr><td bgcolor=#DDDAD5 height=40></td></tr><tr><td width=4></td><td height=3 width=127 bgcolor=#DDDAD5></td><td bgcolor=#DDDAD5></td></tr></table>\n";
$str = print_menu2($key, $no);
return $str;
}
function print_menu2($key, $no)
{
global $menu, $auth_menu, $is_admin, $auth, $g4;
$str = "";
$str .= "<ul class=\"gnb_sub_ul\">";
for($i=1; $i<count($menu[$key]); $i++)
{
if ($is_admin != "super" && (!array_key_exists($menu[$key][$i][0],$auth) || !strstr($auth[$menu[$key][$i][0]], "r")))
if ($is_admin != 'super' && (!array_key_exists($menu[$key][$i][0],$auth) || !strstr($auth[$menu[$key][$i][0]], 'r')))
continue;
if ($menu[$key][$i][0] == "-")
$str .= "<tr><td class=bg_line{$no}></td></tr>";
else
{
$span1 = $span2 = "";
if (isset($menu[$key][$i][3]))
{
$span1 = "<span style='{$menu[$key][$i][3]}'>";
$span2 = "</span>";
}
$str .= "<tr><td class=bg_menu{$no}>";
if ($no == 2)
$str .= "&nbsp;&nbsp;<img src='{$g4[admin_path]}/img/icon.gif' align=absmiddle> ";
$str .= "<a href='{$menu[$key][$i][2]}' style='color:#555500;'>{$span1}{$menu[$key][$i][1]}{$span2}</a></td></tr>";
$str .= '<li class="gnb_2depth"><a href="'.$menu[$key][$i][2].'">'.$menu[$key][$i][1].'</a></li>';
$auth_menu[$menu[$key][$i][0]] = $menu[$key][$i][1];
}
$auth_menu[$menu[$key][$i][0]] = $menu[$key][$i][1];
}
$str .= "</ul>";
return $str;
}
?>
<script type="text/javascript">
if (!g4_is_ie) document.captureEvents(Event.MOUSEMOVE)
document.onmousemove = getMouseXY;
<script>
var tempX = 0;
var tempY = 0;
var prevdiv = null;
var timerID = null;
function getMouseXY(e)
{
if (g4_is_ie) { // grab the x-y pos.s if browser is IE
tempX = event.clientX + document.body.scrollLeft;
tempY = event.clientY + document.body.scrollTop;
} else { // grab the x-y pos.s if browser is NS
tempX = e.pageX;
tempY = e.pageY;
}
if (tempX < 0) {tempX = 0;}
if (tempY < 0) {tempY = 0;}
return true;
}
function imageview(id, w, h)
{
@ -91,147 +55,100 @@ function imageview(id, w, h)
if (el_id.style.display != 'none')
selectBoxHidden(id);
}
function help(id, left, top)
{
menu(id);
var el_id = document.getElementById(id);
//submenu = eval(name+".style");
submenu = el_id.style;
submenu.left = tempX - 50 + left;
submenu.top = tempY + 15 + top;
selectBoxVisible();
if (el_id.style.display != 'none')
selectBoxHidden(id);
}
// TEXTAREA 사이즈 변경
function textarea_size(fld, size)
{
var rows = parseInt(fld.rows);
rows += parseInt(size);
if (rows > 0) {
fld.rows = rows;
}
}
</script>
<script type="text/javascript" src="<?=$g4['path']?>/js/common.js"></script>
<script type="text/javascript" src="<?=$g4['path']?>/js/sideview.js"></script>
<script type="text/javascript">
var save_layer = null;
function layer_view(link_id, menu_id, opt, x, y)
{
var link = document.getElementById(link_id);
var menu = document.getElementById(menu_id);
<div id="to_content"><a href="#container">본문 바로가기</a></div>
//for (i in link) { document.write(i + '<br/>'); } return;
<header id="hd">
<div id="hd_wrap">
<h1><?=$config['cf_title']?></h1>
if (save_layer != null)
{
save_layer.style.display = "none";
selectBoxVisible();
}
<div id="logo"><a href="<?=G4_ADMIN_URL?>"><img src="<?=G4_ADMIN_URL?>/img/logo.jpg" alt="<?=$config['cf_title']?> 관리자 처음으로"></a></div>
if (link_id == '')
return;
<div id="mb_nb">
<ul>
<li>
<a href="<?=G4_ADMIN_URL?>/member_form.php?w=u&amp;mb_id=<?=$member['mb_id']?>">
<img src="<?=G4_ADMIN_URL?>/img/snb_modify.jpg" alt="" width="28" height="28">
관리자 정보수정
</a>
</li>
<li>
<a href="<?=G4_URL?>/">
<img src="<?=G4_ADMIN_URL?>/img/snb_home.jpg" alt="" width="28" height="28">
홈페이지 메인
</a>
</li>
<li>
<a href="<?=G4_BBS_URL?>/logout.php">
<img src="<?=G4_ADMIN_URL?>/img/snb_logout.jpg" alt="로그아웃" width="28" height="28">
로그아웃
</a>
</li>
</ul>
</div>
if (opt == 'hide')
{
menu.style.display = 'none';
selectBoxVisible();
}
else
{
x = parseInt(x);
y = parseInt(y);
menu.style.left = get_left_pos(link) + x;
menu.style.top = get_top_pos(link) + link.offsetHeight + y;
menu.style.display = 'block';
}
save_layer = menu;
}
</script>
<link rel="stylesheet" href="<?=$g4['admin_path']?>/admin.style.css" type="text/css">
<style>
.bg_menu1 { height:22px;
padding-left:15px;
padding-right:15px; }
.bg_line1 { height:1px; background-color:#EFCA95; }
.bg_menu2 { height:22px;
padding-left:25px; }
.bg_line2 { background-image:url('<?=$g4['admin_path']?>/img/dot.gif'); height:3px; }
.dot {color:#D6D0C8;border-style:dotted;}
#csshelp1 { border:0px; background:#FFFFFF; padding:6px; }
#csshelp2 { border:2px solid #BDBEC6; padding:0px; }
#csshelp3 { background:#F9F9F9; padding:6px; width:200px; color:#222222; line-height:120%; text-align:left; }
</style>
<body leftmargin=0 topmargin=0>
<a name='gnuboard4_admin_head'></a>
<table width=1004 cellpadding=0 cellspacing=0 border=0>
<colgroup width=180>
<colgroup>
<tr bgcolor=#E3DCD2 height=70>
<td colspan=2 onmouseover="layer_view('','','','','')"><a href='<?=$g4['admin_path']?>/'><img src='<?=$g4['admin_path']?>/img/logo.gif' border=0></a></td>
<td>
<?
foreach($amenu as $key=>$value)
{
$href1 = $href2 = "";
if ($menu["menu{$key}"][0][2])
{
$href1 = "<a href='".$menu["menu{$key}"][0][2]."'>";
$href2 = "</a>";
<nav id="gnb">
<h2>관리자 주메뉴</h2>
<script>$('#gnb').addClass('gnb_js');</script>
<?
$gnb_str = "<ul id=\"gnb_ul\">";
foreach($amenu as $key=>$value) {
$href1 = $href2 = '';
if ($menu['menu'.$key][0][2]) {
$href1 = '<a href="'.$menu['menu'.$key][0][2].'">';
$href2 = '</a>';
} else {
continue;
}
$current_class = "";
if (isset($sub_menu) && (substr($sub_menu, 0, 2) == substr($menu['menu'.$key][0][0], 0, 2)))
$current_class = " gnb_1depth_air";
$gnb_str .= "<li class=\"gnb_1depth".$current_class."\">";
$gnb_str .= $href1 . $menu['menu'.$key][0][1] . $href2;
$gnb_str .= print_menu1('menu'.$key, 1);
$gnb_str .= "</li>";
if ($current_class) $current_class = ""; // 클래스 반복부여 방지
}
echo "{$href1}<img src='$g4[admin_path]/img/menu{$key}.gif' border=0 id='id_menu{$key}' onmouseover=\"layer_view('id_menu{$key}', 'menu_menu{$key}', 'view', -2, 5);\">{$href2}&nbsp; ";
echo print_menu1("menu{$key}", 1);
}
?>
</td>
</tr>
<tr><td colspan=3 bgcolor=#C3BBB1 height=1></td></tr>
<tr><td colspan=3 bgcolor=#E5E5E5 height=2></td></tr>
<tr onmouseover="layer_view('','','','','')">
<td><a href='<?=$g4['path']?>/'><img src='<?=$g4['admin_path']?>/img/home.gif' border=0></a><a href='<?=$g4['bbs_path']?>/logout.php'><img src='<?=$g4['admin_path']?>/img/logout.gif' border=0></a></td>
<td rowspan=2 width=1 bgcolor=#DBDBDB></td>
<td bgcolor=#F8F8F8 align=right>
<img src='<?=$g4['admin_path']?>/img/navi_icon.gif' align=absmiddle>
&nbsp;<a href='<?=$g4['admin_path']?>/'>Admin</a> >
<?
$tmp_menu = "";
if (isset($sub_menu))
$tmp_menu = substr($sub_menu, 0, 3);
if (isset($menu["menu{$tmp_menu}"][0][1]))
{
if ($menu["menu{$tmp_menu}"][0][2])
{
echo "<a href='".$menu["menu{$tmp_menu}"][0][2]."'>";
echo $menu["menu{$tmp_menu}"][0][1];
echo "</a> > ";
}
else
echo $menu["menu{$tmp_menu}"][0][1]." > ";
}
?>
<?=$g4['title']?> <span class=small>: <?=$member['mb_id']?>님</span>&nbsp;&nbsp;</td>
</tr>
<tr onmouseover="layer_view('','','','','')">
<td valign=top>
<table width=180 cellpadding=0 cellspacing=0>
<?
echo "<tr><td><img src='$g4[admin_path]/img/title_menu{$tmp_menu}.gif'></td></tr>";
echo print_menu2("menu{$tmp_menu}", 2);
?>
</table><br>
</td>
<td valign=top style='padding:10px;'>
$gnb_str .= "</ul>";
echo $gnb_str;
?>
</nav>
<div id="current_loc">
<p><?=$member['mb_id']?>님 현재위치</p>
</div>
</div>
</header>
<div id="wrapper">
<ul id="qnb">
<li>
<a href="<?=G4_ADMIN_URL?>/member_list.php">
<img src="<?=G4_ADMIN_URL?>/img/qnb_mb.jpg" alt="" width="40" height="40">
회원
</a>
</li>
<li>
<a href="<?=G4_ADMIN_URL?>/board_list.php">
<img src="<?=G4_ADMIN_URL?>/img/qnb_board.jpg" alt="" width="40" height="40">
게시판
</a>
</li>
<li>
<a href="<?=G4_ADMIN_URL?>/visit_list.php">
<img src="<?=G4_ADMIN_URL?>/img/qnb_log.jpg" alt="" width="40" height="40">
접속자
</a>
</li>
</ul>
<div id="container">
<div id="text_size">
<button class="no_text_resize" onclick="font_resize('container', 'decrease');">작게</button>
<button class="no_text_resize" onclick="font_default('container');">기본</button>
<button class="no_text_resize" onclick="font_resize('container', 'increase');">크게</button>
</div>
<h1><?=$g4['title']?></h1>

View File

@ -44,3 +44,15 @@ function btn_check(f, act)
f.submit();
}
function is_checked(elements_name)
{
var checked = false;
var chk = document.getElementsByName(elements_name);
for (var i=0; i<chk.length; i++) {
if (chk[i].checked) {
checked = true;
}
}
return checked;
}

View File

@ -1,26 +1,50 @@
<?
if (!defined("_GNUBOARD_")) exit;
if (!defined('_GNUBOARD_')) exit;
/*
// 081022 : CSRF 방지를 위해 코드를 작성했으나 효과가 없어 주석처리 함
if (!get_session("ss_admin")) {
set_session("ss_admin", true);
goto_url(".");
if (!get_session('ss_admin')) {
set_session('ss_admin', true);
goto_url('.');
}
*/
// 스킨디렉토리를 SELECT 형식으로 얻음
function get_skin_select($skin_gubun, $id, $name, $selected='', $event='')
{
$skins = get_skin_dir($skin_gubun);
$str = "<select id=\"$id\" name=\"$name\" $event>\n";
for ($i=0; $i<count($skins); $i++) {
$str .= option_selected($skins[$i], $selected);
}
$str .= "</select>";
return $str;
}
// 모바일 스킨디렉토리를 SELECT 형식으로 얻음
function get_mobile_skin_select($skin_gubun, $id, $name, $selected='', $event='')
{
$skins = get_skin_dir($skin_gubun, G4_MOBILE_PATH.'/'.G4_SKIN_DIR);
$str = "<select id=\"$id\" name=\"$name\" $event>\n";
for ($i=0; $i<count($skins); $i++) {
$str .= option_selected($skins[$i], $selected);
}
$str .= "</select>";
return $str;
}
// 스킨경로를 얻는다
function get_skin_dir($skin, $len='')
function get_skin_dir($skin, $skin_path=G4_SKIN_PATH)
{
global $g4;
$result_array = array();
$dirname = "$g4[path]/skin/$skin/";
$dirname = $skin_path.'/'.$skin.'/';
$handle = opendir($dirname);
while ($file = readdir($handle))
{
if($file == "."||$file == "..") continue;
while ($file = readdir($handle)) {
if($file == '.'||$file == '..') continue;
if (is_dir($dirname.$file)) $result_array[] = $file;
}
@ -30,118 +54,61 @@ function get_skin_dir($skin, $len='')
return $result_array;
}
// 회원 삭제
function member_delete($mb_id)
{
global $config;
global $g4;
$sql = " select mb_name, mb_nick, mb_ip, mb_recommend, mb_memo, mb_level from $g4[member_table] where mb_id= '$mb_id' ";
$sql = " select mb_name, mb_nick, mb_ip, mb_recommend, mb_memo, mb_level from {$g4['member_table']} where mb_id= '".$mb_id."' ";
$mb = sql_fetch($sql);
if ($mb[mb_recommend]) {
$row = sql_fetch(" select count(*) as cnt from $g4[member_table] where mb_id = '".addslashes($mb[mb_recommend])."' ");
if ($row[cnt])
insert_point($mb[mb_recommend], $config[cf_recommend_point] * (-1), "{$mb_id}님의 회원자료 삭제로 인한 추천인 포인트 반환", '@member', $mb[mb_recommend], "{$mb_id} 추천인 삭제");
if ($mb['mb_recommend']) {
$row = sql_fetch(" select count(*) as cnt from {$g4['member_table']} where mb_id = '".addslashes($mb['mb_recommend'])."' ");
if ($row['cnt'])
insert_point($mb['mb_recommend'], $config['cf_recommend_point'] * (-1), $mb_id.'님의 회원자료 삭제로 인한 추천인 포인트 반환', "@member", $mb['mb_recommend'], $mb_id.' 추천인 삭제');
}
// 회원자료는 정보만 없앤 후 아이디는 보관하여 다른 사람이 사용하지 못하도록 함 : 061025
if ($mb[mb_level] > 1) {
$sql = " update $g4[member_table]
set mb_jumin = '',
mb_password = '',
mb_level = '1',
mb_email = '',
mb_homepage = '',
mb_password_q = '',
mb_password_a = '',
mb_tel = '',
mb_hp = '',
mb_zip1 = '',
mb_zip2 = '',
mb_addr1 = '',
mb_addr2 = '',
mb_birth = '',
mb_sex = '',
mb_signature = '',
mb_memo = '".date("Ymd",$g4['server_time'])." 삭제함\n\n$mb[mb_memo]',
mb_leave_date = '".date("Ymd",$g4['server_time'])."'
where mb_id = '$mb_id' ";
//echo $sql; exit;
sql_query($sql);
}
/*
// 회원 자료 삭제
sql_query(" delete from $g4[member_table] where mb_id = '$mb_id' ");
// 삭제된 자료를 또 삭제하면 완전 삭제함
if ($mb[mb_nick] != '[삭제됨]')
{
// 다른 사람이 이 회원아이디를 사용하지 못하도록 아이디만 생성해 놓습니다.
// 게시판에서 회원아이디는 삭제하지 않기 때문입니다.
sql_query(" insert into $g4[member_table] set mb_id = '$mb_id', mb_name='$mb[mb_name]', mb_nick='[삭제됨]', mb_ip='$mb[mb_ip]', mb_datetime = '$g4[time_ymdhis]' ");
}
// 포인트 테이블에서 삭제
sql_query(" delete from $g4[point_table] where mb_id = '$mb_id' ");
// 그룹접근가능 삭제
sql_query(" delete from $g4[group_member_table] where mb_id = '$mb_id' ");
// 쪽지 삭제
sql_query(" delete from $g4[memo_table] where me_recv_mb_id = '$mb_id' or me_send_mb_id = '$mb_id' ");
// 스크랩 삭제
sql_query(" delete from $g4[scrap_table] where mb_id = '$mb_id' ");
// 관리권한 삭제
sql_query(" delete from $g4[auth_table] where mb_id = '$mb_id' ");
// 그룹관리자인 경우 그룹관리자를 공백으로
sql_query(" update $g4[group_table] set gr_admin = '' where gr_admin = '$mb_id' ");
// 게시판관리자인 경우 게시판관리자를 공백으로
sql_query(" update $g4[board_table] set bo_admin = '' where bo_admin = '$mb_id' ");
// 아이콘 삭제
@unlink("$g4[path]/data/member/".substr($mb_id,0,2)."/$mb_id.gif");
*/
$sql = " update {$g4['member_table']} set mb_jumin = '', mb_password = '', mb_level = 1, mb_email = '', mb_homepage = '', mb_password_q = '', mb_password_a = '', mb_tel = '', mb_hp = '', mb_zip1 = '', mb_zip2 = '', mb_addr1 = '', mb_addr2 = '', mb_birth = '', mb_sex = '', mb_signature = '', mb_memo = '".date('Ymd', G4_SERVER_TIME)." 삭제함\n{$mb['mb_memo']}', mb_leave_date = '".date('Ymd', G4_SERVER_TIME)."' where mb_id = '{$mb_id}' ";
sql_query($sql);
}
// 회원권한을 SELECT 형식으로 얻음
function get_member_level_select($name, $start_id=0, $end_id=10, $selected='', $event='')
function get_member_level_select($name, $start_id=0, $end_id=10, $selected="", $event="")
{
global $g4;
$str = "<select name='$name' $event>";
for ($i=$start_id; $i<=$end_id; $i++)
{
$str .= "<option value='$i'";
if ($i == $selected)
$str .= " selected";
$str .= ">$i</option>";
$str = "\n<select id=\"{$name}\" name=\"{$name}\"";
if ($event) $str .= " $event";
$str .= ">\n";
for ($i=$start_id; $i<=$end_id; $i++) {
$str .= '<option value="'.$i.'"';
if ($i == $selected)
$str .= ' selected="selected"';
$str .= ">{$i}</option>\n";
}
$str .= "</select>";
$str .= "</select>\n";
return $str;
}
// 회원아이디 SELECT 형식으로 얻음
function get_member_id_select($name, $level, $selected='', $event='')
// 회원아이디 SELECT 형식으로 얻음
function get_member_id_select($name, $level, $selected="", $event="")
{
global $g4;
$sql = " select mb_id from $g4[member_table] where mb_level >= '$level' ";
$sql = " select mb_id from {$g4['member_table']} where mb_level >= '{$level}' ";
$result = sql_query($sql);
$str = "<select name='$name' $event><option value=''>선택안함";
for ($i=0; $row=sql_fetch_array($result); $i++)
$str = '<select id="'.$name.'" name="'.$name.'" '.$event.'><option value="">선택안함</option>';
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$str .= "<option value='$row[mb_id]'";
if ($row[mb_id] == $selected) $str .= " selected";
$str .= ">$row[mb_id]</option>";
$str .= '<option value="'.$row['mb_id'].'"';
if ($row['mb_id'] == $selected) $str .= ' selected';
$str .= '>'.$row['mb_id'].'</option>';
}
$str .= "</select>";
$str .= '</select>';
return $str;
}
@ -150,50 +117,35 @@ function auth_check($auth, $attr)
{
global $is_admin;
if ($is_admin == "super") return;
if ($is_admin == 'super') return;
if (!trim($auth))
alert("이 메뉴에는 접근 권한이 없습니다.\\n\\n접근 권한은 최고관리자만 부여할 수 있습니다.");
alert('이 메뉴에는 접근 권한이 없습니다.\\n\\n접근 권한은 최고관리자만 부여할 수 있습니다.');
$attr = strtolower($attr);
if (!strstr($auth, $attr)) {
if ($attr == "r")
alert("읽을 권한이 없습니다.");
else if ($attr == "w")
alert("입력, 추가, 생성, 수정 권한이 없습니다.");
else if ($attr == "d")
alert("삭제 권한이 없습니다.");
else
alert("속성이 잘못 되었습니다.");
if ($attr == 'r')
alert('읽을 권한이 없습니다.');
else if ($attr == 'w')
alert('입력, 추가, 생성, 수정 권한이 없습니다.');
else if ($attr == 'd')
alert('삭제 권한이 없습니다.');
else
alert('속성이 잘못 되었습니다.');
}
}
// 텍스트에리어 늘리기, 줄이기
function textarea_size($fld)
{
global $g4;
$size = 10;
$s = "<table cellpadding=2 cellspacing=0 border=0 width=100%><tr><td align=right>";
$s .= "<span onclick=\"javascript:textarea_size(document.getElementById('$fld'), {$size})\"><img src='$g4[admin_path]/img/btn_up.gif' border=0 align=absmiddle></span> ";
$s .= "<span onclick=\"javascript:textarea_size(document.getElementById('$fld'), ".$size*(-1).")\"><img src='$g4[admin_path]/img/btn_down.gif' border=0 align=absmiddle></span>";
$s .= "&nbsp;&nbsp;</td></tr></table>";
return $s;
}
// 작업아이콘 출력
function icon($act, $link="", $target="_parent")
function icon($act, $link='', $target='_parent')
{
global $g4;
$img = array("입력"=>"insert", "추가"=>"insert", "생성"=>"insert", "수정"=>"modify", "삭제"=>"delete", "이동"=>"move", "그룹"=>"move", "보기"=>"view", "미리보기"=>"view", "복사"=>"copy");
$icon = "<img src='{$g4[admin_path]}/img/icon_{$img[$act]}.gif' border=0 align=absmiddle title='$act' width=22 height=21>";
$img = array('입력'=>'insert', '추가'=>'insert', '생성'=>'insert', '수정'=>'modify', '삭제'=>'delete', '이동'=>'move', '그룹'=>'move', '보기'=>'view', '미리보기'=>'view', '복사'=>'copy');
$icon = '<img src="'.G4_ADMIN_PATH.'/img/icon_'.$img[$act].'.gif" title="'.$act.'">';
if ($link)
//$s = "<a href=\"$link\" target=\"$target\">$icon</a>";
$s = "<a href=\"$link\">$icon</a>";
$s = '<a href="'.$link.'">'.$icon.'</a>';
else
$s = $icon;
return $s;
@ -202,70 +154,51 @@ function icon($act, $link="", $target="_parent")
// rm -rf 옵션 : exec(), system() 함수를 사용할 수 없는 서버 또는 win32용 대체
// www.php.net 참고 : pal at degerstrom dot com
function rm_rf($file)
function rm_rf($file)
{
if (file_exists($file)) {
@chmod($file,0777);
if (is_dir($file)) {
$handle = opendir($file);
$handle = opendir($file);
while($filename = readdir($handle)) {
if ($filename != "." && $filename != "..")
rm_rf("$file/$filename");
if ($filename != '.' && $filename != '..')
rm_rf($file.'/'.$filename);
}
closedir($handle);
rmdir($file);
} else
} else
unlink($file);
}
}
function help($help="", $left=0, $top=0)
// 입력 폼 안내문
function help($help="")
{
global $g4;
static $idx = 0;
$idx++;
$help = preg_replace("/\n/", "<br>", $help);
$str = "<img src='$g4[admin_path]/img/icon_help.gif' border=0 width=15 height=15 align=absmiddle onclick=\"help('help$idx', $left, $top);\" style='cursor:hand;'>";
$str .= "<div id='help$idx' style='position:absolute; display:none; z-index:9999;'>";
$str .= "<div id='csshelp1'><div id='csshelp2'><div id='csshelp3'>$help</div></div></div>";
$str .= "</div>";
$str = '<span class="adm_field_explain">'.str_replace("\n", "<br>", $help).'</span>';
return $str;
}
function subtitle($title, $more="")
{
global $g4;
$s = "<table width=100% cellpadding=0 cellspacing=0><tr><td width=80% align=left><table border='0' cellpadding='0' cellspacing='1'><tr><td height='24'><img src='$g4[admin_path]/img/icon_title.gif' width=20 height=9> <font color='#525252'><b>$title</b></font> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</td></tr></table><table width=100% cellpadding=0 cellspacing=0><tr><td height=1></td></tr></table></td><td width=20% align=right>";
if ($more)
$s .= "<a href='$more'><img src='$g4[admin_path]/img/icon_more.gif' width='43' height='11' border=0 align=absmiddle></a>";
$s .= "</td></tr></table>\n";
return $s;
}
// 출력순서
function order_select($fld, $sel="")
function order_select($fld, $sel='')
{
$s = "<select name='$fld'>";
$s = '<select name="'.$fld.'">';
for ($i=1; $i<=100; $i++) {
$s .= "<option value='$i' ";
$s .= '<option value="'.$i.'" ';
if ($sel) {
if ($i == $sel) {
$s .= "selected";
$s .= 'selected';
}
} else {
if ($i == 50) {
$s .= "selected";
$s .= 'selected';
}
}
$s .= ">$i</option>";
$s .= '>'.$i.'</option>';
}
$s .= "</select>\n";
$s .= '</select>';
return $s;
}
@ -273,36 +206,36 @@ function order_select($fld, $sel="")
// 접근 권한 검사
if (!$member['mb_id'])
{
//alert("로그인 하십시오.", "$g4[bbs_path]/login.php?url=" . urlencode("$_SERVER[PHP_SELF]?w=$w&mb_id=$mb_id"));
alert("로그인 하십시오.", "$g4[bbs_path]/login.php?url=" . urlencode("$_SERVER[PHP_SELF]?$_SERVER[QUERY_STRING]"));
//alert('로그인 하십시오.', '$g4['bbs_path']/login.php?url=' . urlencode('$_SERVER['PHP_SELF']?w=$w&mb_id=$mb_id'));
alert('로그인 하십시오.', G4_BBS_URL.'/login.php?url=' . urlencode($_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']));
}
else if ($is_admin != "super")
else if ($is_admin != 'super')
{
$auth = array();
$sql = " select au_menu, au_auth from $g4[auth_table] where mb_id = '$member[mb_id]' ";
$sql = " select au_menu, au_auth from {$g4['auth_table']} where mb_id = '{$member['mb_id']}' ";
$result = sql_query($sql);
for($i=0; $row=sql_fetch_array($result); $i++)
for($i=0; $row=sql_fetch_array($result); $i++)
{
$auth[$row[au_menu]] = $row[au_auth];
$auth[$row['au_menu']] = $row['au_auth'];
}
if (!$i)
{
alert("최고관리자 또는 관리권한이 있는 회원만 접근 가능합니다.", $g4[path]);
alert('최고관리자 또는 관리권한이 있는 회원만 접근 가능합니다.', G4_URL);
}
}
// 관리자의 아이피, 브라우저와 다르다면 세션을 끊고 관리자에게 메일을 보낸다.
$admin_key = md5($member[mb_datetime] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);
if (get_session("ss_mb_key") !== $admin_key) {
$admin_key = md5($member['mb_datetime'] . $_SERVER['REMOTE_ADDR'] . $_SERVER['HTTP_USER_AGENT']);
if (get_session('ss_mb_key') !== $admin_key) {
session_destroy();
include_once("$g4[path]/lib/mailer.lib.php");
include_once(G4_LIB_PATH.'/mailer.lib.php');
// 메일 알림
mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], "XSS 공격 알림", "{$_SERVER['REMOTE_ADDR']} 아이피로 XSS 공격이 있었습니다.\n\n관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.\n\n해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.\n\n$g4[url]", 0);
mailer($member['mb_nick'], $member['mb_email'], $member['mb_email'], 'XSS 공격 알림', $_SERVER['REMOTE_ADDR'].' 아이피로 XSS 공격이 있었습니다.\n\n관리자 권한을 탈취하려는 접근이므로 주의하시기 바랍니다.\n\n해당 아이피는 차단하시고 의심되는 게시물이 있는지 확인하시기 바랍니다.\n\n'.G4_URL, 0);
alert_close("정상적으로 로그인하여 접근하시기 바랍니다.");
alert_close('정상적으로 로그인하여 접근하시기 바랍니다.');
}
@ksort($auth);
@ -311,24 +244,21 @@ if (get_session("ss_mb_key") !== $admin_key) {
unset($auth_menu);
unset($menu);
unset($amenu);
$tmp = dir($g4['admin_path']);
while ($entry = $tmp->read())
{
//if (!preg_match("/^admin.menu([0-9]{3}).php/", $entry, $m))
//if (!preg_match("/^admin.menu([0-9]{3}).*\.php/", $entry, $m))
if (!preg_match("/^admin.menu([0-9]{3}).*\.php$/", $entry, $m))
continue; // 파일명이 menu 으로 시작하지 않으면 무시한다.
$tmp = dir(G4_ADMIN_PATH);
while ($entry = $tmp->read()) {
if (!preg_match('/^admin.menu([0-9]{3}).*\.php$/', $entry, $m))
continue; // 파일명이 menu 으로 시작하지 않으면 무시한다.
$amenu[$m[1]] = $entry;
include_once($g4['admin_path']."/".$entry);
include_once(G4_ADMIN_PATH.'/'.$entry);
}
@ksort($amenu);
$qstr = "";
if (isset($sst)) $qstr .= "&sst=$sst";
if (isset($sod)) $qstr .= "&sod=$sod";
if (isset($sfl)) $qstr .= "&sfl=$sfl";
if (isset($stx)) $qstr .= "&stx=$stx";
if (isset($page)) $qstr .= "&page=$page";
//$qstr = "sst=$sst&sod=$sod&sfl=$sfl&stx=$stx&page=$page";
$arr_query = array();
if (isset($sst)) $arr_query[] = 'sst='.$sst;
if (isset($sod)) $arr_query[] = 'sod='.$sod;
if (isset($sfl)) $arr_query[] = 'sfl='.$sfl;
if (isset($stx)) $arr_query[] = 'stx='.$stx;
if (isset($page)) $arr_query[] = 'page='.$page;
$qstr = implode("&amp;", $arr_query);
?>

View File

@ -1,17 +1,15 @@
<?
$menu["menu100"] = array (
array("100000", "환경설정", ""),
array("", "기본환경설정", "$g4[admin_path]/config_form.php"),
array("", "관리권한설정", "$g4[admin_path]/auth_list.php"),
array("100300", "메일 테스트", "$g4[admin_path]/sendmail_test.php"),
array("-"),
array("100400", "버전정보", "$g4[admin_path]/version.php"),
array("100500", "phpinfo()", "$g4[admin_path]/phpinfo.php"),
array("-"),
array("100600", "업그레이드", "$g4[admin_path]/upgrade.php"),
array("100700", "복구/최적화", "$g4[admin_path]/repair.php"),
array("100800", "세션 삭제", "$g4[admin_path]/session_delete.php"),
array("-"),
array("", "phpMyAdmin", "$g4[path]/$g4[phpmyadmin_dir]")
$menu['menu100'] = array (
array('100000', '환경설정', G4_ADMIN_URL.'/config_form.php', 'config'),
array('', '기본환경설정', G4_ADMIN_URL.'/config_form.php', 'cf_basic'),
array('', '관리권한설정', G4_ADMIN_URL.'/auth_list.php', 'cf_auth'),
array('100300', '메일 테스트', G4_ADMIN_URL.'/sendmail_test.php', 'cf_mailtest'),
//array('100400', '버전정보', G4_ADMIN_URL.'/version.php', 'cf_version'),
array('100500', 'phpinfo()', G4_ADMIN_URL.'/phpinfo.php', 'cf_phpinfo'),
//array('100600', '업그레이드', G4_ADMIN_URL.'/upgrade.php', 'cf_upgrade'),
//array('100700', '복구/최적화', G4_ADMIN_URL.'/repair.php', 'cf_repair'),
array('100800', '세션파일 일괄삭제',G4_ADMIN_URL.'/session_file_delete.php', 'cf_session'),
array('100900', '캐쉬파일 일괄삭제',G4_ADMIN_URL.'/cache_file_delete.php', 'cf_cache'),
//array('', 'phpMyAdmin', ''.$g4['path'].'/'.$g4['phpmyadmin_dir'].'', 'cf_phpmyadmin')
);
?>

View File

@ -1,12 +1,10 @@
<?
$menu["menu200"] = array (
array("200000", "회원관리", ""),
array("200100", "회원관리", "$g4[admin_path]/member_list.php"),
array("200200", "포인트관리", "$g4[admin_path]/point_list.php"),
array("200300", "회원메일발송", "$g4[admin_path]/mail_list.php"),
array("-"),
array("200800", "접속자현황", "$g4[admin_path]/visit_list.php"),
array("-"),
array("200900", "투표관리", "$g4[admin_path]/poll_list.php")
$menu['menu200'] = array (
array('200000', '회원관리', G4_ADMIN_URL.'/member_list.php', 'member'),
array('200100', '회원관리', G4_ADMIN_URL.'/member_list.php', 'mb_list'),
array('200200', '포인트관리', G4_ADMIN_URL.'/point_list.php', 'mb_point'),
array('200300', '회원메일발송', G4_ADMIN_URL.'/mail_list.php', 'mb_mail'),
array('200800', '접속자집계', G4_ADMIN_URL.'/visit_list.php', 'mb_visit'),
array('200900', '투표관리', G4_ADMIN_URL.'/poll_list.php', 'mb_poll')
);
?>

View File

@ -1,10 +1,9 @@
<?
$menu["menu300"] = array (
array("300000", "게시판관리", ""),
array("300100", "게시판관리", "$g4[admin_path]/board_list.php"),
array("300200", "게시판그룹관리", "$g4[admin_path]/boardgroup_list.php"),
array("-"),
array("300300", "인기검색어관리", "$g4[admin_path]/popular_list.php"),
array("300400", "인기검색어순위", "$g4[admin_path]/popular_rank.php"),
$menu['menu300'] = array (
array('300000', '게시판관리', ''.G4_ADMIN_URL.'/board_list.php', 'board'),
array('300100', '게시판관리', ''.G4_ADMIN_URL.'/board_list.php', 'bbs_board'),
array('300200', '게시판그룹관리', ''.G4_ADMIN_URL.'/boardgroup_list.php', 'bbs_group'),
array('300300', '인기검색어관리', ''.G4_ADMIN_URL.'/popular_list.php', 'bbs_poplist'),
array('300400', '인기검색어순위', ''.G4_ADMIN_URL.'/popular_rank.php', 'bbs_poprank'),
);
?>

View File

@ -1,15 +1,98 @@
<?
if (!defined("_GNUBOARD_")) exit;
if (!defined('_GNUBOARD_')) exit;
?>
</td>
</tr>
<tr><td colspan=3 height=22 bgcolor=#F2F2F2 align=right><a href='#gnuboard4_admin_head'><img src='<?=$g4['admin_path']?>/img/top.gif' border=0></a>&nbsp;</td></tr>
</table><br><br>
<noscript>
<p>
귀하께서 사용하시는 브라우저는 현재 <strong>자바스크립트를 사용하지 않음</strong>으로 설정되어 있습니다.<br>
<strong>자바스크립트를 사용하지 않음</strong>으로 설정하신 경우는 수정이나 삭제시 별도의 경고창이 나오지 않으므로 이점 주의하시기 바랍니다.
</p>
</noscript>
</div>
</div>
<footer id="ft">
<p>Copyright &copy; 소유하신 도메인. All rights reserved.</p>
</footer>
<!-- <p>실행시간 : <?=get_microtime() - $begin_time;?> -->
<script type='text/javascript' src='<?=$g4['admin_path']?>/admin.js'></script>
<script src="<?=G4_ADMIN_URL?>/admin.js"></script>
<script>
$(function(){
var hide_menu = false;
var mouse_event = false;
var oldX = oldY = 0;
<?
include_once("$g4[path]/tail.sub.php");
$(document).mousemove(function(e) {
if(oldX == 0) {
oldX = e.pageX;
oldY = e.pageY;
}
if(oldX != e.pageX || oldY != e.pageY) {
mouse_event = true;
}
});
// 주메뉴
var $gnb = $('.gnb_1depth > a');
$gnb.mouseover(function() {
if(mouse_event) {
$('.gnb_1depth').removeClass('gnb_1depth_over gnb_1depth_on');
$(this).parent().addClass('gnb_1depth_over gnb_1depth_on');
hide_menu = false;
}
});
$gnb.mouseout(function() {
hide_menu = true;
});
$('.gnb_1depth li').mouseover(function() {
hide_menu = false;
});
$('.gnb_1depth li').mouseout(function() {
hide_menu = true;
});
$gnb.focusin(function() {
$('.gnb_1depth').removeClass('gnb_1depth_over gnb_1depth_on');
$(this).parent().addClass('gnb_1depth_over gnb_1depth_on');
hide_menu = false;
});
$gnb.focusout(function() {
hide_menu = true;
});
$('.gnb_1depth ul a').focusin(function() {
$('.gnb_1depth').removeClass('gnb_1depth_over gnb_1depth_on');
var $gnb_li = $(this).closest('.gnb_1depth').addClass('gnb_1depth_over gnb_1depth_on');
hide_menu = false;
});
$('.gnb_1depth ul a').focusout(function() {
hide_menu = true;
});
$(document).click(function() {
if(hide_menu) {
$('.gnb_1depth').removeClass('gnb_1depth_over gnb_1depth_on');
}
});
$(document).focusin(function() {
if(hide_menu) {
$('.gnb_1depth').removeClass('gnb_1depth_over gnb_1depth_on');
}
});
});
</script>
<?
include_once(G4_PATH.'/tail.sub.php');
?>

View File

@ -1,20 +1,20 @@
<?
$sub_menu = "100200";
include_once("./_common.php");
include_once('./_common.php');
if ($is_admin != "super")
alert("최고관리자만 접근 가능합니다.");
if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.');
$token = get_token();
$sql_common = " from $g4[auth_table] a left join $g4[member_table] b on (a.mb_id=b.mb_id) ";
$sql_common = " from {$g4['auth_table']} a left join {$g4['member_table']} b on (a.mb_id=b.mb_id) ";
$sql_search = " where (1) ";
if ($stx) {
$sql_search .= " and ( ";
switch ($sfl) {
default :
$sql_search .= " ($sfl like '%$stx%') ";
default :
$sql_search .= " ({$sfl} like '%{$stx}%') ";
break;
}
$sql_search .= " ) ";
@ -27,196 +27,209 @@ if (!$sst) {
$sql_order = " order by $sst $sod ";
$sql = " select count(*) as cnt
$sql_common
$sql_search
$sql_order ";
{$sql_common}
{$sql_search}
{$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$total_count = $row['cnt'];
$rows = $config[cf_page_rows];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page == "") $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select *
$sql_common
$sql_search
$sql_order
limit $from_record, $rows ";
$sql = " select *
{$sql_common}
{$sql_search}
{$sql_order}
limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$listall = "<a href='$_SERVER[PHP_SELF]' class=tt>처음</a>";
$listall = '';
if ($sfl || $stx) // 검색렬일 때만 처음 버튼을 보여줌 : 지운아빠 2012-10-31
$listall = '<a href="'.$_SERVER['PHP_SELF'].'">전체목록</a>';
$g4[title] = "관리권한설정";
include_once("./admin.head.php");
$g4['title'] = "관리권한설정";
include_once('./admin.head.php');
$colspan = 5;
?>
<script type="text/javascript" src="<?=$g4[path]?>/js/sideview.js"></script>
<script type="text/javascript">
var list_update_php = "";
var list_delete_php = "auth_list_delete.php";
</script>
<table width=100%>
<form name=fsearch method=get>
<tr>
<td width=50% align=left>
<?=$listall?> (건수 : <?=number_format($total_count)?>)
</td>
<td width=50% align=right>
<select name=sfl class=cssfl>
<option value='a.mb_id'>회원아이디</option>
</select>
<input type=text name=stx class=ed required itemname='검색어' value='<?=$stx?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
<form name="fsearch" id="fsearch" method="get">
<input type="hidden" name="sfl" value="a.mb_id" id="sfl">
<fieldset>
<legend>관리권한 검색</legend>
<span>
<?=$listall?>
설정된 관리권한 <?=number_format($total_count)?>건
</span>
<strong id="msg_stx" class="msg_sound_only"></strong>
<input type="text" name="stx" value="<?=$stx?>" id="stx" title="회원아이디(필수)" required class="required frm_input">
<input type="submit" value="검색" id="fsearch_submit" class="btn_submit">
</fieldset>
</form>
</table>
<form name=fauthlist method=post>
<input type=hidden name=sst value='<?=$sst?>'>
<input type=hidden name=sod value='<?=$sod?>'>
<input type=hidden name=sfl value='<?=$sfl?>'>
<input type=hidden name=stx value='<?=$stx?>'>
<input type=hidden name=page value='<?=$page?>'>
<input type=hidden name=token value='<?=$token?>'>
<section class="cbox">
<h2>설정된 관리권한 내역</h2>
<p>권한 <strong>r</strong>은 읽기권한, <strong>w</strong>는 쓰기권한, <strong>d</strong>는 삭제권한입니다.</p>
<table width=100% cellpadding=0 cellspacing=0>
<colgroup width=30>
<colgroup width=120>
<colgroup width=150>
<colgroup width=''>
<colgroup width=100>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td><input type=checkbox name=chkall value='1' onclick='check_all(this.form)'></td>
<td><?=subject_sort_link('a.mb_id')?>회원아이디</a></td>
<td><?=subject_sort_link('mb_nick')?>별명</a></td>
<td>메뉴</td>
<td>권한</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$mb_nick = get_sideview($row[mb_id], $row[mb_nick], $row[mb_email], $row[mb_homepage]);
// 메뉴번호가 바뀌는 경우에 현재 없는 저장된 메뉴는 삭제함
if (!isset($auth_menu[$row[au_menu]]))
<form name="fauthlist" id="fauthlist" method="post" action="./auth_list_delete.php">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="token" value="<?=$token?>">
<table>
<thead>
<tr>
<th scope="col"><input type="checkbox" name="chkall" value="1" id="chkall" title="현재 페이지 권한설정 내역 전체선택" onclick="check_all(this.form)"></th>
<th scope="col"><?=subject_sort_link('a.mb_id')?>회원아이디</a></th>
<th scope="col"><?=subject_sort_link('mb_nick')?>별명</a></th>
<th scope="col">메뉴</th>
<th scope="col">권한</th>
</tr>
</thead>
<tbody>
<?
for ($i=0; $row=sql_fetch_array($result); $i++)
{
sql_query(" delete from $g4[auth_table] where au_menu = '$row[au_menu]' ");
continue;
$mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
// 메뉴번호가 바뀌는 경우에 현재 없는 저장된 메뉴는 삭제함
if (!isset($auth_menu[$row['au_menu']]))
{
sql_query(" delete from {$g4['auth_table']} where au_menu = '{$row['au_menu']}' ");
continue;
}
$list = $i%2;
?>
<tr>
<td class="td_chk">
<input type="hidden" name="au_menu[<?=$i?>]" value="<?=$row['au_menu']?>">
<input type="hidden" name="mb_id[<?=$i?>]" value="<?=$row['mb_id']?>">
<input type="checkbox" name="chk[]" value="<?=$i?>" id="chk_<?=$i?>" title="<?=$row['mb_nick']?>님의 권한체크">
</td>
<td class="td_mbid"><a href="?sfl=a.mb_id&amp;stx=<?=$row['mb_id']?>"><?=$row['mb_id']?></a></td>
<td class="td_auth_mbnick"><?=$mb_nick?></td>
<td class="td_menu">
<?=$row['au_menu']?>
<?=$auth_menu[$row['au_menu']]?>
</td>
<td class="td_auth"><?=$row['au_auth']?></td>
</tr>
<?
}
$list = $i%2;
echo "
<input type=hidden name=mb_id[$i] value='$row[mb_id]'>
<input type=hidden name=au_menu[$i] value='$row[au_menu]'>
<tr class='list$list col1 ht center'>
<td><input type=checkbox name=chk[] value='$i'></td>
<td><a href='?sfl=a.mb_id&stx=$row[mb_id]'>$row[mb_id]</a></td>
<td>$mb_nick</td>
<td align=left>&nbsp; [$row[au_menu]] {$auth_menu[$row[au_menu]]}</td>
<td>$row[au_auth]</td>
</tr>";
}
if ($i==0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table>
if ($i==0)
echo "<tr><td colspan='$colspan' height=100 align=center bgcolor='#FFFFFF'>자료가 없습니다.</td></tr>";
<div class="btn_list">
<button onclick="btn_check(this.form, 'delete')">선택삭제</button>
</div>
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
<?
$pagelist = get_paging(G4_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['PHP_SELF'].'?'.$qstr.'&amp;page=');
echo $pagelist;
?>
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$qstr&page=");
echo "<table width=100% cellpadding=3 cellspacing=1>";
echo "<tr><td width=50%>";
echo "<input type=button class='btn1' value='선택삭제' onclick=\"btn_check(this.form, 'delete')\">";
echo "</td>";
echo "<td width=50% align=right>$pagelist</td></tr></table>\n";
<?
//if (isset($stx))
// echo '<script>document.fsearch.sfl.value = "'.$sfl.'";</script>'."\n";
if ($stx)
echo "<script type='text/javascript'>document.fsearch.sfl.value = '$sfl';</script>\n";
if (strstr($sfl, 'mb_id'))
$mb_id = $stx;
else
$mb_id = '';
?>
</form>
</section>
<form name="fauthlist2" id="fauthlist2" action="./auth_update.php" method="post" autocomplete="off">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="token" value="<?=$token?>">
<section id="add_admin" class="cbox">
<h2>관리권한 추가</h2>
<p>다음 양식에서 회원에게 관리권한을 부여하실 수 있습니다.</p>
<table class="frm_tbl">
<colgroup>
<col class="grid_3">
<col>
</colgroup>
<tbody>
<tr>
<th scope="row"><label for="mb_id">회원아이디<strong class="sound_only">필수</strong></label></th>
<td>
<strong id="msg_mb_id" class="msg_sound_only"></strong>
<input type="text" name="mb_id" value="<?=$mb_id?>" id="mb_id" title="회원아이디" required class="required frm_input">
</td>
</tr>
<tr>
<th scope="row"><label for="au_menu">접근가능메뉴<strong class="sound_only">필수</strong></label></th>
<td>
<select id="au_menu" name="au_menu" required class="required" title="접근가능메뉴">
<option value=''>선택하세요</option>
<?
foreach($auth_menu as $key=>$value)
{
if (!(substr($key, -3) == '000' || $key == '-' || !$key))
echo '<option value="'.$key.'">'.$key.' '.$value.'</option>';
}
?>
</select>
</td>
</tr>
<tr>
<th scope="row">권한지정</th>
<td>
<input type="checkbox" name="r" value="r" id="r" checked>
<label for="r">r (읽기)</label>
<input type="checkbox" name="w" value="w" id="w">
<label for="w">w (쓰기)</label>
<input type="checkbox" name="d" value="d" id="d">
<label for="d">d (삭제)</label>
</td>
</tr>
</tbody>
</table>
<fieldset id="admin_confirm">
<legend>XSS 혹은 CSRF 방지</legend>
<p>관리자 권한을 탈취당하는 경우를 대비하여 패스워드를 다시 한번 확인합니다.</p>
<label for="admin_password">관리자 패스워드</label>
<input type="password" name="admin_password" id="admin_password" required class="required frm_input">
</fieldset>
<div class="btn_confirm">
<input type="submit" value="완료" class="btn_submit">
</div>
</section>
if (strstr($sfl, "mb_id"))
$mb_id = $stx;
else
$mb_id = "";
?>
</form>
<script type='text/javascript'> document.fsearch.stx.focus(); </script>
<?$colspan=5?>
<p>
<form name=fauthlist2 method=post onsubmit="return fauthlist2_submit(this);" autocomplete="off">
<input type=hidden name=sfl value='<?=$sfl?>'>
<input type=hidden name=stx value='<?=$stx?>'>
<input type=hidden name=sst value='<?=$sst?>'>
<input type=hidden name=sod value='<?=$sod?>'>
<input type=hidden name=page value='<?=$page?>'>
<input type=hidden name=token value='<?=$token?>'>
<table width='100%' cellpadding=0 cellspacing=0>
<colgroup width=150>
<colgroup width=''>
<colgroup width=150>
<colgroup width=120>
<colgroup width=100>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>회원아이디</td>
<td>접근가능메뉴</td>
<td>권한</td>
<td>관리자패스워드</td>
<td>입력</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<tr class='ht center'>
<td><input type=text class=ed name=mb_id required itemname='회원아이디' value='<?=$mb_id?>'></td>
<td>
<select name=au_menu required itemname='접근가능메뉴'>
<option value=''>-- 선택하세요
<?
foreach($auth_menu as $key=>$value)
{
if (!(substr($key, -3) == "000" || $key == "-" || !$key))
echo "<option value='$key'>[$key] $value";
<script>
$(function() {
$('#fauthlist').submit(function() {
if (!is_checked("chk[]")) {
alert("선택삭제 하실 항목을 하나 이상 선택하세요.");
return false;
}
?>
</select>
</td>
<td>
<table width=210 align=center>
<tr align=center>
<td width=33%><input type=checkbox name='r' value='r' checked></td>
<td width=33%><input type=checkbox name='w' value='w'></td>
<td width=33%><input type=checkbox name='d' value='d'></td>
</tr>
<tr align=center>
<td>r<br>(읽기)</td>
<td>w<br>(입력,수정)</td>
<td>d<br>(삭제)</td>
</tr>
</table></td>
<td><input type=password class=ed name=admin_password required itemname='관리자 패스워드'></td>
<td><input type=submit class=btn1 value=' 확 인 '></td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
</table>
</form>
<script type="text/javascript">
function fauthlist2_submit(f)
{
f.action = "./auth_update.php";
return true;
}
return true;
});
});
</script>
<?
include_once ("./admin.tail.php");
include_once ('./admin.tail.php');
?>

View File

@ -1,22 +1,22 @@
<?
$sub_menu = "100200";
include_once("./_common.php");
include_once('./_common.php');
check_demo();
if ($is_admin != "super")
alert("최고관리자만 접근 가능합니다.");
if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.');
check_token();
for ($i=0; $i<count($chk); $i++)
for ($i=0; $i<count($chk); $i++)
{
// 실제 번호를 넘김
$k = $chk[$i];
$sql = " delete from $g4[auth_table] where mb_id = '{$_POST['mb_id'][$k]}' and au_menu = '{$_POST['au_menu'][$k]}' ";
$sql = " delete from {$g4['auth_table']} where mb_id = '{$_POST['mb_id'][$k]}' and au_menu = '{$_POST['au_menu'][$k]}' ";
sql_query($sql);
}
goto_url("./auth_list.php?$qstr");
goto_url('./auth_list.php?'.$qstr);
?>

View File

@ -1,34 +1,34 @@
<?
$sub_menu = "100200";
include_once("./_common.php");
include_once('./_common.php');
if ($is_admin != "super")
alert("최고관리자만 접근 가능합니다.");
if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.');
$mb = get_member($mb_id);
if (!$mb[mb_id])
alert("존재하는 회원아이디가 아닙니다.");
if (!$mb['mb_id'])
alert('존재하는 회원아이디가 아닙니다.');
check_token();
if ($member[mb_password] != sql_password($_POST['admin_password'])) {
alert("패스워드가 다릅니다.");
if ($member['mb_password'] != sql_password($_POST['admin_password'])) {
alert('패스워드가 다릅니다.');
}
$sql = " insert into $g4[auth_table]
set mb_id = '$_POST[mb_id]',
au_menu = '$_POST[au_menu]',
au_auth = '$_POST[r],$_POST[$w],$_POST[$d]' ";
$sql = " insert into {$g4['auth_table']}
set mb_id = '{$_POST['mb_id']}',
au_menu = '{$_POST['au_menu']}',
au_auth = '{$_POST['r']},{$_POST['w']},{$_POST['d']}' ";
$result = sql_query($sql, FALSE);
if (!$result) {
$sql = " update $g4[auth_table]
set au_auth = '$_POST[r],$_POST[$w],_POST[$d]'
where mb_id = '$_POST[mb_id]'
and au_menu = '$_POST[au_menu]' ";
$sql = " update {$g4['auth_table']}
set au_auth = '{$_POST['r']},{$_POST['w']},{$_POST['d']}'
where mb_id = '{$_POST['mb_id']}'
and au_menu = '{$_POST['au_menu']}' ";
sql_query($sql);
}
//sql_query(" OPTIMIZE TABLE `$g4[auth_table]` ");
//sql_query(" OPTIMIZE TABLE `$g4['auth_table']` ");
goto_url("./auth_list.php?$qstr");
goto_url('./auth_list.php?'.$qstr);
?>

View File

@ -2,65 +2,67 @@
$sub_menu = "300100";
include_once("./_common.php");
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
$token = get_token();
$g4[title] = "게시판 복사";
include_once("$g4[path]/head.sub.php");
$g4['title'] = '게시판 복사';
$administrator = 1;
include_once(G4_PATH.'/head.sub.php');
?>
<link rel="stylesheet" href="./admin.style.css" type="text/css">
<div class="new_win">
<h1>기존 게시판을 새 게시판으로 복사</h1>
<form name="fboardcopy" method='post' onsubmit="return fboardcopy_check(this);" autocomplete="off">
<input type="hidden" name="bo_table" value="<?=$bo_table?>">
<input type="hidden" name="token" value="<?=$token?>">
<table width=100% cellpadding=0 cellspacing=0>
<colgroup width=30% class='col1 pad1 bold right'>
<colgroup width=70% class='col2 pad2'>
<tr><td colspan=2 height=5></td></tr>
<tr>
<td colspan=2 class=title align=left><img src='<?=$g4[admin_path]?>/img/icon_title.gif'> <?=$g4[title]?></td>
</tr>
<tr><td colspan=2 class='line1'></td></tr>
<tr class='ht'>
<td>원본 테이블</td>
<td><?=$bo_table?></td>
</tr>
<tr class='ht'>
<td>복사할 TABLE</td>
<td><input type=text class=ed name="target_table" size="20" maxlength="20" required alphanumericunderline itemname="TABLE"> 영문자, 숫자, _ 만 가능 (공백없이)</td>
</tr>
<tr class='ht'>
<td>게시판 제목</td>
<td><input type=text class=ed name='target_subject' size=60 maxlength=120 required itemname='게시판 제목' value='[복사본] <?=$board[bo_subject]?>'></td>
</tr>
<tr class='ht'>
<td>복사 유형</td>
<td>
<input type="radio" name="copy_case" value="schema_only" checked>구조만
<input type="radio" name="copy_case" value="schema_data_both">구조와 데이터
</td>
</tr>
<tr height=40>
<td></td>
<td>
<input type="submit" value=" 복 사 " class=btn1>&nbsp;
<input type="button" value="창닫기" onclick="window.close();" class=btn1>
</td>
</tr>
</table>
<form name="fboardcopy" id="fboardcopy" action="./board_copy_update.php" onsubmit="return fboardcopy_check(this);" method="post">
<input type="hidden" name="bo_table" value="<?=$bo_table?>" id="bo_table">
<table class="frm_tbl">
<tbody>
<tr>
<th scope="col">원본 테이블명</th>
<td><?=$bo_table?></td>
</tr>
<tr>
<th scope="col"><label for="target_table">복사 테이블명<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="target_table" id="target_table" required class="required alnum_ frm_input" maxlength="20">영문자, 숫자, _ 만 가능 (공백없이)</td>
</tr>
<tr>
<th scope="col"><label for="target_subject">게시판 제목<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="target_subject" value="[복사본] <?=$board['bo_subject']?>" id="target_subject" required class="required frm_input" maxlength="120"></td>
</tr>
<tr>
<th scope="col">복사 유형</th>
<td>
<input type="radio" name="copy_case" value="schema_only" id="copy_case" checked>
<label for="copy_case">구조만</label>
<input type="radio" name="copy_case" value="schema_data_both" id="copy_case2">
<label for="copy_case2">구조와 데이터</label>
</td>
</tr>
</tbody>
</table>
</div>
<div class="btn_confirm">
<input type="submit" class="btn_submit" value="복사">
<input type="button" class="btn_cancel" value="창닫기" onclick="window.close();">
</div>
</form>
<script type='text/javascript'>
<script>
function fboardcopy_check(f)
{
f.action = "./board_copy_update.php";
if (f.bo_table.value == f.target_table.value) {
alert("원본 테이블명과 복사할 테이블명이 달라야 합니다.");
return false;
}
return true;
}
</script>
<?
include_once("$g4[path]/tail.sub.php");
include_once(G4_PATH.'/tail.sub.php');
?>

View File

@ -1,209 +1,195 @@
<?
$sub_menu = "300100";
include_once("./_common.php");
$sub_menu = '300100';
include_once('./_common.php');
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
$target_table = mysql_real_escape_string(trim($_POST['target_table']));
$target_subject = mysql_real_escape_string(trim($_POST['target_subject']));
$target_table = escape_trim($_POST['target_table']);
$target_subject = escape_trim($_POST['target_subject']);
if (!preg_match("/[A-Za-z0-9_]{1,20}/", $target_table))
{
alert("게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)");
if (!preg_match('/[A-Za-z0-9_]{1,20}/', $target_table)) {
alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)');
}
$row = sql_fetch(" select count(*) as cnt from $g4[board_table] where bo_table = '$target_table' ");
if ($row[cnt])
alert("{$target_table}은(는) 이미 존재하는 게시판 TABLE 입니다.\\n\\n복사할 TABLE로 사용할 수 없습니다.");
$row = sql_fetch(" select count(*) as cnt from {$g4['board_table']} where bo_table = '$target_table' ");
if ($row['cnt'])
alert($target_table.'은(는) 이미 존재하는 게시판 테이블명 입니다.\\n복사할 테이블명으로 사용할 수 없습니다.');
check_token();
// 게시판 테이블 생성
$sql = get_table_define($g4[write_prefix] . $bo_table);
$sql = str_replace($g4[write_prefix] . $bo_table, $g4[write_prefix] . $target_table, $sql);
$sql = get_table_define($g4['write_prefix'] . $bo_table);
$sql = str_replace($g4['write_prefix'] . $bo_table, $g4['write_prefix'] . $target_table, $sql);
sql_query($sql);
$file_copy = array();
// 게시판 정보
$sql = " insert into $g4[board_table]
set bo_table = '$target_table',
bo_subject = '$target_subject',
gr_id = '$board[gr_id]',
bo_admin = '$board[bo_admin]',
bo_list_level = '$board[bo_list_level]',
bo_read_level = '$board[bo_read_level]',
bo_write_level = '$board[bo_write_level]',
bo_reply_level = '$board[bo_reply_level]',
bo_comment_level = '$board[bo_comment_level]',
bo_upload_level = '$board[bo_upload_level]',
bo_download_level = '$board[bo_download_level]',
bo_html_level = '$board[bo_html_level]',
bo_link_level = '$board[bo_link_level]',
bo_trackback_level = '$board[bo_trackback_level]',
bo_count_modify = '$board[bo_count_modify]',
bo_count_delete = '$board[bo_count_delete]',
bo_read_point = '$board[bo_read_point]',
bo_write_point = '$board[bo_write_point]',
bo_comment_point = '$board[bo_comment_point]',
bo_download_point = '$board[bo_download_point]',
bo_use_category = '$board[bo_use_category]',
bo_category_list = '$board[bo_category_list]',
bo_disable_tags = '$board[bo_disable_tags]',
bo_use_secret = '$board[bo_use_secret]',
bo_use_dhtml_editor = '$board[bo_use_dhtml_editor]',
bo_use_sideview = '$board[bo_use_sideview]',
bo_use_comment = '$board[bo_use_comment]',
bo_use_good = '$board[bo_use_good]',
bo_use_nogood = '$board[bo_use_nogood]',
bo_use_signature = '$board[bo_use_signature]',
bo_use_ip_view = '$board[bo_use_ip_view]',
bo_use_trackback = '$board[bo_use_trackback]',
bo_use_list_view = '$board[bo_use_list_view]',
bo_use_list_content = '$board[bo_use_list_content]',
bo_table_width = '$board[bo_table_width]',
bo_subject_len = '$board[bo_subject_len]',
bo_page_rows = '$board[bo_page_rows]',
bo_new = '$board[bo_new]',
bo_hot = '$board[bo_hot]',
bo_image_width = '$board[bo_image_width]',
bo_skin = '$board[bo_skin]',
bo_include_head = '$board[bo_include_head]',
bo_include_tail = '$board[bo_include_tail]',
bo_content_head = '".addslashes($board['bo_content_head'])."',
bo_content_tail = '".addslashes($board['bo_content_tail'])."',
bo_insert_content = '".addslashes($board['bo_insert_content'])."',
bo_gallery_cols = '$board[bo_gallery_cols]',
bo_upload_size = '$board[bo_upload_size]',
bo_reply_order = '$board[bo_reply_order]',
bo_use_search = '$board[bo_use_search]',
bo_order_search = '$board[bo_order_search]',
bo_notice = '$board[bo_notice]',
bo_upload_count = '$board[bo_upload_count]',
bo_use_email = '$board[bo_use_email]',
bo_sort_field = '$board[bo_sort_field]',
bo_1_subj = '$board[bo_1_subj]',
bo_2_subj = '$board[bo_2_subj]',
bo_3_subj = '$board[bo_3_subj]',
bo_4_subj = '$board[bo_4_subj]',
bo_5_subj = '$board[bo_5_subj]',
bo_6_subj = '$board[bo_6_subj]',
bo_7_subj = '$board[bo_7_subj]',
bo_8_subj = '$board[bo_8_subj]',
bo_9_subj = '$board[bo_9_subj]',
bo_10_subj = '$board[bo_10_subj]',
bo_1 = '$board[bo_1]',
bo_2 = '$board[bo_2]',
bo_3 = '$board[bo_3]',
bo_4 = '$board[bo_4]',
bo_5 = '$board[bo_5]',
bo_6 = '$board[bo_6]',
bo_7 = '$board[bo_7]',
bo_8 = '$board[bo_8]',
bo_9 = '$board[bo_9]',
bo_10 = '$board[bo_10]' ";
$sql = " insert into {$g4['board_table']}
set bo_table = '$target_table',
gr_id = '{$board['gr_id']}',
bo_subject = '$target_subject',
bo_device = '{$board['bo_device']}',
bo_admin = '{$board['bo_admin']}',
bo_list_level = '{$board[bo_list_level]}',
bo_read_level = '{$board[bo_read_level]}',
bo_write_level = '{$board[bo_write_level]}',
bo_reply_level = '{$board[bo_reply_level]}',
bo_comment_level = '{$board[bo_comment_level]}',
bo_upload_level = '{$board[bo_upload_level]}',
bo_download_level = '{$board[bo_download_level]}',
bo_html_level = '{$board[bo_html_level]}',
bo_link_level = '{$board[bo_link_level]}',
bo_trackback_level = '{$board[bo_trackback_level]}',
bo_count_modify = '{$board[bo_count_modify]}',
bo_count_delete = '{$board[bo_count_delete]}',
bo_read_point = '{$board[bo_read_point]}',
bo_write_point = '{$board[bo_write_point]}',
bo_comment_point = '{$board[bo_comment_point]}',
bo_download_point = '{$board[bo_download_point]}',
bo_use_category = '{$board[bo_use_category]}',
bo_category_list = '{$board['bo_category_list']}',
bo_disable_tags = '{$board['bo_disable_tags']}',
bo_use_sideview = '{$board[bo_use_sideview]}',
bo_use_file_content = '{$board[bo_use_file_content]}',
bo_use_secret = '{$board[bo_use_secret]}',
bo_use_dhtml_editor = '{$board[bo_use_dhtml_editor]}',
bo_use_rss_view = '{$board[bo_use_rss_view]}',
bo_use_good = '{$board[bo_use_good]}',
bo_use_nogood = '{$board[bo_use_nogood]}',
bo_use_signature = '{$board[bo_use_signature]}',
bo_use_ip_view = '{$board[bo_use_ip_view]}',
bo_use_list_view = '{$board['o_use_list_view']}',
bo_use_list_content = '{$board[bo_use_list_content]}',
bo_table_width = '{$board[bo_table_width]}',
bo_subject_len = '{$board[bo_subject_len]}',
bo_page_rows = '{$board[bo_page_rows]}',
bo_new = '{$board[bo_new]}',
bo_hot = '{$board[bo_hot]}',
bo_image_width = '{$board[bo_image_width]}',
bo_skin = '{$board['bo_skin']}',
bo_include_head = '{$board['bo_include_head']}',
bo_include_tail = '{$board['bo_include_tail']}',
bo_content_head = '".addslashes($board['bo_content_head'])."',
bo_content_tail = '".addslashes($board['bo_content_tail'])."',
bo_insert_content = '".addslashes($board['bo_insert_content'])."',
bo_gallery_cols = '{$board[bo_gallery_cols]}',
bo_gallery_width = '{$board[bo_gallery_width]}',
bo_gallery_height = '{$board[bo_gallery_height]}',
bo_mobile_gallery_cols = '{$board[bo_mobile_gallery_cols]}',
bo_mobile_gallery_width = '{$board[bo_mobile_gallery_width]}',
bo_mobile_gallery_height = '{$board[bo_mobile_gallery_height]}',
bo_upload_size = '{$board[bo_upload_size]}',
bo_reply_order = '{$board[bo_reply_order]}',
bo_use_search = '{$board[bo_use_search]}',
bo_show_menu = '{$board[bo_show_menu]}',
bo_order = '{$board[bo_order]}',
bo_notice = '{$board['bo_notice']}',
bo_upload_count = '{$board[bo_upload_count]}',
bo_use_email = '{$board[bo_use_email]}',
bo_sort_field = '{$board['bo_sort_field']}',
bo_1_subj = '{$board['bo_1_subj']}',
bo_2_subj = '{$board['bo_2_subj']}',
bo_3_subj = '{$board['bo_3_subj']}',
bo_4_subj = '{$board['bo_4_subj']}',
bo_5_subj = '{$board['bo_5_subj']}',
bo_6_subj = '{$board['bo_6_subj']}',
bo_7_subj = '{$board['bo_7_subj']}',
bo_8_subj = '{$board['bo_8_subj']}',
bo_9_subj = '{$board['bo_9_subj']}',
bo_10_subj = '{$board['bo_10_subj']}',
bo_1 = '{$board['bo_1']}',
bo_2 = '{$board['bo_2']}',
bo_3 = '{$board['bo_3']}',
bo_4 = '{$board['bo_4']}',
bo_5 = '{$board['bo_5']}',
bo_6 = '{$board['bo_6']}',
bo_7 = '{$board['bo_7']}',
bo_8 = '{$board['bo_8']}',
bo_9 = '{$board['bo_9']}',
bo_10 = '{$board['bo_10']}' ";
sql_query($sql);
// 게시판 폴더 생성
@mkdir("$g4[path]/data/file/$target_table", 0707);
@chmod("$g4[path]/data/file/$target_table", 0707);
@mkdir(G4_DATA_PATH.'/file/'.$target_table, 0707);
@chmod(G4_DATA_PATH.'/file/'.$target_table, 0707);
// 디렉토리에 있는 파일의 목록을 보이지 않게 한다.
$board_path = "$g4[path]/data/file/$target_table";
$file = $board_path . "/index.php";
$f = @fopen($file, "w");
@fwrite($f, "");
$board_path = G4_DATA_PATH.'/file/'.$target_table;
$file = $board_path . '/index.php';
$f = @fopen($file, 'w');
@fwrite($f, '');
@fclose($f);
@chmod($file, 0606);
$copy_file = 0;
if ($copy_case == "schema_data_both")
{
$d = dir("$g4[path]/data/file/$bo_table");
while ($entry = $d->read())
{
if ($entry == "." || $entry == "..") continue;
/*
@copy("$g4[path]/data/file/$bo_table/$entry", "$g4[path]/data/file/$target_table/$entry");
@chmod("$g4[path]/data/file/$target_table/$entry", 0707);
$copy_file++;
*/
if ($copy_case == 'schema_data_both') {
$d = dir(G4_DATA_PATH.'/file/'.$bo_table);
while ($entry = $d->read()) {
if ($entry == '.' || $entry == '..') continue;
// 김선용 201007 :
if(is_dir("$g4[path]/data/file/$bo_table/$entry")){
$dd = dir("$g4[path]/data/file/$bo_table/$entry");
@mkdir("$g4[path]/data/file/$target_table/$entry", 0707);
@chmod("$g4[path]/data/file/$target_table/$entry", 0707);
if(is_dir(G4_DATA_PATH.'/file/'.$bo_table.'/'.$entry)){
$dd = dir(G4_DATA_PATH.'/file/'.$bo_table.'/'.$entry);
@mkdir(G4_DATA_PATH.'/file/'.$target_table.'/'.$entry, 0707);
@chmod(G4_DATA_PATH.'/file/'.$target_table.'/'.$entry, 0707);
while ($entry2 = $dd->read()) {
if ($entry2 == "." || $entry2 == "..") continue;
@copy("$g4[path]/data/file/$bo_table/$entry/$entry2", "$g4[path]/data/file/$target_table/$entry/$entry2");
@chmod("$g4[path]/data/file/$target_table/$entry/$entry2", 0707);
if ($entry2 == '.' || $entry2 == '..') continue;
@copy(G4_DATA_PATH.'/file/'.$bo_table.'/'.$entry.'/'.$entry2, G4_DATA_PATH.'/file/'.$target_table.'/'.$entry.'/'.$entry2);
@chmod(G4_DATA_PATH.'/file/'.$target_table.'/'.$entry.'/'.$entry2, 0707);
$copy_file++;
}
$dd->close();
}
else {
@copy("$g4[path]/data/file/$bo_table/$entry", "$g4[path]/data/file/$target_table/$entry");
@chmod("$g4[path]/data/file/$target_table/$entry", 0707);
@copy(G4_DATA_PATH.'/file/'.$bo_table.'/'.$entry, G4_DATA_PATH.'/file/'.$target_table.'/'.$entry);
@chmod(G4_DATA_PATH.'/file/'.$target_table.'/'.$entry, 0707);
$copy_file++;
}
}
$d->close();
// 글복사
$sql = " insert into $g4[write_prefix]$target_table select * from $g4[write_prefix]$bo_table ";
$sql = " insert into {$g4['write_prefix']}$target_table select * from {$g4['write_prefix']}$bo_table ";
sql_query($sql);
// 게시글수 저장
$sql = " select bo_count_write, bo_count_comment from $g4[board_table] where bo_table = '$bo_table' ";
$sql = " select bo_count_write, bo_count_comment from {$g4['board_table']} where bo_table = '$bo_table' ";
$row = sql_fetch($sql);
$sql = " update $g4[board_table] set bo_count_write = '$row[bo_count_write]', bo_count_comment = '$row[bo_count_comment]' where bo_table = '$target_table' ";
$sql = " update {$g4['board_table']} set bo_count_write = '{$row['bo_count_write']}', bo_count_comment = '{$row['bo_count_comment']}' where bo_table = '$target_table' ";
sql_query($sql);
// 05.05.24
// 파일테이블 복사
//$sql = " insert into $g4[board_file_table] select '$target_table', wr_id, bf_no, bf_source, bf_file, bf_download, bf_content from $g4[board_file_table] where bo_table = '$bo_table' ";
//sql_query($sql);
// 4.00.01
// 위의 코드는 같은 테이블명을 사용하였다는 오류가 발생함. (희한하네 ㅡㅡ;)
$sql = " select * from $g4[board_file_table] where bo_table = '$bo_table' ";
$sql = " select * from {$g4['board_file_table']} where bo_table = '$bo_table' ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
for ($i=0; $row=sql_fetch_array($result); $i++)
$file_copy[$i] = $row;
}
}
if (count($file_copy))
{
for ($i=0; $i<count($file_copy); $i++)
{
$sql = " insert into $g4[board_file_table]
if (count($file_copy)) {
for ($i=0; $i<count($file_copy); $i++) {
$sql = " insert into {$g4['board_file_table']}
set bo_table = '$target_table',
wr_id = '{$file_copy[$i][wr_id]}',
bf_no = '{$file_copy[$i][bf_no]}',
bf_source = '{$file_copy[$i][bf_source]}',
bf_file = '{$file_copy[$i][bf_file]}',
bf_download = '{$file_copy[$i][bf_download]}',
bf_content = '{$file_copy[$i][bf_content]}',
bf_filesize = '{$file_copy[$i][bf_filesize]}',
bf_width = '{$file_copy[$i][bf_width]}',
bf_height = '{$file_copy[$i][bf_height]}',
bf_type = '{$file_copy[$i][bf_type]}',
bf_datetime = '{$file_copy[$i][bf_datetime]}' ";
wr_id = '{$file_copy[$i]['wr_id']}',
bf_no = '{$file_copy[$i]['bf_no']}',
bf_source = '{$file_copy[$i]['bf_source']}',
bf_file = '{$file_copy[$i]['bf_file']}',
bf_download = '{$file_copy[$i]['bf_download']}',
bf_content = '{$file_copy[$i]['bf_content']}',
bf_filesize = '{$file_copy[$i]['bf_filesize']}',
bf_width = '{$file_copy[$i]['bf_width']}',
bf_height = '{$file_copy[$i]['bf_height']}',
bf_type = '{$file_copy[$i]['bf_type']}',
bf_datetime = '{$file_copy[$i]['bf_datetime']}' ";
sql_query($sql, FALSE);
}
}
echo "<meta http-equiv='content-type' content='text/html; charset={$g4['charset']}'>";
echo "<script type='text/javascript'>";
echo "alert(\"게시판 복사 : {$bo_table} -> {$target_table}";
if ($copy_file)
echo "\\n\\n복사한 파일 : 총 {$copy_file}";
echo "\");";
echo "opener.document.location.reload();";
echo "</script>";
delete_cache_latest($bo_table);
delete_cache_latest($target_table);
goto_url("./board_copy.php?bo_table=$bo_table&$qstr");
?>
echo "<script>opener.document.location.reload();</script>";
alert("복사에 성공 했습니다.", './board_copy.php?bo_table='.$bo_table.'&amp;'.$qstr);
?>

View File

@ -1,31 +1,36 @@
<?
// board_delete.php , boardgroup_delete.php 에서 include 하는 파일
if (!defined("_GNUBOARD_")) exit;
if (!defined("_BOARD_DELETE_")) exit; // 개별 페이지 접근 불가
if (!defined('_GNUBOARD_')) exit;
if (!defined('_BOARD_DELETE_')) exit; // 개별 페이지 접근 불가
// $tmp_bo_table 에는 $bo_table 값을 넘겨주어야 함
if (!$tmp_bo_table) { return; }
// 게시판 1개는 삭제 불가 (게시판 복사를 위해서)
//$row = sql_fetch(" select count(*) as cnt from $g4[board_table] ");
//if ($row[cnt] <= 1) { return; }
//$row = sql_fetch(" select count(*) as cnt from $g4['board_table'] ");
//if ($row['cnt'] <= 1) { return; }
// 게시판 설정 삭제
sql_query(" delete from $g4[board_table] where bo_table = '$tmp_bo_table' ");
sql_query(" delete from {$g4['board_table']} where bo_table = '{$tmp_bo_table}' ");
// 최신글 삭제
sql_query(" delete from $g4[board_new_table] where bo_table = '$tmp_bo_table' ");
sql_query(" delete from {$g4['board_new_table']} where bo_table = '{$tmp_bo_table}' ");
// 스크랩 삭제
sql_query(" delete from $g4[scrap_table] where bo_table = '$tmp_bo_table' ");
sql_query(" delete from {$g4['scrap_table']} where bo_table = '{$tmp_bo_table}' ");
// 파일 삭제
sql_query(" delete from $g4[board_file_table] where bo_table = '$tmp_bo_table' ");
sql_query(" delete from {$g4['board_file_table']} where bo_table = '{$tmp_bo_table}' ");
// 게시판 테이블 DROP
sql_query(" drop table $g4[write_prefix]$tmp_bo_table ", FALSE);
sql_query(" drop table {$g4['write_prefix']}{$tmp_bo_table} ", FALSE);
delete_cache_latest($tmp_bo_table);
// 게시판 폴더 전체 삭제
rm_rf("$g4[path]/data/file/$tmp_bo_table");
rm_rf(G4_DATA_PATH.'/file/'.$tmp_bo_table);
// syndication ping
include G4_BBS_PATH.'/syndi/include/include.adm.board_delete.inc.php';
?>

View File

@ -1,28 +1,28 @@
<?
$sub_menu = "300100";
include_once("./_common.php");
include_once('./_common.php');
check_demo();
if ($is_admin != "super")
if ($is_admin != 'super')
alert("게시판 삭제는 최고관리자만 가능합니다.");
auth_check($auth[$sub_menu], "d");
auth_check($auth[$sub_menu], 'd');
check_token();
// _BOARD_DELETE_ 상수를 선언해야 board_delete.inc.php 가 정상 작동함
define("_BOARD_DELETE_", TRUE);
define('_BOARD_DELETE_', TRUE);
// include 전에 $bo_table 값을 반드시 넘겨야 함
$tmp_bo_table = mysql_real_escape_string(trim($_POST['bo_table']));
$sql = " select * from $g4[board_table] where bo_table = '$tmp_bo_table' ";
$tmp_bo_table = escape_trim($_GET['bo_table']);
$sql = " select * from {$g4['board_table']} where bo_table = '{$tmp_bo_table}' ";
$row = sql_fetch($sql);
if (!$row) {
alert("게시판을 삭제할 수 없습니다.");
alert('게시판을 삭제할 수 없습니다.');
}
include_once ("./board_delete.inc.php");
include_once ('./board_delete.inc.php');
goto_url("./board_list.php?$qstr&page=$page");
goto_url('./board_list.php?'.$qstr.'&amp;page='.$page);
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,225 +1,207 @@
<?
$sub_menu = "300100";
include_once("./_common.php");
include_once('./_common.php');
if ($w == 'u')
check_demo();
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
if ($member[mb_password] != sql_password($_POST['admin_password'])) {
alert("패스워드가 다릅니다.");
if ($_POST['admin_password']) {
if ($member['mb_password'] != sql_password($_POST['admin_password'])) {
alert('관리자 패스워드가 틀립니다.');
}
} else {
alert('관리자 패스워드를 입력하세요.');
}
if (!$_POST[gr_id]) { alert("그룹 ID는 반드시 선택하세요."); }
if (!$bo_table) { alert("게시판 TABLE명은 반드시 입력하세요."); }
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) { alert("게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)"); }
if (!$_POST[bo_subject]) { alert("게시판 제목을 입력하세요."); }
if ($img = $_FILES[bo_image_head][name]) {
if (!preg_match("/\.(gif|jpg|png)$/i", $img)) {
alert("상단 이미지가 gif, jpg, png 파일이 아닙니다.");
if (!$_POST['gr_id']) { alert('그룹 ID는 반드시 선택하세요.'); }
if (!$bo_table) { alert('게시판 TABLE명은 반드시 입력하세요.'); }
if (!preg_match("/^([A-Za-z0-9_]{1,20})$/", $bo_table)) { alert('게시판 TABLE명은 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (20자 이내)'); }
if (!$_POST['bo_subject']) { alert('게시판 제목을 입력하세요.'); }
if ($file = $_POST['bo_include_head']) {
if (!preg_match("/\.(php|htm['l']?)$/i", $file)) {
alert('상단 파일 경로가 php, html 파일이 아닙니다.');
}
}
if ($img = $_FILES[bo_image_tail][name]) {
if (!preg_match("/\.(gif|jpg|png)$/i", $img)) {
alert("하단 이미지가 gif, jpg, png 파일이 아닙니다.");
if ($file = $_POST['bo_include_tail']) {
if (!preg_match("/\.(php|htm['l']?)$/i", $file)) {
alert('하단 파일 경로가 php, html 파일이 아닙니다.');
}
}
if ($file = $_POST[bo_include_head]) {
if (!preg_match("/\.(php|htm[l]?)$/i", $file)) {
alert("상단 파일 경로가 php, html 파일이 아닙니다.");
}
}
if ($file = $_POST[bo_include_tail]) {
if (!preg_match("/\.(php|htm[l]?)$/i", $file)) {
alert("하단 파일 경로가 php, html 파일이 아닙니다.");
}
}
check_token();
$board_path = "$g4[path]/data/file/$bo_table";
$board_path = G4_DATA_PATH.'/file/'.$bo_table;
// 게시판 디렉토리 생성
@mkdir($board_path, 0707);
@chmod($board_path, 0707);
// 디렉토리에 있는 파일의 목록을 보이지 않게 한다.
$file = $board_path . "/index.php";
$f = @fopen($file, "w");
@fwrite($f, "");
$file = $board_path . '/index.php';
$f = @fopen($file, 'w');
@fwrite($f, '');
@fclose($f);
@chmod($file, 0606);
// 분류에 & 나 = 는 사용이 불가하므로 2바이트로 바꾼다.
$src_char = array('&', '=');
$dst_char = array('', '〓');
$dst_char = array('', '〓');
$bo_category_list = str_replace($src_char, $dst_char, $bo_category_list);
$sql_common = " gr_id = '$_POST[gr_id]',
bo_subject = '$_POST[bo_subject]',
bo_admin = '$_POST[bo_admin]',
bo_list_level = '$_POST[bo_list_level]',
bo_read_level = '$_POST[bo_read_level]',
bo_write_level = '$_POST[bo_write_level]',
bo_reply_level = '$_POST[bo_reply_level]',
bo_comment_level = '$_POST[bo_comment_level]',
bo_html_level = '$_POST[bo_html_level]',
bo_link_level = '$_POST[bo_link_level]',
bo_trackback_level = '$_POST[bo_trackback_level]',
bo_count_modify = '$_POST[bo_count_modify]',
bo_count_delete = '$_POST[bo_count_delete]',
bo_upload_level = '$_POST[bo_upload_level]',
bo_download_level = '$_POST[bo_download_level]',
bo_read_point = '$_POST[bo_read_point]',
bo_write_point = '$_POST[bo_write_point]',
bo_comment_point = '$_POST[bo_comment_point]',
bo_download_point = '$_POST[bo_download_point]',
bo_use_category = '$_POST[bo_use_category]',
bo_category_list = '$_POST[bo_category_list]',
bo_disable_tags = '$_POST[bo_disable_tags]',
bo_use_sideview = '$_POST[bo_use_sideview]',
bo_use_file_content = '$_POST[bo_use_file_content]',
bo_use_secret = '$_POST[bo_use_secret]',
bo_use_dhtml_editor = '$_POST[bo_use_dhtml_editor]',
bo_use_rss_view = '$_POST[bo_use_rss_view]',
bo_use_comment = '$_POST[bo_use_comment]',
bo_use_good = '$_POST[bo_use_good]',
bo_use_nogood = '$_POST[bo_use_nogood]',
bo_use_name = '$_POST[bo_use_name]',
bo_use_signature = '$_POST[bo_use_signature]',
bo_use_ip_view = '$_POST[bo_use_ip_view]',
bo_use_trackback = '$_POST[bo_use_trackback]',
bo_use_list_view = '$_POST[bo_use_list_view]',
bo_use_list_content = '$_POST[bo_use_list_content]',
bo_use_email = '$_POST[bo_use_email]',
bo_table_width = '$_POST[bo_table_width]',
bo_subject_len = '$_POST[bo_subject_len]',
bo_page_rows = '$_POST[bo_page_rows]',
bo_new = '$_POST[bo_new]',
bo_hot = '$_POST[bo_hot]',
bo_image_width = '$_POST[bo_image_width]',
bo_skin = '$_POST[bo_skin]',
bo_include_head = '$_POST[bo_include_head]',
bo_include_tail = '$_POST[bo_include_tail]',
bo_content_head = '$_POST[bo_content_head]',
bo_content_tail = '$_POST[bo_content_tail]',
bo_insert_content = '$_POST[bo_insert_content]',
bo_gallery_cols = '$_POST[bo_gallery_cols]',
bo_upload_count = '$_POST[bo_upload_count]',
bo_upload_size = '$_POST[bo_upload_size]',
bo_reply_order = '$_POST[bo_reply_order]',
bo_use_search = '$_POST[bo_use_search]',
bo_order_search = '$_POST[bo_order_search]',
bo_write_min = '$_POST[bo_write_min]',
bo_write_max = '$_POST[bo_write_max]',
bo_comment_min = '$_POST[bo_comment_min]',
bo_comment_max = '$_POST[bo_comment_max]',
bo_sort_field = '$_POST[bo_sort_field]',
bo_1_subj = '$_POST[bo_1_subj]',
bo_2_subj = '$_POST[bo_2_subj]',
bo_3_subj = '$_POST[bo_3_subj]',
bo_4_subj = '$_POST[bo_4_subj]',
bo_5_subj = '$_POST[bo_5_subj]',
bo_6_subj = '$_POST[bo_6_subj]',
bo_7_subj = '$_POST[bo_7_subj]',
bo_8_subj = '$_POST[bo_8_subj]',
bo_9_subj = '$_POST[bo_9_subj]',
bo_10_subj = '$_POST[bo_10_subj]',
bo_1 = '$_POST[bo_1]',
bo_2 = '$_POST[bo_2]',
bo_3 = '$_POST[bo_3]',
bo_4 = '$_POST[bo_4]',
bo_5 = '$_POST[bo_5]',
bo_6 = '$_POST[bo_6]',
bo_7 = '$_POST[bo_7]',
bo_8 = '$_POST[bo_8]',
bo_9 = '$_POST[bo_9]',
bo_10 = '$_POST[bo_10]' ";
$sql_common = " gr_id = '{$_POST['gr_id']}',
bo_subject = '{$_POST['bo_subject']}',
bo_device = '{$_POST['bo_device']}',
bo_admin = '{$_POST['bo_admin']}',
bo_list_level = '{$_POST['bo_list_level']}',
bo_read_level = '{$_POST['bo_read_level']}',
bo_write_level = '{$_POST['bo_write_level']}',
bo_reply_level = '{$_POST['bo_reply_level']}',
bo_comment_level = '{$_POST['bo_comment_level']}',
bo_html_level = '{$_POST['bo_html_level']}',
bo_link_level = '{$_POST['bo_link_level']}',
bo_count_modify = '{$_POST['bo_count_modify']}',
bo_count_delete = '{$_POST['bo_count_delete']}',
bo_upload_level = '{$_POST['bo_upload_level']}',
bo_download_level = '{$_POST['bo_download_level']}',
bo_read_point = '{$_POST['bo_read_point']}',
bo_write_point = '{$_POST['bo_write_point']}',
bo_comment_point = '{$_POST['bo_comment_point']}',
bo_download_point = '{$_POST['bo_download_point']}',
bo_use_category = '{$_POST['bo_use_category']}',
bo_category_list = '{$_POST['bo_category_list']}',
bo_use_sideview = '{$_POST['bo_use_sideview']}',
bo_use_file_content = '{$_POST['bo_use_file_content']}',
bo_use_secret = '{$_POST['bo_use_secret']}',
bo_use_dhtml_editor = '{$_POST['bo_use_dhtml_editor']}',
bo_use_rss_view = '{$_POST['bo_use_rss_view']}',
bo_use_good = '{$_POST['bo_use_good']}',
bo_use_nogood = '{$_POST['bo_use_nogood']}',
bo_use_name = '{$_POST['bo_use_name']}',
bo_use_signature = '{$_POST['bo_use_signature']}',
bo_use_ip_view = '{$_POST['bo_use_ip_view']}',
bo_use_list_view = '{$_POST['bo_use_list_view']}',
bo_use_list_content = '{$_POST['bo_use_list_content']}',
bo_use_email = '{$_POST['bo_use_email']}',
bo_table_width = '{$_POST['bo_table_width']}',
bo_subject_len = '{$_POST['bo_subject_len']}',
bo_page_rows = '{$_POST['bo_page_rows']}',
bo_new = '{$_POST['bo_new']}',
bo_hot = '{$_POST['bo_hot']}',
bo_image_width = '{$_POST['bo_image_width']}',
bo_skin = '{$_POST['bo_skin']}',
bo_mobile_skin = '{$_POST['bo_mobile_skin']}',
bo_include_head = '{$_POST['bo_include_head']}',
bo_include_tail = '{$_POST['bo_include_tail']}',
bo_content_head = '{$_POST['bo_content_head']}',
bo_content_tail = '{$_POST['bo_content_tail']}',
bo_insert_content = '{$_POST['bo_insert_content']}',
bo_gallery_cols = '{$_POST['bo_gallery_cols']}',
bo_gallery_width = '{$_POST['bo_gallery_width']}',
bo_gallery_height = '{$_POST['bo_gallery_height']}',
bo_mobile_gallery_cols = '{$_POST['bo_mobile_gallery_cols']}',
bo_mobile_gallery_width = '{$_POST['bo_mobile_gallery_width']}',
bo_mobile_gallery_height= '{$_POST['bo_mobile_gallery_height']}',
bo_upload_count = '{$_POST['bo_upload_count']}',
bo_upload_size = '{$_POST['bo_upload_size']}',
bo_reply_order = '{$_POST['bo_reply_order']}',
bo_use_search = '{$_POST['bo_use_search']}',
bo_order = '{$_POST['bo_order']}',
bo_write_min = '{$_POST['bo_write_min']}',
bo_write_max = '{$_POST['bo_write_max']}',
bo_comment_min = '{$_POST['bo_comment_min']}',
bo_comment_max = '{$_POST['bo_comment_max']}',
bo_sort_field = '{$_POST['bo_sort_field']}',
bo_1_subj = '{$_POST['bo_1_subj']}',
bo_2_subj = '{$_POST['bo_2_subj']}',
bo_3_subj = '{$_POST['bo_3_subj']}',
bo_4_subj = '{$_POST['bo_4_subj']}',
bo_5_subj = '{$_POST['bo_5_subj']}',
bo_6_subj = '{$_POST['bo_6_subj']}',
bo_7_subj = '{$_POST['bo_7_subj']}',
bo_8_subj = '{$_POST['bo_8_subj']}',
bo_9_subj = '{$_POST['bo_9_subj']}',
bo_10_subj = '{$_POST['bo_10_subj']}',
bo_1 = '{$_POST['bo_1']}',
bo_2 = '{$_POST['bo_2']}',
bo_3 = '{$_POST['bo_3']}',
bo_4 = '{$_POST['bo_4']}',
bo_5 = '{$_POST['bo_5']}',
bo_6 = '{$_POST['bo_6']}',
bo_7 = '{$_POST['bo_7']}',
bo_8 = '{$_POST['bo_8']}',
bo_9 = '{$_POST['bo_9']}',
bo_10 = '{$_POST['bo_10']}' ";
if ($bo_image_head_del) {
@unlink("$board_path/$bo_image_head_del");
$sql_common .= " , bo_image_head = '' ";
}
if ($w == '') {
if ($bo_image_tail_del) {
@unlink("$board_path/$bo_image_tail_del");
$sql_common .= " , bo_image_tail = '' ";
}
$row = sql_fetch(" select count(*) as cnt from {$g4['board_table']} where bo_table = '{$bo_table}' ");
if ($row['cnt'])
alert($bo_table.' 은(는) 이미 존재하는 TABLE 입니다.');
if ($_FILES[bo_image_head][name]) {
//$bo_image_head_urlencode = urlencode($_FILES[bo_image_head][name]);
$bo_image_head_urlencode = $bo_table."_head_".time();
$sql_common .= " , bo_image_head = '$bo_image_head_urlencode' ";
}
if ($_FILES[bo_image_tail][name]) {
//$bo_image_tail_urlencode = urlencode($_FILES[bo_image_tail][name]);
$bo_image_tail_urlencode = $bo_table."_tail_".time();
$sql_common .= " , bo_image_tail = '$bo_image_tail_urlencode' ";
}
if ($w == "") {
$row = sql_fetch(" select count(*) as cnt from $g4[board_table] where bo_table = '$bo_table' ");
if ($row[cnt])
alert("{$bo_table} 은(는) 이미 존재하는 TABLE 입니다.");
$sql = " insert into $g4[board_table]
set bo_table = '$bo_table',
$sql = " insert into {$g4['board_table']}
set bo_table = '{$bo_table}',
bo_count_write = '0',
bo_count_comment = '0',
$sql_common ";
sql_query($sql);
// 게시판 테이블 생성
$file = file("./sql_write.sql");
$file = file('./sql_write.sql');
$sql = implode($file, "\n");
$create_table = $g4[write_prefix] . $bo_table;
$create_table = $g4['write_prefix'] . $bo_table;
// sql_board.sql 파일의 테이블명을 변환
$source = array("/__TABLE_NAME__/", "/;/");
$target = array($create_table, "");
$source = array('/__TABLE_NAME__/', '/;/');
$target = array($create_table, '');
$sql = preg_replace($source, $target, $sql);
sql_query($sql, FALSE);
} else if ($w == "u") {
} else if ($w == 'u') {
// 게시판의 글 수
$sql = " select count(*) as cnt from $g4[write_prefix]$bo_table where wr_is_comment = 0 ";
$sql = " select count(*) as cnt from {$g4['write_prefix']}{$bo_table} where wr_is_comment = 0 ";
$row = sql_fetch($sql);
$bo_count_write = $row[cnt];
$bo_count_write = $row['cnt'];
// 게시판의 코멘트 수
$sql = " select count(*) as cnt from $g4[write_prefix]$bo_table where wr_is_comment = 1 ";
$sql = " select count(*) as cnt from {$g4['write_prefix']}{$bo_table} where wr_is_comment = 1 ";
$row = sql_fetch($sql);
$bo_count_comment = $row[cnt];
$bo_count_comment = $row['cnt'];
// 글수 조정
if ($proc_count) {
/*
엔피씨님의 팁으로 교체합니다. 130308
http://sir.co.kr/bbs/board.php?bo_table=g4_tiptech&wr_id=27207
*/
if (isset($_POST['proc_count'])) {
// 원글을 얻습니다.
$sql = " select wr_id from $g4[write_prefix]$bo_table where wr_is_comment = 0 ";
//$sql = " select wr_id from {$g4['write_prefix']}{$bo_table} where wr_is_comment = 0 ";
$sql = " select a.wr_id, (count(b.wr_parent) - 1) as cnt from {$g4['write_prefix']}{$bo_table} a, {$g4['write_prefix']}{$bo_table} b where a.wr_id=b.wr_parent and a.wr_is_comment=0 group by a.wr_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
/*
// 코멘트수를 얻습니다.
$sql2 = " select count(*) as cnt from $g4[write_prefix]$bo_table where wr_parent = '$row[wr_id]' and wr_is_comment = 1 ";
$sql2 = " select count(*) as cnt from {$g4['write_prefix']}$bo_table where wr_parent = '{$row['wr_id']}' and wr_is_comment = 1 ";
$row2 = sql_fetch($sql2);
*/
sql_query(" update $g4[write_prefix]$bo_table set wr_comment = '$row2[cnt]' where wr_id = '$row[wr_id]' ");
sql_query(" update {$g4['write_prefix']}{$bo_table} set wr_comment = '{$row['cnt']}' where wr_id = '{$row['wr_id']}' ");
}
}
// 공지사항에는 등록되어 있지만 실제 존재하지 않는 글 아이디는 삭제합니다.
$bo_notice = "";
$lf = "";
if ($board[bo_notice]) {
$tmp_array = explode("\n", $board[bo_notice]);
if ($board['bo_notice']) {
$tmp_array = explode("\n", $board['bo_notice']);
for ($i=0; $i<count($tmp_array); $i++) {
$tmp_wr_id = trim($tmp_array[$i]);
$row = sql_fetch(" select count(*) as cnt from $g4[write_prefix]$bo_table where wr_id = '$tmp_wr_id' ");
if ($row[cnt])
$row = sql_fetch(" select count(*) as cnt from {$g4['write_prefix']}{$bo_table} where wr_id = '{$tmp_wr_id}' ");
if ($row['cnt'])
{
$bo_notice .= $lf . $tmp_wr_id;
$lf = "\n";
@ -227,105 +209,174 @@ if ($w == "") {
}
}
$sql = " update $g4[board_table]
set bo_notice = '$bo_notice',
bo_count_write = '$bo_count_write',
bo_count_comment = '$bo_count_comment',
$sql_common
where bo_table = '$bo_table' ";
$sql = " update {$g4['board_table']}
set bo_notice = '{$bo_notice}',
bo_count_write = '{$bo_count_write}',
bo_count_comment = '{$bo_count_comment}',
{$sql_common}
where bo_table = '{$bo_table}' ";
sql_query($sql);
}
// 같은 그룹내 게시판 동일 옵션 적용
$s = "";
if ($chk_admin) $s .= " , bo_admin = '$bo_admin' ";
if ($chk_list_level) $s .= " , bo_list_level = '$bo_list_level' ";
if ($chk_read_level) $s .= " , bo_read_level = '$bo_read_level' ";
if ($chk_write_level) $s .= " , bo_write_level = '$bo_write_level' ";
if ($chk_reply_level) $s .= " , bo_reply_level = '$bo_reply_level' ";
if ($chk_comment_level) $s .= " , bo_comment_level = '$bo_comment_level' ";
if ($chk_link_level) $s .= " , bo_link_level = '$bo_link_level' ";
if ($chk_upload_level) $s .= " , bo_upload_level = '$bo_upload_level' ";
if ($chk_download_level) $s .= " , bo_download_level = '$bo_download_level' ";
if ($chk_html_level) $s .= " , bo_html_level = '$bo_html_level' ";
if ($chk_trackback_level) $s .= " , bo_trackback_level = '$bo_trackback_level' ";
if ($chk_count_modify) $s .= " , bo_count_modify = '$bo_count_modify' ";
if ($chk_count_delete) $s .= " , bo_count_delete = '$bo_count_delete' ";
if ($chk_read_point) $s .= " , bo_read_point = '$bo_read_point' ";
if ($chk_write_point) $s .= " , bo_write_point = '$bo_write_point' ";
if ($chk_comment_point) $s .= " , bo_comment_point = '$bo_comment_point' ";
if ($chk_download_point) $s .= " , bo_download_point = '$bo_download_point' ";
if ($chk_category_list) {
$s .= " , bo_category_list = '$bo_category_list' ";
$s .= " , bo_use_category = '$bo_use_category' ";
$grp_fields = '';
if (is_checked('chk_grp_use')) $grp_fields .= " , bo_use = '{$bo_use}' ";
if (is_checked('chk_grp_admin')) $grp_fields .= " , bo_admin = '{$bo_admin}' ";
if (is_checked('chk_grp_list_level')) $grp_fields .= " , bo_list_level = '{$bo_list_level}' ";
if (is_checked('chk_grp_read_level')) $grp_fields .= " , bo_read_level = '{$bo_read_level}' ";
if (is_checked('chk_grp_write_level')) $grp_fields .= " , bo_write_level = '{$bo_write_level}' ";
if (is_checked('chk_grp_reply_level')) $grp_fields .= " , bo_reply_level = '{$bo_reply_level}' ";
if (is_checked('chk_grp_comment_level')) $grp_fields .= " , bo_comment_level = '{$bo_comment_level}' ";
if (is_checked('chk_grp_link_level')) $grp_fields .= " , bo_link_level = '{$bo_link_level}' ";
if (is_checked('chk_grp_upload_level')) $grp_fields .= " , bo_upload_level = '{$bo_upload_level}' ";
if (is_checked('chk_grp_download_level')) $grp_fields .= " , bo_download_level = '{$bo_download_level}' ";
if (is_checked('chk_grp_html_level')) $grp_fields .= " , bo_html_level = '{$bo_html_level}' ";
if (is_checked('chk_grp_count_modify')) $grp_fields .= " , bo_count_modify = '{$bo_count_modify}' ";
if (is_checked('chk_grp_count_delete')) $grp_fields .= " , bo_count_delete = '{$bo_count_delete}' ";
if (is_checked('chk_grp_read_point')) $grp_fields .= " , bo_read_point = '{$bo_read_point}' ";
if (is_checked('chk_grp_write_point')) $grp_fields .= " , bo_write_point = '{$bo_write_point}' ";
if (is_checked('chk_grp_comment_point')) $grp_fields .= " , bo_comment_point = '{$bo_comment_point}' ";
if (is_checked('chk_grp_download_point')) $grp_fields .= " , bo_download_point = '{$bo_download_point}' ";
if (is_checked('chk_grp_category_list')) {
$grp_fields .= " , bo_category_list = '{$bo_category_list}' ";
$grp_fields .= " , bo_use_category = '{$bo_use_category}' ";
}
if ($chk_use_sideview) $s .= " , bo_use_sideview = '$bo_use_sideview' ";
if ($chk_use_file_content) $s .= " , bo_use_file_content = '$bo_use_file_content' ";
if ($chk_use_comment) $s .= " , bo_use_comment = '$bo_use_comment' ";
if ($chk_use_secret) $s .= " , bo_use_secret = '$bo_use_secret' ";
if ($chk_use_dhtml_editor) $s .= " , bo_use_dhtml_editor = '$bo_use_dhtml_editor' ";
if ($chk_use_rss_view) $s .= " , bo_use_rss_view = '$bo_use_rss_view' ";
if ($chk_use_good) $s .= " , bo_use_good = '$bo_use_good' ";
if ($chk_use_nogood) $s .= " , bo_use_nogood = '$bo_use_nogood' ";
if ($chk_use_name) $s .= " , bo_use_name = '$bo_use_name' ";
if ($chk_use_signature) $s .= " , bo_use_signature = '$bo_use_signature' ";
if ($chk_use_ip_view) $s .= " , bo_use_ip_view = '$bo_use_ip_view' ";
if ($chk_use_trackback) $s .= " , bo_use_trackback = '$bo_use_trackback' ";
if ($chk_use_list_view) $s .= " , bo_use_list_view = '$bo_use_list_view' ";
if ($chk_use_list_content) $s .= " , bo_use_list_content = '$bo_use_list_content' ";
if ($chk_use_email) $s .= " , bo_use_email = '$bo_use_email' ";
if ($chk_skin) $s .= " , bo_skin = '$bo_skin' ";
if ($chk_gallery_cols) $s .= " , bo_gallery_cols = '$bo_gallery_cols' ";
if ($chk_table_width) $s .= " , bo_table_width = '$bo_table_width' ";
if ($chk_page_rows) $s .= " , bo_page_rows = '$bo_page_rows' ";
if ($chk_subject_len) $s .= " , bo_subject_len = '$bo_subject_len' ";
if ($chk_new) $s .= " , bo_new = '$bo_new' ";
if ($chk_hot) $s .= " , bo_hot = '$bo_hot' ";
if ($chk_image_width) $s .= " , bo_image_width = '$bo_image_width' ";
if ($chk_reply_order) $s .= " , bo_reply_order = '$bo_reply_order' ";
if ($chk_disable_tags) $s .= " , bo_disable_tags = '$bo_disable_tags' ";
if ($chk_sort_field) $s .= " , bo_sort_field = '$bo_sort_field' ";
if ($chk_write_min) $s .= " , bo_write_min = '$bo_write_min' ";
if ($chk_write_max) $s .= " , bo_write_max = '$bo_write_max' ";
if ($chk_comment_min) $s .= " , bo_comment_min = '$bo_comment_min' ";
if ($chk_comment_max) $s .= " , bo_comment_max = '$bo_comment_max' ";
if ($chk_upload_count) $s .= " , bo_upload_count = '$bo_upload_count' ";
if ($chk_upload_size) $s .= " , bo_upload_size = '$bo_upload_size' ";
if ($chk_include_head) $s .= " , bo_include_head = '$bo_include_head' ";
if ($chk_include_tail) $s .= " , bo_include_tail = '$bo_include_tail' ";
if ($chk_content_head) $s .= " , bo_content_head = '$bo_content_head' ";
if ($chk_content_tail) $s .= " , bo_content_tail = '$bo_content_tail' ";
if ($chk_insert_content) $s .= " , bo_insert_content = '$bo_insert_content' ";
if ($chk_use_search) $s .= " , bo_use_search = '$bo_use_search' ";
if ($chk_order_search) $s .= " , bo_order_search = '$bo_order_search' ";
if (is_checked('chk_grp_use_sideview')) $grp_fields .= " , bo_use_sideview = '{$bo_use_sideview}' ";
if (is_checked('chk_grp_use_file_content')) $grp_fields .= " , bo_use_file_content = '{$bo_use_file_content}' ";
if (is_checked('chk_grp_use_secret')) $grp_fields .= " , bo_use_secret = '{$bo_use_secret}' ";
if (is_checked('chk_grp_use_dhtml_editor')) $grp_fields .= " , bo_use_dhtml_editor = '{$bo_use_dhtml_editor}' ";
if (is_checked('chk_grp_use_rss_view')) $grp_fields .= " , bo_use_rss_view = '{$bo_use_rss_view}' ";
if (is_checked('chk_grp_use_good')) $grp_fields .= " , bo_use_good = '{$bo_use_good}' ";
if (is_checked('chk_grp_use_nogood')) $grp_fields .= " , bo_use_nogood = '{$bo_use_nogood}' ";
if (is_checked('chk_grp_use_name')) $grp_fields .= " , bo_use_name = '{$bo_use_name}' ";
if (is_checked('chk_grp_use_signature')) $grp_fields .= " , bo_use_signature = '{$bo_use_signature}' ";
if (is_checked('chk_grp_use_ip_view')) $grp_fields .= " , bo_use_ip_view = '{$bo_use_ip_view}' ";
if (is_checked('chk_grp_use_list_view')) $grp_fields .= " , bo_use_list_view = '{$bo_use_list_view}' ";
if (is_checked('chk_grp_use_list_content')) $grp_fields .= " , bo_use_list_content = '{$bo_use_list_content}' ";
if (is_checked('chk_grp_use_email')) $grp_fields .= " , bo_use_email = '{$bo_use_email}' ";
if (is_checked('chk_grp_skin')) $grp_fields .= " , bo_skin = '{$bo_skin}' ";
if (is_checked('chk_grp_mobile_skin')) $grp_fields .= " , bo_mobile_skin = '{$bo_mobile_skin}' ";
if (is_checked('chk_grp_gallery_cols')) $grp_fields .= " , bo_gallery_cols = '{$bo_gallery_cols}' ";
if (is_checked('chk_grp_gallery_width')) $grp_fields .= " , bo_gallery_width = '{$bo_gallery_width}' ";
if (is_checked('chk_grp_gallery_height')) $grp_fields .= " , bo_gallery_height = '{$bo_gallery_height}' ";
if (is_checked('chk_grp_mobile_gallery_cols')) $grp_fields .= " , bo_mobile_gallery_cols = '{$bo_mobile_gallery_cols}' ";
if (is_checked('chk_grp_mobile_gallery_width')) $grp_fields .= " , bo_mobile_gallery_width = '{$bo_mobile_gallery_width}' ";
if (is_checked('chk_grp_mobile_gallery_height'))$grp_fields .= " , bo_mobile_gallery_height = '{$bo_mobile_gallery_height}' ";
if (is_checked('chk_grp_table_width')) $grp_fields .= " , bo_table_width = '{$bo_table_width}' ";
if (is_checked('chk_grp_page_rows')) $grp_fields .= " , bo_page_rows = '{$bo_page_rows}' ";
if (is_checked('chk_grp_subject_len')) $grp_fields .= " , bo_subject_len = '{$bo_subject_len}' ";
if (is_checked('chk_grp_new')) $grp_fields .= " , bo_new = '{$bo_new}' ";
if (is_checked('chk_grp_hot')) $grp_fields .= " , bo_hot = '{$bo_hot}' ";
if (is_checked('chk_grp_image_width')) $grp_fields .= " , bo_image_width = '{$bo_image_width}' ";
if (is_checked('chk_grp_reply_order')) $grp_fields .= " , bo_reply_order = '{$bo_reply_order}' ";
if (is_checked('chk_grp_sort_field')) $grp_fields .= " , bo_sort_field = '{$bo_sort_field}' ";
if (is_checked('chk_grp_write_min')) $grp_fields .= " , bo_write_min = '{$bo_write_min}' ";
if (is_checked('chk_grp_write_max')) $grp_fields .= " , bo_write_max = '{$bo_write_max}' ";
if (is_checked('chk_grp_comment_min')) $grp_fields .= " , bo_comment_min = '{$bo_comment_min}' ";
if (is_checked('chk_grp_comment_max')) $grp_fields .= " , bo_comment_max = '{$bo_comment_max}' ";
if (is_checked('chk_grp_upload_count')) $grp_fields .= " , bo_upload_count = '{$bo_upload_count}' ";
if (is_checked('chk_grp_upload_size')) $grp_fields .= " , bo_upload_size = '{$bo_upload_size}' ";
if (is_checked('chk_grp_include_head')) $grp_fields .= " , bo_include_head = '{$bo_include_head}' ";
if (is_checked('chk_grp_include_tail')) $grp_fields .= " , bo_include_tail = '{$bo_include_tail}' ";
if (is_checked('chk_grp_content_head')) $grp_fields .= " , bo_content_head = '{$bo_content_head}' ";
if (is_checked('chk_grp_content_tail')) $grp_fields .= " , bo_content_tail = '{$bo_content_tail}' ";
if (is_checked('chk_grp_insert_content')) $grp_fields .= " , bo_insert_content = '{$bo_insert_content}' ";
if (is_checked('chk_grp_use_search')) $grp_fields .= " , bo_use_search = '{$bo_use_search}' ";
if (is_checked('chk_grp_order')) $grp_fields .= " , bo_order = '{$bo_order}' ";
for ($i=1; $i<=10; $i++) {
if ($_POST["chk_{$i}"]) {
$s .= " , bo_{$i}_subj = '".$_POST["bo_{$i}_subj"]."' ";
$s .= " , bo_{$i} = '".$_POST["bo_{$i}"]."' ";
if (is_checked('chk_grp_'.$i)) {
$grp_fields .= " , bo_{$i}_subj = '".$_POST['bo_'.$i.'_subj']."' ";
$grp_fields .= " , bo_{$i} = '".$_POST['bo_'.$i]."' ";
}
}
if ($s) {
$sql = " update $g4[board_table]
set bo_table = bo_table
{$s}
where gr_id = '$gr_id' ";
sql_query($sql);
if ($grp_fields) {
sql_query(" update {$g4['board_table']} set bo_table = bo_table {$grp_fields} where gr_id = '$gr_id' ");
}
if ($_FILES[bo_image_head][name]) {
$bo_image_head_path = "$board_path/$bo_image_head_urlencode";
move_uploaded_file($_FILES[bo_image_head][tmp_name], $bo_image_head_path);
chmod($bo_image_head_path, 0606);
// 모든 게시판 동일 옵션 적용
$all_fields = '';
if (is_checked('chk_all_use')) $all_fields .= " , bo_use = '{$bo_use}' ";
if (is_checked('chk_all_admin')) $all_fields .= " , bo_admin = '{$bo_admin}' ";
if (is_checked('chk_all_list_level')) $all_fields .= " , bo_list_level = '{$bo_list_level}' ";
if (is_checked('chk_all_read_level')) $all_fields .= " , bo_read_level = '{$bo_read_level}' ";
if (is_checked('chk_all_write_level')) $all_fields .= " , bo_write_level = '{$bo_write_level}' ";
if (is_checked('chk_all_reply_level')) $all_fields .= " , bo_reply_level = '{$bo_reply_level}' ";
if (is_checked('chk_all_comment_level')) $all_fields .= " , bo_comment_level = '{$bo_comment_level}' ";
if (is_checked('chk_all_link_level')) $all_fields .= " , bo_link_level = '{$bo_link_level}' ";
if (is_checked('chk_all_upload_level')) $all_fields .= " , bo_upload_level = '{$bo_upload_level}' ";
if (is_checked('chk_all_download_level')) $all_fields .= " , bo_download_level = '{$bo_download_level}' ";
if (is_checked('chk_all_html_level')) $all_fields .= " , bo_html_level = '{$bo_html_level}' ";
if (is_checked('chk_all_count_modify')) $all_fields .= " , bo_count_modify = '{$bo_count_modify}' ";
if (is_checked('chk_all_count_delete')) $all_fields .= " , bo_count_delete = '{$bo_count_delete}' ";
if (is_checked('chk_all_read_point')) $all_fields .= " , bo_read_point = '{$bo_read_point}' ";
if (is_checked('chk_all_write_point')) $all_fields .= " , bo_write_point = '{$bo_write_point}' ";
if (is_checked('chk_all_comment_point')) $all_fields .= " , bo_comment_point = '{$bo_comment_point}' ";
if (is_checked('chk_all_download_point')) $all_fields .= " , bo_download_point = '{$bo_download_point}' ";
if (is_checked('chk_all_category_list')) {
$all_fields .= " , bo_category_list = '{$bo_category_list}' ";
$all_fields .= " , bo_use_category = '{$bo_use_category}' ";
}
if (is_checked('chk_all_use_sideview')) $all_fields .= " , bo_use_sideview = '{$bo_use_sideview}' ";
if (is_checked('chk_all_use_file_content')) $all_fields .= " , bo_use_file_content = '{$bo_use_file_content}' ";
if (is_checked('chk_all_use_secret')) $all_fields .= " , bo_use_secret = '{$bo_use_secret}' ";
if (is_checked('chk_all_use_dhtml_editor')) $all_fields .= " , bo_use_dhtml_editor = '{$bo_use_dhtml_editor}' ";
if (is_checked('chk_all_use_rss_view')) $all_fields .= " , bo_use_rss_view = '{$bo_use_rss_view}' ";
if (is_checked('chk_all_use_good')) $all_fields .= " , bo_use_good = '{$bo_use_good}' ";
if (is_checked('chk_all_use_nogood')) $all_fields .= " , bo_use_nogood = '{$bo_use_nogood}' ";
if (is_checked('chk_all_use_name')) $all_fields .= " , bo_use_name = '{$bo_use_name}' ";
if (is_checked('chk_all_use_signature')) $all_fields .= " , bo_use_signature = '{$bo_use_signature}' ";
if (is_checked('chk_all_use_ip_view')) $all_fields .= " , bo_use_ip_view = '{$bo_use_ip_view}' ";
if (is_checked('chk_all_use_list_view')) $all_fields .= " , bo_use_list_view = '{$bo_use_list_view}' ";
if (is_checked('chk_all_use_list_content')) $all_fields .= " , bo_use_list_content = '{$bo_use_list_content}' ";
if (is_checked('chk_all_use_email')) $all_fields .= " , bo_use_email = '{$bo_use_email}' ";
if (is_checked('chk_all_skin')) $all_fields .= " , bo_skin = '{$bo_skin}' ";
if (is_checked('chk_all_mobile_skin')) $all_fields .= " , bo_mobile_skin = '{$bo_mobile_skin}' ";
if (is_checked('chk_all_gallery_cols')) $all_fields .= " , bo_gallery_cols = '{$bo_gallery_cols}' ";
if (is_checked('chk_all_gallery_width')) $all_fields .= " , bo_gallery_width = '{$bo_gallery_width}' ";
if (is_checked('chk_all_gallery_height')) $all_fields .= " , bo_gallery_height = '{$bo_gallery_height}' ";
if (is_checked('chk_all_mobile_gallery_cols')) $all_fields .= " , bo_mobile_gallery_cols = '{$bo_mobile_gallery_cols}' ";
if (is_checked('chk_all_mobile_gallery_width')) $all_fields .= " , bo_mobile_gallery_width = '{$bo_mobile_gallery_width}' ";
if (is_checked('chk_all_mobile_gallery_height'))$all_fields .= " , bo_mobile_gallery_height = '{$bo_mobile_gallery_height}' ";
if (is_checked('chk_all_table_width')) $all_fields .= " , bo_table_width = '{$bo_table_width}' ";
if (is_checked('chk_all_page_rows')) $all_fields .= " , bo_page_rows = '{$bo_page_rows}' ";
if (is_checked('chk_all_subject_len')) $all_fields .= " , bo_subject_len = '{$bo_subject_len}' ";
if (is_checked('chk_all_new')) $all_fields .= " , bo_new = '{$bo_new}' ";
if (is_checked('chk_all_hot')) $all_fields .= " , bo_hot = '{$bo_hot}' ";
if (is_checked('chk_all_image_width')) $all_fields .= " , bo_image_width = '{$bo_image_width}' ";
if (is_checked('chk_all_reply_order')) $all_fields .= " , bo_reply_order = '{$bo_reply_order}' ";
if (is_checked('chk_all_sort_field')) $all_fields .= " , bo_sort_field = '{$bo_sort_field}' ";
if (is_checked('chk_all_write_min')) $all_fields .= " , bo_write_min = '{$bo_write_min}' ";
if (is_checked('chk_all_write_max')) $all_fields .= " , bo_write_max = '{$bo_write_max}' ";
if (is_checked('chk_all_comment_min')) $all_fields .= " , bo_comment_min = '{$bo_comment_min}' ";
if (is_checked('chk_all_comment_max')) $all_fields .= " , bo_comment_max = '{$bo_comment_max}' ";
if (is_checked('chk_all_upload_count')) $all_fields .= " , bo_upload_count = '{$bo_upload_count}' ";
if (is_checked('chk_all_upload_size')) $all_fields .= " , bo_upload_size = '{$bo_upload_size}' ";
if (is_checked('chk_all_include_head')) $all_fields .= " , bo_include_head = '{$bo_include_head}' ";
if (is_checked('chk_all_include_tail')) $all_fields .= " , bo_include_tail = '{$bo_include_tail}' ";
if (is_checked('chk_all_content_head')) $all_fields .= " , bo_content_head = '{$bo_content_head}' ";
if (is_checked('chk_all_content_tail')) $all_fields .= " , bo_content_tail = '{$bo_content_tail}' ";
if (is_checked('chk_all_insert_content')) $all_fields .= " , bo_insert_content = '{$bo_insert_content}' ";
if (is_checked('chk_all_use_search')) $all_fields .= " , bo_use_search = '{$bo_use_search}' ";
if (is_checked('chk_all_order')) $all_fields .= " , bo_order = '{$bo_order}' ";
for ($i=1; $i<=10; $i++) {
if (is_checked('chk_all_'.$i)) {
$all_fields .= " , bo_{$i}_subj = '".$_POST['bo_'.$i.'_subj']."' ";
$all_fields .= " , bo_{$i} = '".$_POST['bo_'.$i]."' ";
}
}
if ($_FILES[bo_image_tail][name]) {
$bo_image_tail_path = "$board_path/$bo_image_tail_urlencode";
move_uploaded_file($_FILES[bo_image_tail][tmp_name], $bo_image_tail_path);
chmod($bo_image_tail_path, 0606);
if ($all_fields) {
sql_query(" update {$g4['board_table']} set bo_table = bo_table {$all_fields} ");
}
goto_url("./board_form.php?w=u&bo_table=$bo_table&$qstr");
delete_cache_latest($bo_table);
// syndication ping
include G4_BBS_PATH.'/syndi/include/include.adm.board_form_update.php';
goto_url("./board_form.php?w=u&bo_table={$bo_table}&amp;{$qstr}");
?>

View File

@ -1,22 +1,15 @@
<?
$sub_menu = "300100";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$token = get_token();
// DHTML 에디터 사용 필드 추가 : 061021
sql_query(" ALTER TABLE `$g4[board_table]` ADD `bo_use_dhtml_editor` TINYINT NOT NULL AFTER `bo_use_secret` ", false);
// RSS 보이기 사용 필드 추가 : 061106
sql_query(" ALTER TABLE `$g4[board_table]` ADD `bo_use_rss_view` TINYINT NOT NULL AFTER `bo_use_dhtml_editor` ", false);
$sql_common = " from $g4[board_table] a ";
$sql_common = " from {$g4['board_table']} a ";
$sql_search = " where (1) ";
if ($is_admin != "super") {
$sql_common .= " , $g4[group_table] b ";
$sql_search .= " and (a.gr_id = b.gr_id and b.gr_admin = '$member[mb_id]') ";
$sql_common .= " , {$g4['group_table']} b ";
$sql_search .= " and (a.gr_id = b.gr_id and b.gr_admin = '{$member['mb_id']}') ";
}
if ($stx) {
@ -28,7 +21,7 @@ if ($stx) {
case "a.gr_id" :
$sql_search .= " ($sfl = '$stx') ";
break;
default :
default :
$sql_search .= " ($sfl like '%$stx%') ";
break;
}
@ -41,208 +34,173 @@ if (!$sst) {
}
$sql_order = " order by $sst $sod ";
$sql = " select count(*) as cnt
$sql_common
$sql_search
$sql_order ";
$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$total_count = $row['cnt'];
$rows = $config[cf_page_rows];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page == "") { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select *
$sql_common
$sql_search
$sql_order
limit $from_record, $rows ";
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$listall = "<a href='$_SERVER[PHP_SELF]'>처음</a>";
$listall = '';
if ($sfl || $stx) // 검색렬일 때만 처음 버튼을 보여줌
$listall = '<a href="'.$_SERVER['PHP_SELF'].'">전체목록</a>';
$g4[title] = "게시판관리";
include_once("./admin.head.php");
$g4['title'] = '게시판관리';
include_once('./admin.head.php');
$colspan = 13;
$colspan = 15;
?>
<script type="text/javascript">
var list_update_php = 'board_list_update.php';
var list_delete_php = 'board_list_delete.php';
</script>
<table width=100% cellpadding=3 cellspacing=1>
<form name=fsearch method=get>
<tr>
<td width=50% align=left><?=$listall?> (게시판수 : <?=number_format($total_count)?>개)</td>
<td width=50% align=right>
<select name=sfl>
<option value='bo_table'>TABLE</option>
<option value='bo_subject'>제목</option>
<option value='a.gr_id'>그룹ID</option>
</select>
<input type=text name=stx class=ed required itemname='검색어' value='<?=$stx?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
</form>
</table>
<form name=fboardlist method=post>
<input type=hidden name=sst value="<?=$sst?>">
<input type=hidden name=sod value="<?=$sod?>">
<input type=hidden name=sfl value="<?=$sfl?>">
<input type=hidden name=stx value="<?=$stx?>">
<input type=hidden name=page value="<?=$page?>">
<input type=hidden name=token value="<?=$token?>">
<table width=100% cellpadding=0 cellspacing=1>
<colgroup width=30>
<colgroup width=>
<colgroup width=100>
<colgroup width=100>
<colgroup width=55>
<colgroup width=55>
<colgroup width=55>
<colgroup width=55>
<colgroup width=35>
<colgroup width=35>
<colgroup width=80>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td rowspan=2><input type=checkbox name=chkall value="1" onclick="check_all(this.form)"></td>
<td rowspan=2><?=subject_sort_link("bo_table")?>TABLE</a></td>
<td colspan=2><?=subject_sort_link("bo_subject")?>제목</a></td>
<td rowspan=2 title="글읽기 포인트"><?=subject_sort_link("bo_read_point")?>읽기<br>포인트</a></td>
<td rowspan=2 title="글쓰기 포인트"><?=subject_sort_link("bo_write_point")?>쓰기<br>포인트</a></td>
<td rowspan=2 title="코멘트쓰기 포인트"><?=subject_sort_link("bo_comment_point")?>코멘트<br>포인트</a></td>
<td rowspan=2 title="다운로드 포인트"><?=subject_sort_link("bo_download_point")?>다운<br>포인트</a></td>
<td rowspan=2 title="검색사용"><?=subject_sort_link("bo_use_search")?>검색<br>사용</a></td>
<td rowspan=2 title="검색순서"><?=subject_sort_link("bo_order_search")?>검색<br>순서</a></td>
<td rowspan=2><a href="./board_form.php"><img src='<?=$g4[admin_path]?>/img/icon_insert.gif' border=0 title='생성'></a></td>
</tr>
<tr class='bgcol1 bold col1 ht center'>
<td><?=subject_sort_link("a.gr_id")?>그룹</a></td>
<td><?=subject_sort_link("bo_skin", "", "desc")?>스킨</a></td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
// 스킨디렉토리
$skin_options = "";
$arr = get_skin_dir("board");
for ($k=0; $k<count($arr); $k++)
{
$option = $arr[$k];
if (strlen($option) > 10)
$option = substr($arr[$k], 0, 18) . "…";
$skin_options .= "<option value='$arr[$k]'>$option</option>";
}
for ($i=0; $row=sql_fetch_array($result); $i++) {
$s_upd = "<a href='./board_form.php?w=u&bo_table=$row[bo_table]&$qstr'><img src='img/icon_modify.gif' border=0 title='수정'></a>";
$s_del = "";
if ($is_admin == "super") {
//$s_del = "<a href=\"javascript:del('./board_delete.php?bo_table=$row[bo_table]&$qstr');\"><img src='img/icon_delete.gif' border=0 title='삭제'></a>";
$s_del = "<a href=\"javascript:post_delete('board_delete.php', '$row[bo_table]');\"><img src='img/icon_delete.gif' border=0 title='삭제'></a>";
}
$s_copy = "<a href=\"javascript:board_copy('$row[bo_table]');\"><img src='img/icon_copy.gif' border=0 title='복사'></a>";
/*
// 스킨디렉토리
$skin_options = "";
$arr = get_skin_dir("board");
for ($k=0; $k<count($arr); $k++)
{
$option = $arr[$k];
if (strlen($option) > 10)
$option = substr($arr[$k], 0, 18) . "…";
$skin_options .= "<option value='$arr[$k]'";
if ($arr[$k] == $row[bo_skin])
$skin_options .= " selected";
$skin_options .= ">$option</option>";
}
*/
$list = $i % 2;
echo "<input type=hidden name=board_table[$i] value='$row[bo_table]'>";
echo "<tr class='list$list col1 ht center'>";
echo "<td rowspan=2 height=25><input type=checkbox name=chk[] value='$i'></td>";
echo "<td rowspan=2><a href='$g4[bbs_path]/board.php?bo_table=$row[bo_table]'><b>$row[bo_table]</b></a></td>";
echo "<td colspan=2 align=left height=25><input type=text class=ed name=bo_subject[$i] value='".get_text($row[bo_subject])."' style='width:99%'></td>";
echo "<td rowspan=2 title='읽기 포인트'><input type=text class=ed name=bo_read_point[$i] value='$row[bo_read_point]' style='width:33px;'></td>";
echo "<td rowspan=2 title='쓰기 포인트'><input type=text class=ed name=bo_write_point[$i] value='$row[bo_write_point]' style='width:33px;'></td>";
echo "<td rowspan=2 title='속글쓰기 포인트'><input type=text class=ed name=bo_comment_point[$i] value='$row[bo_comment_point]' style='width:33px;'></td>";
echo "<td rowspan=2 title='다운로드 포인트'><input type=text class=ed name=bo_download_point[$i] value='$row[bo_download_point]' style='width:33px;'></td>";
echo "<td rowspan=2 title='검색사용'><input type=checkbox name=bo_use_search[$i] ".($row[bo_use_search]?'checked':'')." value='1'></td>";
echo "<td rowspan=2 title='검색순서'><input type=text class=ed name=bo_order_search[$i] value='$row[bo_order_search]' size=2></td>";
echo "<td rowspan=2>$s_upd $s_del $s_copy</td>";
echo "</tr>";
echo "<tr class='list$list col1 ht center'>";
if ($is_admin == "super")
echo "<td align=left>".get_group_select("gr_id[$i]", $row[gr_id])."</td>";
else
echo "<td align=center><input type=hidden name='gr_id[$i]' value='$row[gr_id]'>$row[gr_subject]</td>";
echo "<td align=left><select id=bo_skin_$i name=bo_skin[$i]>$skin_options</select></td>";
echo "</tr>\n";
echo "<script type='text/javascript'>document.getElementById('bo_skin_$i').value='$row[bo_skin]';</script>";
}
if ($i == 0)
echo "<tr><td colspan='$colspan' align=center height=100 bgcolor=#ffffff>자료가 없습니다.</td></tr>";
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$qstr&page=");
echo "<table width=100% cellpadding=3 cellspacing=1>";
echo "<tr><td width=70%>";
echo "<input type=button class='btn1' value='선택수정' onclick=\"btn_check(this.form, 'update')\"> ";
if ($is_admin == "super")
echo "<input type=button class='btn1' value='선택삭제' onclick=\"btn_check(this.form, 'delete')\">";
echo "</td>";
echo "<td width=30% align=right>$pagelist</td></tr></table>\n";
if ($stx)
echo "<script>document.fsearch.sfl.value = '$sfl';</script>";
?>
<form name="fsearch" id="fsearch" method="get">
<fieldset>
<legend>게시판 검색</legend>
<span>
<?=$listall?>
생성된 게시판수 <?=number_format($total_count)?>개
</span>
<select name="sfl" title="검색대상">
<option value="bo_table"<?=get_selected($_GET['sfl'], "bo_subject", true);?>>TABLE</option>
<option value="bo_subject"<?=get_selected($_GET['sfl'], "bo_subject");?>>제목</option>
<option value="a.gr_id"<?=get_selected($_GET['sfl'], "a.gr_id");?>>그룹ID</option>
</select>
<input type="text" name="stx" value="<?=$stx?>" title="검색어(필수)" required class="required frm_input">
<input type="submit" value="검색" class="btn_submit">
</fieldset>
</form>
<script type="text/javascript">
function board_copy(bo_table) {
window.open("./board_copy.php?bo_table="+bo_table, "BoardCopy", "left=10,top=10,width=500,height=200");
}
</script>
<section class="cbox">
<h2>생성된 게시판 목록</h2>
<p>여러개의 게시판 설정을 한번에 바꾸실 때는 게시판 체크기능을 이용하세요.</p>
<?if ($is_admin == 'super') {?>
<div id="btn_add">
<a href="./board_form.php" id="bo_add">게시판 추가</a>
</div>
<?}?>
<form name="fboardlist" id="fboardlist" action="./board_list_update.php" onsubmit="return fboardlist_submit(this);" method="post">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="token" value="<?=$token?>">
<table class="tbl_bo_list">
<thead>
<tr>
<th scope="col"><input type="checkbox" name="chkall" value="1" id="chkall" title="현재 페이지 게시판 전체선택" onclick="check_all(this.form)"></th>
<th scope="col"><?=subject_sort_link('a.gr_id')?>그룹</a></th>
<th scope="col"><?=subject_sort_link('bo_table')?>TABLE</a></th>
<th scope="col"><?=subject_sort_link('bo_skin', '', 'desc')?>스킨</a></th>
<th scope="col"><?=subject_sort_link('bo_mobile_skin', '', 'desc')?>모바일<br>스킨</a></th>
<th scope="col"><?=subject_sort_link('bo_subject')?>제목</a></th>
<th scope="col">읽기P<span class="sound_only">포인트</span></th>
<th scope="col">쓰기P<span class="sound_only">포인트</span></th>
<th scope="col">댓글P<span class="sound_only">포인트</span></th>
<th scope="col">다운P<span class="sound_only">포인트</span></th>
<th scope="col"><?=subject_sort_link('bo_use_search')?>검색<br>사용</a></th>
<th scope="col"><?=subject_sort_link('bo_show_menu')?>메뉴<br>보임</a></th>
<th scope="col"><?=subject_sort_link('bo_order')?>출력<br>순서</a></th>
<th scope="col">접속기기</th>
<th scope="col">관리</th>
</tr>
</thead>
<tbody>
<?
for ($i=0; $row=sql_fetch_array($result); $i++) {
$one_update = '<a href="./board_form.php?w=u&amp;bo_table='.$row['bo_table'].'&amp;'.$qstr.'">수정</a>';
$one_copy = '<a href="./board_copy.php?bo_table='.$row['bo_table'].'" class="board_copy" target="win_board_copy">복사</a>';
?>
<tr>
<td>
<input type="checkbox" name="chk[]" value="<?=$i?>" id="chk_<?=$i?>" title="<?=get_text($row['bo_subject'])?> 게시판선택">
</td>
<td>
<?if ($is_admin == 'super'){?>
<?=get_group_select("gr_id[$i]", $row['gr_id'])?>
<?}else{?>
<input type="hidden" name="gr_id[<?=$i?>]" value="<?=$row['gr_id']?>"><?=$row['gr_subject']?>
<?}?>
</td>
<td class="td_boid">
<input type="hidden" name="board_table[<?=$i?>]" value="<?=$row['bo_table']?>">
<a href="<?=G4_BBS_URL?>/board.php?bo_table=<?=$row['bo_table']?>"><?=$row['bo_table']?></a>
</td>
<td>
<?=get_skin_select('board', 'bo_skin_'.$i, "bo_skin[$i]", $row['bo_skin']);?>
</td>
<td>
<?=get_mobile_skin_select('board', 'bo_mobile_skin_'.$i, "bo_mobile_skin[$i]", $row['bo_mobile_skin']);?>
</td>
<td><input type="text" name="bo_subject[<?=$i?>]" value="<?=get_text($row['bo_subject'])?>" id="bo_subject[<?=$i?>]" title="게시판제목" class="required frm_input" size="10" required="required"></td>
<td><input type="text" name="bo_read_point[<?=$i?>]" value="<?=$row['bo_read_point']?>" title="읽기포인트" class="frm_input" size="2"></td>
<td><input type="text" name="bo_write_point[<?=$i?>]" value="<?=$row['bo_write_point']?>" title="쓰기포인트" class="frm_input" size="2"></td>
<td><input type="text" name="bo_comment_point[<?=$i?>]" value="<?=$row['bo_comment_point']?>" title="댓글포인트" class="frm_input" size="2"></td>
<td><input type="text" name="bo_download_point[<?=$i?>]" value="<?=$row['bo_download_point']?>" title="다운포인트" class="frm_input" size="2"></td>
<td><input type="checkbox" name="bo_use_search[<?=$i?>]" value="1" id="bo_use_search_<?=$i?>" <?=$row['bo_use_search']?"checked":""?> title="선택시 검색사용"></td>
<td><input type="checkbox" name="bo_show_menu[<?=$i?>]" value="1" id="bo_show_menu_<?=$i?>" <?=$row['bo_show_menu']?"checked":""?> title="선택시 메뉴보이기"></td>
<td><input type="text" name="bo_order[<?=$i?>]" value="<?=$row['bo_order']?>" id="bo_order<?=$i?>" title="출력순서" class="frm_input" size="2"></td>
<td>
<select name="bo_device[<?=$i?>]" id="bo_device_<?=$i?>" title="접속기기 선택">
<option value="both"<?=get_selected($row['bo_device'], 'both', true);?>>모두</option>
<option value="pc"<?=get_selected($row['bo_device'], 'pc');?>>PC</option>
<option value="mobile"<?=get_selected($row['bo_device'], 'mobile');?>>모바일</option>
</select>
</td>
<td><?=$one_update?> <?=$one_copy?></td>
</tr>
<?
}
if ($i == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table>
<div class="btn_list">
<input type="submit" name="act_button" value="선택수정" onclick="document.pressed=this.value">
<?if ($is_admin == 'super') {?>
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value">
<a href="./board_form.php">게시판추가</a>
<?}?>
</div>
</form>
</section>
<?=get_paging(G4_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['PHP_SELF'].'?'.$qstr.'&amp;page=');?>
<script>
// POST 방식으로 삭제
function post_delete(action_url, val)
function fboardlist_submit(f)
{
var f = document.fpost;
if (!is_checked("chk[]")) {
alert(document.pressed+" 하실 항목을 하나 이상 선택하세요.");
return false;
}
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
f.bo_table.value = val;
f.action = action_url;
f.submit();
}
if(document.pressed == "선택삭제") {
if(!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false;
}
}
return true;
}
$(function(){
$(".board_copy").click(function(){
window.open(this.href, "win_board_copy", "left=100,top=100,width=550,height=450");
return false;
});
});
</script>
<form name='fpost' method='post'>
<input type='hidden' name='sst' value='<?=$sst?>'>
<input type='hidden' name='sod' value='<?=$sod?>'>
<input type='hidden' name='sfl' value='<?=$sfl?>'>
<input type='hidden' name='stx' value='<?=$stx?>'>
<input type='hidden' name='page' value='<?=$page?>'>
<input type='hidden' name='token' value='<?=$token?>'>
<input type='hidden' name='bo_table'>
</form>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,42 +1,72 @@
<?
$sub_menu = "300100";
include_once("./_common.php");
include_once('./_common.php');
check_demo();
auth_check($auth[$sub_menu], "w");
check_token();
for ($i=0; $i<count($chk); $i++)
{
// 실제 번호를 넘김
$k = $chk[$i];
if ($is_admin != "super")
{
$sql = " select count(*) as cnt from $g4[board_table] a, $g4[group_table] b
where a.gr_id = '{$_POST['gr_id'][$k]}'
and a.gr_id = b.gr_id
and b.gr_admin = '$member[mb_id]' ";
$row = sql_fetch($sql);
if (!$row[cnt])
alert("최고관리자가 아닌 경우 다른 관리자의 게시판($board_table[$k])은 수정이 불가합니다.");
}
$sql = " update $g4[board_table]
set gr_id = '{$_POST['gr_id'][$k]}',
bo_subject = '{$_POST['bo_subject'][$k]}',
bo_skin = '{$_POST['bo_skin'][$k]}',
bo_read_point = '{$_POST['bo_read_point'][$k]}',
bo_write_point = '{$_POST['bo_write_point'][$k]}',
bo_comment_point = '{$_POST['bo_comment_point'][$k]}',
bo_download_point = '{$_POST['bo_download_point'][$k]}',
bo_use_search = '{$_POST['bo_use_search'][$k]}',
bo_order_search = '{$_POST['bo_order_search'][$k]}'
where bo_table = '{$_POST['board_table'][$k]}' ";
sql_query($sql);
if (!count($_POST['chk'])) {
alert($_POST['act_button']." 하실 항목을 하나 이상 체크하세요.");
}
goto_url("./board_list.php?$qstr");
if ($_POST['act_button'] == "선택수정") {
auth_check($auth[$sub_menu], 'w');
for ($i=0; $i<count($_POST['chk']); $i++) {
// 실제 번호를 넘김
$k = $_POST['chk'][$i];
if ($is_admin != 'super') {
$sql = " select count(*) as cnt from {$g4['board_table']} a, {$g4['group_table']} b
where a.gr_id = '{$_POST['gr_id'][$k]}'
and a.gr_id = b.gr_id
and b.gr_admin = '{$member['mb_id']}' ";
$row = sql_fetch($sql);
if (!$row['cnt'])
alert('최고관리자가 아닌 경우 다른 관리자의 게시판('.$board_table[$k].')은 수정이 불가합니다.');
}
$sql = " update {$g4['board_table']}
set gr_id = '{$_POST['gr_id'][$k]}',
bo_subject = '{$_POST['bo_subject'][$k]}',
bo_device = '{$_POST['bo_device'][$k]}',
bo_skin = '{$_POST['bo_skin'][$k]}',
bo_mobile_skin = '{$_POST['bo_mobile_skin'][$k]}',
bo_read_point = '{$_POST['bo_read_point'][$k]}',
bo_write_point = '{$_POST['bo_write_point'][$k]}',
bo_comment_point = '{$_POST['bo_comment_point'][$k]}',
bo_download_point = '{$_POST['bo_download_point'][$k]}',
bo_use_search = '{$_POST['bo_use_search'][$k]}',
bo_show_menu = '{$_POST['bo_show_menu'][$k]}',
bo_order = '{$_POST['bo_order'][$k]}'
where bo_table = '{$_POST['board_table'][$k]}' ";
sql_query($sql);
}
} else if ($_POST['act_button'] == "선택삭제") {
if ($is_admin != 'super')
alert('게시판 삭제는 최고관리자만 가능합니다.');
auth_check($auth[$sub_menu], 'd');
check_token();
// _BOARD_DELETE_ 상수를 선언해야 board_delete.inc.php 가 정상 작동함
define('_BOARD_DELETE_', true);
for ($i=0; $i<count($_POST['chk']); $i++) {
// 실제 번호를 넘김
$k = $_POST['chk'][$i];
// include 전에 $bo_table 값을 반드시 넘겨야 함
$tmp_bo_table = escape_trim($_POST['board_table'][$k]);
include ('./board_delete.inc.php');
}
}
goto_url('./board_list.php?'.$qstr);
?>

View File

@ -1,35 +1,35 @@
<?
$sub_menu = "300200";
include_once("./_common.php");
include_once('./_common.php');
check_demo();
auth_check($auth[$sub_menu], "d");
auth_check($auth[$sub_menu], 'd');
$gr_id = mysql_real_escape_string(trim($_POST['gr_id']));
$row = sql_fetch(" select count(*) as cnt from $g4[board_table] where gr_id = '$gr_id' ");
if ($row[cnt])
alert("이 그룹에 속한 게시판이 존재하여 게시판 그룹을 삭제할 수 없습니다.\\n\\n이 그룹에 속한 게시판을 먼저 삭제하여 주십시오.", "./board_list.php?sfl=gr_id&stx=$gr_id");
$row = sql_fetch(" select count(*) as cnt from {$g4['board_table']} where gr_id = '{$gr_id}' ");
if ($row['cnt'])
alert('이 그룹에 속한 게시판이 존재하여 게시판 그룹을 삭제할 수 없습니다.\\n\\n이 그룹에 속한 게시판을 먼저 삭제하여 주십시오.', './board_list.php?sfl=gr_id&amp;stx='.$gr_id);
/*
// _BOARD_DELETE_ 상수를 선언해야 board_delete.inc.php 가 정상 작동함
define("_BOARD_DELETE_", TRUE);
$sql = " select * from $g4[board_table] where gr_id = '$gr_id' ";
$sql = " select * from $g4['board_table'] where gr_id = '$gr_id' ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result)) {
$tmp_bo_table = $row[bo_table];
$tmp_bo_table = $row['bo_table'];
include ('./board_delete.inc.php');
}
*/
// 그룹 삭제
sql_query(" delete from $g4[group_table] where gr_id = '$gr_id' ");
sql_query(" delete from {$g4['group_table']} where gr_id = '{$gr_id}' ");
// 그룹접근 회원 삭제
sql_query(" delete from $g4[group_member_table] where gr_id = '$gr_id' ");
sql_query(" delete from {$g4['group_member_table']} where gr_id = '{$gr_id}' ");
goto_url("boardgroup_list.php?$qstr");
goto_url('boardgroup_list.php?'.$qstr);
?>

View File

@ -1,112 +1,149 @@
<?
$sub_menu = "300200";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
$token = get_token();
if ($is_admin != 'super' && $w == '') alert('최고관리자만 접근 가능합니다.');
if ($is_admin != "super" && $w == "") alert("최고관리자만 접근 가능합니다.");
$html_title = "게시판그룹";
if ($w == "")
{
$gr_id_attr = "required";
$gr[gr_use_access] = 0;
$html_title .= " 생성";
}
else if ($w == "u")
{
$gr_id_attr = "readonly style='background-color:#dddddd'";
$gr = sql_fetch(" select * from $g4[group_table] where gr_id = '$gr_id' ");
$html_title .= " 수정";
}
$html_title = '게시판그룹';
if ($w == '') {
$gr_id_attr = 'required';
$sound_only = '<strong class="sound_only">필수</strong>';
$gr['gr_use_access'] = 0;
$html_title .= ' 생성';
} else if ($w == 'u') {
$gr_id_attr = 'readonly';
$gr = sql_fetch(" select * from {$g4['group_table']} where gr_id = '$gr_id' ");
$html_title .= ' 수정';
}
else
alert("제대로 된 값이 넘어오지 않았습니다.");
alert('제대로 된 값이 넘어오지 않았습니다.');
$g4[title] = $html_title;
include_once("./admin.head.php");
if (!isset($group['gr_device'])) {
sql_query(" ALTER TABLE `{$g4['group_table']}` ADD `gr_device` ENUM('both','pc','mobile') NOT NULL DEFAULT 'both' AFTER `gr_subject` ", false);
}
if (!isset($group['gr_show_menu'])) {
sql_query(" ALTER TABLE `{$g4['group_table']}` ADD `gr_show_menu` TINYINT NOT NULL DEFAULT '0' AFTER `gr_use_access`, ADD `gr_order` INT NOT NULL DEFAULT '0' AFTER `gr_show_menu` ", false);
}
$g4['title'] = $html_title;
include_once('./admin.head.php');
?>
<form name=fboardgroup method=post onsubmit="return fboardgroup_check(this);" autocomplete="off">
<input type=hidden name=w value='<?=$w?>'>
<input type=hidden name=sfl value='<?=$sfl?>'>
<input type=hidden name=stx value='<?=$stx?>'>
<input type=hidden name=sst value='<?=$sst?>'>
<input type=hidden name=sod value='<?=$sod?>'>
<input type=hidden name=page value='<?=$page?>'>
<input type=hidden name=token value='<?=$token?>'>
<table width=100% cellpadding=0 cellspacing=0>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=30% class='col2 pad2'>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=30% class='col2 pad2'>
<tr class='ht'>
<td colspan=4 class=title align=left><img src='<?=$g4[admin_path]?>/img/icon_title.gif'> <?=$html_title?></td>
</tr>
<tr><td colspan=4 class='line1'></td></tr>
<tr class='ht'>
<td>그룹 ID</td>
<td colspan=3><input type='text' class=ed name=gr_id size=11 maxlength=10 <?=$gr_id_attr?> alphanumericunderline itemname='그룹 아이디' value='<?=$group[gr_id]?>'> 영문자, 숫자, _ 만 가능 (공백없이)</td>
</tr>
<tr class='ht'>
<td>그룹 제목</td>
<td colspan=3>
<input type='text' class=ed name=gr_subject size=40 required itemname='그룹 제목' value='<?=get_text($group[gr_subject])?>'>
<?
if ($w == 'u')
echo "<input type=button class='btn1' value='게시판생성' onclick=\"location.href='./board_form.php?gr_id=$gr_id';\">";
?>
</td>
</tr>
<tr class='ht'>
<td>그룹 관리자</td>
<td colspan=3>
<?
if ($is_admin == "super")
//echo get_member_id_select("gr_admin", 9, $row[gr_admin]);
echo "<input type='text' class=ed name='gr_admin' value='$gr[gr_admin]' maxlength=20>";
else
echo "<input type=hidden name='gr_admin' value='$gr[gr_admin]' size=40>$gr[gr_admin]";
?></td>
</tr>
<tr class='ht'>
<td>접근회원사용</td>
<td colspan=3>
<input type=checkbox name=gr_use_access value='1' <?=$gr[gr_use_access]?'checked':'';?>>사용
<?=help("사용에 체크하시면 이 그룹에 속한 게시판은 접근가능한 회원만 접근이 가능합니다.")?>
</td>
</tr>
<tr class='ht'>
<td>접근회원수</td>
<td colspan=3>
<?
// 접근회원수
$sql1 = " select count(*) as cnt from $g4[group_member_table] where gr_id = '$gr_id' ";
$row1 = sql_fetch($sql1);
echo "<a href='./boardgroupmember_list.php?gr_id=$gr_id'>$row1[cnt]</a>";
?>
</td>
</tr>
<div class="cbox">
<p>
게시판을 생성하시려면 1개 이상의 게시판그룹이 필요합니다.<br>
게시판그룹을 이용하시면 더 효과적으로 게시판을 관리할 수 있습니다.
</p>
<form name="fboardgroup" id="fboardgroup" action="./boardgroup_form_update.php" onsubmit="return fboardgroup_check(this);" method="post" autocomplete="off">
<input type="hidden" name="w" value="<?=$w?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="page" value="<?=$page?>">
<? for ($i=1; $i<=10; $i=$i+2) { $k=$i+1; ?>
<tr class='ht'>
<td><input type=text class=ed name='gr_<?=$i?>_subj' value='<?=get_text($group["gr_{$i}_subj"])?>' title='여분필드 <?=$i?> 제목' style='text-align:right;font-weight:bold;' size=15></td>
<td><input type='text' class=ed style='width:99%;' name=gr_<?=$i?> value='<?=$gr["gr_$i"]?>' title='여분필드 <?=$i?> 설정값'></td>
<td><input type=text class=ed name='gr_<?=$k?>_subj' value='<?=get_text($group["gr_{$k}_subj"])?>' title='여분필드 <?=$k?> 제목' style='text-align:right;font-weight:bold;' size=15></td>
<td><input type='text' class=ed style='width:99%;' name=gr_<?=$k?> value='<?=$gr["gr_$k"]?>' title='여분필드 <?=$k?> 설정값'></td>
</tr>
<? } ?>
<table id="frm_gr" class="frm_tbl">
<colgroup>
<col class="grid_3">
<col class="grid_15">
</colgroup>
<tbody>
<tr>
<th scope="row"><label for="gr_id">그룹 ID<?=$sound_only?></label></th>
<td><input type="text" name="gr_id" value="<?=$group['gr_id']?>" id="gr_id" class="<?=$gr_id_attr?> alnum_ frm_input" maxlength="10">
<?
if ($w=='')
echo '영문자, 숫자, _ 만 가능 (공백없이)';
else
echo '<a href="'.G4_BBS_URL.'/group.php?gr_id='.$group['gr_id'].'">게시판그룹 바로가기</a>';
?>
</td>
</tr>
<tr>
<th scope="row"><label for="gr_subject">그룹 제목<strong class="sound_only">필수</strong></label></th>
<td>
<input type="text" name="gr_subject" value="<?=get_text($group['gr_subject'])?>" id="gr_subject" required class="required frm_input" size="80">
<?
if ($w == 'u')
echo '<a href="./board_form.php?gr_id='.$gr_id.'">게시판생성</a>';
?>
</td>
</tr>
<tr>
<th scope="row"><label for="gr_device">접속기기</label></th>
<td>
<?=help("PC 와 모바일 사용을 구분합니다.")?>
<select id="gr_device_" name="gr_device">
<option value="both"<?=get_selected($group['gr_device'], 'both', true);?>>PC와 모바일에서 모두 사용</option>
<option value="pc"<?=get_selected($group['gr_device'], 'pc');?>>PC 전용</option>
<option value="mobile"<?=get_selected($group['gr_device'], 'mobile');?>>모바일 전용</option>
</select>
</td>
</tr>
<tr>
<th scope="row"><label for="gr_admin">그룹 관리자</label></th>
<td>
<?
if ($is_admin == 'super')
echo '<input type="text" id="gr_admin" name="gr_admin" class="frm_input" value="'.$gr['gr_admin'].'" maxlength="20">';
else
echo '<input type="hidden" id="gr_admin" name="gr_admin" value="'.$gr['gr_admin'].'">'.$gr['gr_admin'];
?>
</td>
</tr>
<tr>
<th scope="row"><label for="gr_use_access">접근회원사용</label></th>
<td>
<?=help("사용에 체크하시면 이 그룹에 속한 게시판은 접근가능한 회원만 접근이 가능합니다.")?>
<input type="checkbox" name="gr_use_access" value="1" id="gr_use_access" <?=$gr['gr_use_access']?'checked':'';?>>
사용
</td>
</tr>
<tr>
<th scope="row">접근회원수</th>
<td>
<?
// 접근회원수
$sql1 = " select count(*) as cnt from {$g4['group_member_table']} where gr_id = '{$gr_id}' ";
$row1 = sql_fetch($sql1);
echo '<a href="./boardgroupmember_list.php?gr_id='.$gr_id.'">'.$row1['cnt'].'</a>';
?>
</td>
</tr>
<tr>
<th scope="row"><label for="gr_show_menu">메뉴보이기</label></th>
<td>
<?=help("사용에 체크하시면 게시판그룹 제목을 메뉴에 출력합니다.")?>
<input type="checkbox" name="gr_show_menu" value="1" id="gr_show_menu" <?=$gr['gr_show_menu']?'checked':'';?>>
사용
</td>
</tr>
<? for ($i=1;$i<=10;$i++) { ?>
<tr>
<th scope="row">회원여분필드<?=$i?></th>
<td class="td_gr_extra">
<label for="gr_<?=$i?>_subj">여분필드 <?=$i?> 제목</label>
<input type="text" name="gr_<?=$i?>_subj" value="<?=get_text($group['gr_'.$i.'_subj'])?>" id="gr_<?=$i?>_subj" class="frm_input">
<label for="gr_<?=$i?>">여분필드 <?=$i?> 내용</label>
<input type="text" name="gr_<?=$i?>" value="<?=$gr['gr_'.$i]?>" id="gr_<?=$i?>" class="frm_input">
</td>
</tr>
<? } ?>
</tbody>
</table>
<tr><td colspan=4 class='line2'></td></tr>
</table>
<div class="btn_confirm">
<input type="submit" class="btn_submit" accesskey="s" value="확인">
<a href="./boardgroup_list.php?<?=$qstr?>">목록</a>
</div>
<p align=center>
<input type=submit class=btn1 accesskey='s' value=' 확 인 '>&nbsp;
<input type=button class=btn1 value=' 목 록 ' onclick="document.location.href='./boardgroup_list.php?<?=$qstr?>';">
</form>
</form>
</div>
<script type='text/javascript'>
<script>
if (document.fboardgroup.w.value == '')
document.fboardgroup.gr_id.focus();
else
@ -114,11 +151,11 @@ else
function fboardgroup_check(f)
{
f.action = "./boardgroup_form_update.php";
f.action = './boardgroup_form_update.php';
return true;
}
</script>
<?
include_once ("./admin.tail.php");
include_once ('./admin.tail.php');
?>

View File

@ -1,66 +1,73 @@
<?
$sub_menu = "300200";
include_once("./_common.php");
include_once('./_common.php');
if ($w == 'u')
check_demo();
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
if ($is_admin != "super" && $w == "") alert("최고관리자만 접근 가능합니다.");
if ($is_admin != 'super' && $w == '') alert('최고관리자만 접근 가능합니다.');
if (!preg_match("/^([A-Za-z0-9_]{1,10})$/", $gr_id))
alert("그룹 ID는 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (10자 이내)");
if (!preg_match("/^([A-Za-z0-9_]{1,10})$/", $_POST['gr_id']))
alert('그룹 ID는 공백없이 영문자, 숫자, _ 만 사용 가능합니다. (10자 이내)');
if (!$gr_subject) alert("그룹 제목을 입력하세요.");
if (!$gr_subject) alert('그룹 제목을 입력하세요.');
check_token();
$sql_common = " gr_subject = '$_POST[gr_subject]',
gr_admin = '$_POST[gr_admin]',
gr_use_access = '$_POST[gr_use_access]',
gr_1_subj = '$_POST[gr_1_subj]',
gr_2_subj = '$_POST[gr_2_subj]',
gr_3_subj = '$_POST[gr_3_subj]',
gr_4_subj = '$_POST[gr_4_subj]',
gr_5_subj = '$_POST[gr_5_subj]',
gr_6_subj = '$_POST[gr_6_subj]',
gr_7_subj = '$_POST[gr_7_subj]',
gr_8_subj = '$_POST[gr_8_subj]',
gr_9_subj = '$_POST[gr_9_subj]',
gr_10_subj = '$_POST[gr_10_subj]',
gr_1 = '$_POST[gr_1]',
gr_2 = '$_POST[gr_2]',
gr_3 = '$_POST[gr_3]',
gr_4 = '$_POST[gr_4]',
gr_5 = '$_POST[gr_5]',
gr_6 = '$_POST[gr_6]',
gr_7 = '$_POST[gr_7]',
gr_8 = '$_POST[gr_8]',
gr_9 = '$_POST[gr_9]',
gr_10 = '$_POST[gr_10]' ";
if ($w == "")
{
$sql = " select count(*) as cnt from $g4[group_table] where gr_id = '$_POST[gr_id]' ";
$row = sql_fetch($sql);
if ($row[cnt])
alert("이미 존재하는 그룹 ID 입니다.");
$sql = " insert into $g4[group_table]
set gr_id = '$_POST[gr_id]',
$sql_common ";
sql_query($sql);
}
else if ($w == "u")
{
$sql = " update $g4[group_table]
set $sql_common
where gr_id = '$_POST[gr_id]' ";
sql_query($sql);
}
$sql_common = " gr_subject = '{$_POST['gr_subject']}',
gr_device = '{$_POST['gr_device']}',
gr_admin = '{$_POST['gr_admin']}',
gr_show_menu = '{$_POST['gr_show_menu']}',
gr_1_subj = '{$_POST['gr_1_subj']}',
gr_2_subj = '{$_POST['gr_2_subj']}',
gr_3_subj = '{$_POST['gr_3_subj']}',
gr_4_subj = '{$_POST['gr_4_subj']}',
gr_5_subj = '{$_POST['gr_5_subj']}',
gr_6_subj = '{$_POST['gr_6_subj']}',
gr_7_subj = '{$_POST['gr_7_subj']}',
gr_8_subj = '{$_POST['gr_8_subj']}',
gr_9_subj = '{$_POST['gr_9_subj']}',
gr_10_subj = '{$_POST['gr_10_subj']}',
gr_1 = '{$_POST['gr_1']}',
gr_2 = '{$_POST['gr_2']}',
gr_3 = '{$_POST['gr_3']}',
gr_4 = '{$_POST['gr_4']}',
gr_5 = '{$_POST['gr_5']}',
gr_6 = '{$_POST['gr_6']}',
gr_7 = '{$_POST['gr_7']}',
gr_8 = '{$_POST['gr_8']}',
gr_9 = '{$_POST['gr_9']}',
gr_10 = '{$_POST['gr_10']}' ";
if (isset($_POST['gr_use_access']))
$sql_common .= ", gr_use_access = '{$_POST['gr_use_access']}' ";
else
alert("제대로 된 값이 넘어오지 않았습니다.");
$sql_common .= ", gr_use_access = '' ";
goto_url("./boardgroup_form.php?w=u&gr_id=$gr_id&$qstr");
if ($w == '') {
$sql = " select count(*) as cnt from {$g4['group_table']} where gr_id = '{$_POST['gr_id']}' ";
$row = sql_fetch($sql);
if ($row['cnt'])
alert('이미 존재하는 그룹 ID 입니다.');
$sql = " insert into {$g4['group_table']}
set gr_id = '{$_POST['gr_id']}',
{$sql_common} ";
sql_query($sql);
} else if ($w == "u") {
$sql = " update {$g4['group_table']}
set {$sql_common}
where gr_id = '{$_POST['gr_id']}' ";
sql_query($sql);
} else {
alert('제대로 된 값이 넘어오지 않았습니다.');
}
// syndication ping
include G4_BBS_PATH.'/syndi/include/include.adm.boardgroup_form_update.php';
goto_url('./boardgroup_form.php?w=u&amp;gr_id='.$gr_id.'&amp;'.$qstr);
?>

View File

@ -1,192 +1,205 @@
<?
$sub_menu = "300200";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$token = get_token();
if (!isset($group['gr_device'])) {
// 게시판 그룹 사용 필드 추가
// both : pc, mobile 둘다 사용
// pc : pc 전용 사용
// mobile : mobile 전용 사용
// none : 사용 안함
sql_query(" ALTER TABLE `{$g4['board_group_table']}` ADD `gr_device` ENUM( 'both', 'pc', 'mobile' ) NOT NULL DEFAULT 'both' AFTER `gr_subject` ", false);
}
$sql_common = " from $g4[group_table] ";
$sql_common = " from {$g4['group_table']} ";
$sql_search = " where (1) ";
if ($is_admin != "super")
$sql_search .= " and (gr_admin = '$member[mb_id]') ";
if ($is_admin != 'super')
$sql_search .= " and (gr_admin = '{$member['mb_id']}') ";
if ($stx) {
$sql_search .= " and ( ";
switch ($sfl) {
case "gr_id" :
case "gr_admin" :
$sql_search .= " ($sfl = '$stx') ";
$sql_search .= " ({$sfl} = '{$stx}') ";
break;
default :
$sql_search .= " ($sfl like '%$stx%') ";
default :
$sql_search .= " ({$sfl} like '%{$stx}%') ";
break;
}
$sql_search .= " ) ";
}
if ($sst)
$sql_order = " order by $sst $sod ";
$sql_order = " order by {$sst} {$sod} ";
else
$sql_order = " order by gr_id asc ";
$sql = " select count(*) as cnt
$sql_common
$sql_search
$sql_order ";
$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$total_count = $row['cnt'];
$rows = $config[cf_page_rows];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select *
$sql_common
$sql_search
$sql_order
limit $from_record, $rows ";
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$listall = "<a href='$_SERVER[PHP_SELF]'>처음</a>";
$listall = '';
if ($sfl || $stx) // 검색렬일 때만 처음 버튼을 보여줌
$listall = '<a href="'.$_SERVER['PHP_SELF'].'">처음</a>';
$g4[title] = "게시판그룹설정";
include_once("./admin.head.php");
$g4['title'] = '게시판그룹설정';
include_once('./admin.head.php');
$colspan = 8;
?>
<script type="text/javascript">
var list_update_php = "./boardgroup_list_update.php";
</script>
<table width=100% cellpadding=3 cellspacing=1>
<form name=fsearch method=get>
<tr>
<td width=50% align=left><?=$listall?> (그룹수 : <?=number_format($total_count)?>개)</td>
<td width=50% align=right>
<select name=sfl>
<option value="gr_subject">제목</option>
<option value="gr_id">ID</option>
<option value="gr_admin">그룹관리자</option>
</select>
<input type=text name=stx class=ed required itemname='검색어' value='<?=$stx?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
<form id="fsearch" name="fsearch" method="get">
<fieldset>
<legend>그룹 검색</legend>
<span>
<?=$listall?>
생성된 그룹수 <?=number_format($total_count)?>개
</span>
<select name="sfl" title="검색대상">
<option value="gr_subject"<?=get_selected($_GET['sfl'], "gr_subject");?>>제목</option>
<option value="gr_id"<?=get_selected($_GET['sfl'], "gr_id");?>>ID</option>
<option value="gr_admin"<?=get_selected($_GET['sfl'], "gr_admin");?>>그룹관리자</option>
</select>
<input type="text" name="stx" value="<?=$stx?>" title="검색어(필수)" required class="required frm_input">
<input type="submit" value="검색" class="btn_submit">
</fieldset>
</form>
</table>
<form name=fboardgrouplist method=post>
<input type=hidden name=sst value='<?=$sst?>'>
<input type=hidden name=sod value='<?=$sod?>'>
<input type=hidden name=sfl value='<?=$sfl?>'>
<input type=hidden name=stx value='<?=$stx?>'>
<input type=hidden name=page value='<?=$page?>'>
<input type=hidden name=token value='<?=$token?>'>
<table width=100% cellpadding=0 cellspacing=1 border=0>
<colgroup width=30>
<colgroup width=120>
<colgroup width=180>
<colgroup width=''>
<colgroup width=80>
<colgroup width=80>
<colgroup width=80>
<colgroup width=60>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td><input type=checkbox name=chkall value="1" onclick="check_all(this.form)"></td>
<td><?=subject_sort_link("gr_id")?>그룹아이디</a></td>
<td><?=subject_sort_link("gr_subject")?>제목</a></td>
<td><?=subject_sort_link("gr_admin")?>그룹관리자</a></td>
<td>게시판</td>
<td>접근사용</td>
<td>접근회원수</td>
<td><? if ($is_admin == "super") { echo "<a href='./boardgroup_form.php'><img src='$g4[admin_path]/img/icon_insert.gif' border=0 title='생성'></a>"; } ?></td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<section class="cbox">
<h2>게시판그룹 목록</h2>
<p>
접근사용 옵션을 설정하시면 관리자가 지정한 회원만 해당 그룹에 접근할 수 있습니다.<br>
접근사용 옵션은 해당 그룹에 속한 모든 게시판에 적용됩니다.
</p>
<?if ($is_admin == 'super') {?>
<div id="btn_add">
<a href="./boardgroup_form.php" id="bo_gr_add">게시판그룹 추가</a>
</div>
<?}?>
<form name="fboardgrouplist" id="fboardgrouplist" action="./boardgroup_list_update.php" onsubmit="return fboardgrouplist_submit(this);" method="post">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="token" value="<?=$token?>">
<table class="tbl_gr_list">
<thead>
<tr>
<th scope="col"><input type="checkbox" name="chkall" value="1" id="chkall" title="현재 페이지 그룹 전체선택" onclick="check_all(this.form)"></th>
<th scope="col"><?=subject_sort_link('gr_id')?>그룹아이디</a></th>
<th scope="col"><?=subject_sort_link('gr_subject')?>제목</a></th>
<?if ($is_admin == 'super'){?><th scope="col"><?=subject_sort_link('gr_admin')?>그룹관리자</a></th><?}?>
<th scope="col">게시판<br>갯수</th>
<th scope="col">접근<br>사용</th>
<th scope="col">접근<br>회원수</th>
<th scope="col">메뉴<br>보임</th>
<th scope="col"><?=subject_sort_link('gr_order')?>출력<br>순서</a></th>
<th scope="col">접속기기</th>
<th scope="col">관리</th>
</tr>
</thead>
<tbody>
<?
for ($i=0; $row=sql_fetch_array($result); $i++)
{
// 접근회원수
$sql1 = " select count(*) as cnt from {$g4['group_member_table']} where gr_id = '{$row['gr_id']}' ";
$row1 = sql_fetch($sql1);
// 게시판수
$sql2 = " select count(*) as cnt from {$g4['board_table']} where gr_id = '{$row['gr_id']}' ";
$row2 = sql_fetch($sql2);
$s_upd = '<a href="./boardgroup_form.php?'.$qstr.'&amp;w=u&amp;gr_id='.$row['gr_id'].'">수정</a>';
?>
<tr>
<td class="td_chk">
<input type="checkbox" name="chk[]" value="<?=$i?>" id="chk_<?=$i?>" title="<?=$row['gr_subject']?> 그룹선택">
<input type="hidden" name="group_id[<?=$i?>]" value="<?=$row['gr_id']?>">
</td>
<td class="td_grid"><a href="<?=G4_BBS_URL?>/group.php?gr_id=<?=$row['gr_id']?>"><?=$row['gr_id']?></a></td>
<td>
<input type="text" name="gr_subject[<?=$i?>]" value="<?=get_text($row['gr_subject'])?>" id="gr_subject_<?=$i?>" title="그룹제목 수정" class="frm_input">
</td>
<td>
<?if ($is_admin == 'super'){?>
<input type="text" name="gr_admin[<?=$i?>]" value="<?=$row['gr_admin']?>" id="gr_admin_<?=$i?>" title="그룹관리자 수정" class="frm_input" size="10" maxlength="20">
<?}else{?>
<input type="hidden" name="gr_admin[<?=$i?>]" value="<?=$row['gr_admin']?>"><td><?=$row['gr_admin']?>
<?}?>
</td>
<td><a href="./board_list.php?sfl=a.gr_id&amp;stx=<?=$row['gr_id']?>"><?=$row2['cnt']?></a></td>
<td><input type="checkbox" name="gr_use_access[<?=$i?>]" <?=$row['gr_use_access']?'checked':''?> value="1" id="gr_use_access_<?=$i?>" title="선택 시 접근회원 사용"></td>
<td><a href="./boardgroupmember_list.php?gr_id=<?=$row['gr_id']?>"><?=$row1['cnt']?></a></td>
<td><input type="checkbox" name="gr_show_menu[<?=$i?>]" <?=$row['gr_show_menu']?'checked':''?> value="1" id="gr_show_menu_<?=$i?>" title="선택 시 메뉴보이기"></td>
<td>
<input type="text" name="gr_order[<?=$i?>]" value="<?=$row['gr_order']?>" id="gr_order_<?=$i?>" title="출력순서 수정" class="frm_input" size="2">
</td>
<td>
<select id="gr_device_<?=$i?>" name="gr_device[<?=$i?>]" title="접속기기 선택">
<option value="both"<?=get_selected($row['gr_device'], 'both');?>>모두</option>
<option value="pc"<?=get_selected($row['gr_device'], 'pc');?>>PC</option>
<option value="mobile"<?=get_selected($row['gr_device'], 'mobile');?>>모바일</option>
</select>
</td>
<td class="td_smallmng"><?=$s_upd?></td>
</tr>
<?
}
if ($i == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</table>
<div class="btn_list">
<input type="submit" name="act_button" onclick="document.pressed=this.value" value="선택수정">
<input type="submit" name="act_button" onclick="document.pressed=this.value" value="선택삭제">
<a href="./boardgroup_form.php">게시판그룹 추가</a>
</div>
</form>
</section>
<?
for ($i=0; $row=sql_fetch_array($result); $i++)
{
// 접근회원수
$sql1 = " select count(*) as cnt from $g4[group_member_table] where gr_id = '$row[gr_id]' ";
$row1 = sql_fetch($sql1);
// 게시판수
$sql2 = " select count(*) as cnt from $g4[board_table] where gr_id = '$row[gr_id]' ";
$row2 = sql_fetch($sql2);
$s_upd = "<a href='./boardgroup_form.php?$qstr&w=u&gr_id=$row[gr_id]'><img src='img/icon_modify.gif' border=0 title='수정'></a>";
$s_del = "";
if ($is_admin == "super") {
//$s_del = "<a href=\"javascript:del('./boardgroup_delete.php?$qstr&gr_id=$row[gr_id]');\"><img src='img/icon_delete.gif' border=0 title='삭제'></a>";
$s_del = "<a href=\"javascript:post_delete('boardgroup_delete.php', '$row[gr_id]');\"><img src='img/icon_delete.gif' border=0 title='삭제'></a>";
}
$list = $i%2;
echo "<input type=hidden name=gr_id[$i] value='$row[gr_id]'>";
echo "<tr class='list$list' onmouseover=\"this.className='mouseover';\" onmouseout=\"this.className='list$list';\" height=27 align=center>";
echo "<td><input type=checkbox name=chk[] value='$i'></td>";
echo "<td><a href='$g4[bbs_path]/group.php?gr_id=$row[gr_id]'><b>$row[gr_id]</b></a></td>";
echo "<td><input type=text class=ed name=gr_subject[$i] value='".get_text($row[gr_subject])."' size=30></td>";
if ($is_admin == "super")
//echo "<td>".get_member_id_select("gr_admin[$i]", 9, $row[gr_admin])."</td>";
echo "<td><input type=text class=ed name=gr_admin[$i] value='$row[gr_admin]' maxlength=20></td>";
else
echo "<input type=hidden name='gr_admin[$i]' value='$row[gr_admin]'><td>$row[gr_admin]</td>";
echo "<td><a href='./board_list.php?sfl=a.gr_id&stx=$row[gr_id]'>$row2[cnt]</a></td>";
echo "<td><input type=checkbox name=gr_use_access[$i] ".($row[gr_use_access]?'checked':'')." value='1'></td>";
echo "<td><a href='./boardgroupmember_list.php?gr_id=$row[gr_id]'>$row1[cnt]</a></td>";
echo "<td>$s_upd $s_del</td>";
echo "</tr>\n";
}
if ($i == 0)
echo "<tr><td colspan='$colspan' align=center height=100 bgcolor=#ffffff>자료가 없습니다.</td></tr>";
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$qstr&page=");
echo "<table width=100% cellpadding=3 cellspacing=1>";
echo "<tr><td width=70%>";
echo "<input type=button class='btn1' value='선택수정' onclick=\"btn_check(this.form, 'update')\">";
//echo " <input type=button value='선택삭제' onclick=\"btn_check(this.form, 'delete')\">";
echo "</td>";
echo "<td width=30% align=right>$pagelist</td></tr></table>\n";
if ($stx)
echo "<script>document.fsearch.sfl.value = '$sfl';</script>";
$pagelist = get_paging(G4_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, $_SERVER['PHP_SELF'].'?'.$qstr.'&amp;page=');
echo $pagelist;
?>
</form>
<script>
// POST 방식으로 삭제
function post_delete(action_url, val)
function fboardgrouplist_submit(f)
{
var f = document.fpost;
if (!is_checked("chk[]")) {
alert(document.pressed+" 하실 항목을 하나 이상 선택하세요.");
return false;
}
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
f.gr_id.value = val;
f.action = action_url;
f.submit();
}
if(document.pressed == "선택삭제") {
if(!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false;
}
}
return true;
}
</script>
<form name='fpost' method='post'>
<input type='hidden' name='sst' value='<?=$sst?>'>
<input type='hidden' name='sod' value='<?=$sod?>'>
<input type='hidden' name='sfl' value='<?=$sfl?>'>
<input type='hidden' name='stx' value='<?=$stx?>'>
<input type='hidden' name='page' value='<?=$page?>'>
<input type='hidden' name='token' value='<?=$token?>'>
<input type='hidden' name='gr_id'>
</form>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,27 +1,47 @@
<?
$sub_menu = "300200";
include_once("./_common.php");
include_once('./_common.php');
//print_r2($_POST); exit;
check_demo();
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
check_token();
$count = count($_POST['chk']);
for ($i=0; $i<count($chk); $i++)
if(!$count)
alert($_POST['act_button'].'할 게시판그룹을 1개이상 선택해 주세요.');
for ($i=0; $i<$count; $i++)
{
// 실제 번호를 넘김
$k = $chk[$i];
$k = $_POST['chk'][$i];
$gr_id = $_POST['group_id'][$k];
if($_POST['act_button'] == '선택수정') {
$sql = " update {$g4['group_table']}
set gr_subject = '{$_POST['gr_subject'][$k]}',
gr_device = '{$_POST['gr_device'][$k]}',
gr_admin = '{$_POST['gr_admin'][$k]}',
gr_use_access = '{$_POST['gr_use_access'][$k]}',
gr_show_menu = '{$_POST['gr_show_menu'][$k]}',
gr_order = '{$_POST['gr_order'][$k]}'
where gr_id = '{$gr_id}' ";
if ($is_admin != 'super')
$sql .= " and gr_admin = '{$_POST['gr_admin'][$k]}' ";
sql_query($sql);
} else if($_POST['act_button'] == '선택삭제') {
$row = sql_fetch(" select count(*) as cnt from {$g4['board_table']} where gr_id = '$gr_id' ");
if ($row['cnt'])
alert("이 그룹에 속한 게시판이 존재하여 게시판 그룹을 삭제할 수 없습니다.\\n\\n이 그룹에 속한 게시판을 먼저 삭제하여 주십시오.", './board_list.php?sfl=gr_id&amp;stx='.$gr_id);
$sql = " update $g4[group_table]
set gr_subject = '{$_POST[gr_subject][$k]}',
gr_admin = '{$_POST[gr_admin][$k]}',
gr_use_access = '{$_POST[gr_use_access][$k]}'
where gr_id = '{$_POST[gr_id][$k]}' ";
if ($is_admin != "super")
$sql .= " and gr_admin = '{$_POST[gr_admin][$k]}' ";
sql_query($sql);
// 그룹 삭제
sql_query(" delete from {$g4['group_table']} where gr_id = '$gr_id' ");
// 그룹접근 회원 삭제
sql_query(" delete from {$g4['group_member_table']} where gr_id = '$gr_id' ");
}
}
goto_url("./boardgroup_list.php?$qstr");
goto_url('./boardgroup_list.php?'.$qstr);
?>

View File

@ -1,107 +1,116 @@
<?
$sub_menu = "300200";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
$token = get_token();
$mb = get_member($mb_id);
if (!$mb[mb_id])
alert("존재하지 않는 회원입니다.");
if (!$mb['mb_id'])
alert('존재하지 않는 회원입니다.');
$g4[title] = "접근가능그룹선택";
include_once("./admin.head.php");
$g4['title'] = '회원별 접근가능그룹';
include_once('./admin.head.php');
$colspan = 4;
?>
<table width=100% cellpadding=3 cellspacing=1>
<tr>
<td>* <? echo "<a href='./member_form.php?w=u&mb_id=$mb[mb_id]'><b>$mb[mb_id]</b> ($mb[mb_name] / $mb[mb_nick])</a> 님이 접근가능한 그룹 목록"; ?></td>
</tr>
</table>
<table width=100% cellpadding=0 cellspacing=0>
<colgroup width=120>
<colgroup width=''>
<colgroup width=200>
<colgroup width=100>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>그룹아이디</td>
<td>그룹</td>
<td>처리일시</td>
<td>삭제</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
$sql = " select *
from $g4[group_member_table] a,
$g4[group_table] b
where a.mb_id = '$mb[mb_id]'
and a.gr_id = b.gr_id ";
if ($is_admin != 'super')
$sql .= " and b.gr_admin = '$member[mb_id]' ";
$sql .= " order by a.gr_id desc ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
//$s_del = "<a href=\"javascript:del('./boardgroupmember_update.php?w=d&gm_id=$row[gm_id]')\"><img src='img/icon_delete.gif' border=0></a>";
$s_del = "<a href=\"javascript:post_delete('boardgroupmember_update.php', '$row[gm_id]');\"><img src='img/icon_delete.gif' border=0 title='삭제'></a>";
<div class="cbox">
<p>아이디 <?=$mb['mb_id']?>, 이름 <?=$mb['mb_name']?>, 별명 <?=$mb['mb_nick']?>님이 접근가능한 그룹 목록</p>
<form name="fboardgroupmember" id="fboardgroupmember" action="./boardgroupmember_update.php" onsubmit="return fboardgroupmember_submit(this);" method="post">
<input type="hidden" name="sst" value="<?=$sst?>" id="sst">
<input type="hidden" name="sod" value="<?=$sod?>" id="sod">
<input type="hidden" name="sfl" value="<?=$sfl?>" id="sfl">
<input type="hidden" name="stx" value="<?=$stx?>" id="stx">
<input type="hidden" name="page" value="<?=$page?>" id="page">
<input type="hidden" name="token" value="<?=$token?>" id="token">
<input type="hidden" name="mb_id" value="<?=$mb['mb_id']?>" id="mb_id">
<input type="hidden" name="w" value="d" id="w">
<table>
<thead>
<tr>
<th scope="col"><input type="checkbox" name="chkall" value="1" id="chkall" title="현재 페이지 접근가능그룹 전체선택" onclick="check_all(this.form)"></th>
<th scope="col">그룹아이디</th>
<th scope="col">그룹</th>
<th scope="col">처리일시</th>
<th scope="col">삭제</th>
</tr>
</thead>
<tbody>
<?
$sql = " select * from {$g4['group_member_table']} a, {$g4['group_table']} b
where a.mb_id = '{$mb['mb_id']}'
and a.gr_id = b.gr_id ";
if ($is_admin != 'super')
$sql .= " and b.gr_admin = '{$member['mb_id']}' ";
$sql .= " order by a.gr_id desc ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$s_del = '<a href="javascript:post_delete(\'boardgroupmember_update.php\', \''.$row['gm_id'].'\');">삭제</a>';
?>
<tr>
<td class="td_chk"><input type="checkbox" name="chk[]" value="<?=$row['gm_id']?>" id="chk_<?=$i?>" title="<?=$row['gr_subject']?> 그룹 선택"></td>
<td class="td_grid"><a href="<?=$g4['bbs_path']?>/group.php?gr_id=<?=$row['gr_id']?>"><?=$row['gr_id']?></a></td>
<td class="td_category"><?=$row['gr_subject']?></td>
<td class="td_time"><?=$row['gm_datetime']?></td>
<td class="td_mng"><?=$s_del?></td>
</tr>
<?
}
$list = $i%2;
echo "
<tr class='list$list col1 ht center'>
<td><a href='$g4[bbs_path]/group.php?gr_id=$row[gr_id]'><b>$row[gr_id]</b></a></td>
<td><b>$row[gr_subject]</b></td>
<td>$row[gm_datetime]</td>
<td>$s_del</td>
</tr>";
}
if ($i == 0) {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">접근가능한 그룹이 없습니다.</td></tr>';
}
?>
</tbody>
</table>
if ($i == 0) {
echo "<tr><td colspan='$colspan' align=center height=100>접근가능한 그룹이 없습니다.</td></tr>";
}
?>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
</table>
<div class="btn_list">
<input type="submit" name="" value="선택삭제">
</div>
</form>
</div>
<p>
<form name=fboardgroupmember_form method=post action='./boardgroupmember_update.php' onsubmit="return boardgroupmember_form_check(this)">
<input type=hidden name=mb_id value='<?=$mb[mb_id]?>'>
<input type=hidden name=token value='<?=$token?>'>
<table width=100% align=center cellpadding=3 cellspacing=1 class=tablebg>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=80% class='col2 pad2'>
<tr>
<td>그룹</td>
<td>
<select name=gr_id>
<option value=''>접근가능 그룹을 선택하세요.
<option value=''>--------------------------
<form name="fboardgroupmember_form" id="fboardgroupmember_form" action="./boardgroupmember_update.php" onsubmit="return boardgroupmember_form_check(this)" method="post">
<input type="hidden" name="mb_id" value="<?=$mb['mb_id']?>" id="mb_id">
<input type="hidden" name="token" value="<?=$token?>" id="token">
<fieldset>
<legend><?=$mb['mb_id']?>님 접근가능그룹 추가</legend>
<label for="gr_id">그룹지정</label>
<select name="gr_id" id="gr_id">
<option value="">접근가능 그룹을 선택하세요.</option>
<?
$sql = " select *
from $g4[group_table]
where gr_use_access = 1 ";
from {$g4['group_table']}
where gr_use_access = 1 ";
//if ($is_admin == 'group') {
if ($is_admin != 'super')
$sql .= " and gr_admin = '$member[mb_id]' ";
$sql .= " and gr_admin = '{$member['mb_id']}' ";
$sql .= " order by gr_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
echo "<option value='$row[gr_id]'>$row[gr_subject]";
echo "<option value=\"".$row['gr_id']."\">".$row['gr_subject']."</option>";
}
?>
</select>
&nbsp;
<input type=submit class=btn1 value=' 확 인 ' accesskey='s'>
</td>
</tr>
</table>
</select>
<input type="submit" value="선택" class="btn_submit" accesskey="s">
<p>게시판 그룹이 존재하지 않는다면 <a href="./boardgroup_form.php">게시판그룹생성하기</a></p>
</fieldset>
</form>
<script type="text/javascript">
function boardgroupmember_form_check(f)
<script>
function fboardgroupmember_submit(f)
{
if (!is_checked("chk[]")) {
alert("선택삭제 하실 항목을 하나 이상 선택하세요.");
return false;
}
return true;
}
function boardgroupmember_form_check(f)
{
if (f.gr_id.value == '') {
alert('접근가능 그룹을 선택하세요.');
@ -112,31 +121,6 @@ function boardgroupmember_form_check(f)
}
</script>
<script>
// POST 방식으로 삭제
function post_delete(action_url, val)
{
var f = document.fpost;
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
f.gm_id.value = val;
f.action = action_url;
f.submit();
}
}
</script>
<form name='fpost' method='post'>
<input type='hidden' name='sst' value='<?=$sst?>'>
<input type='hidden' name='sod' value='<?=$sod?>'>
<input type='hidden' name='sfl' value='<?=$sfl?>'>
<input type='hidden' name='stx' value='<?=$stx?>'>
<input type='hidden' name='page' value='<?=$page?>'>
<input type='hidden' name='token' value='<?=$token?>'>
<input type='hidden' name='w' value='d'>
<input type='hidden' name='gm_id'>
</form>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,23 +1,23 @@
<?
$sub_menu = "300200";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$gr = get_group($gr_id);
if (!$gr[gr_id]) {
alert("존재하지 않는 그룹입니다.");
if (!$gr['gr_id']) {
alert('존재하지 않는 그룹입니다.');
}
$sql_common = " from $g4[group_member_table] a
left outer join $g4[member_table] b on (a.mb_id = b.mb_id) ";
$sql_common = " from {$g4['group_member_table']} a
left outer join {$g4['member_table']} b on (a.mb_id = b.mb_id) ";
$sql_search = " where gr_id = '$gr_id' ";
$sql_search = " where gr_id = '{$gr_id}' ";
// 회원아이디로 검색되지 않던 오류를 수정
if ($stx) {
if (isset($stx) && $stx) {
$sql_search .= " and ( ";
switch ($sfl) {
default :
default :
$sql_search .= " ($sfl like '%$stx%') ";
break;
}
@ -28,139 +28,124 @@ if (!$sst) {
$sst = "gm_datetime";
$sod = "desc";
}
$sql_order = " order by $sst $sod ";
$sql_order = " order by {$sst} {$sod} ";
$sql = " select count(*) as cnt
$sql_common
$sql_search
$sql_order ";
{$sql_common}
{$sql_search}
{$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$total_count = $row['cnt'];
$rows = $config[cf_page_rows];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page == "") $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select *
$sql_common
$sql_search
$sql_order
limit $from_record, $rows ";
$sql = " select *
{$sql_common}
{$sql_search}
{$sql_order}
limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$g4[title] = "접근가능회원";
include_once("./admin.head.php");
$g4['title'] = $gr['gr_subject'].' 그룹 접근가능회원';
include_once('./admin.head.php');
$colspan = 7;
?>
<script type="text/javascript" src="<?=$g4[path]?>/js/sideview.js"></script>
<table width=100% cellpadding=3 cellspacing=1>
<form name=fsearch method=get>
<input type=hidden name=gr_id value='<?=$gr_id?>'>
<tr>
<td width=50% align=left>* <? echo "'<b>[$gr[gr_id]] $gr[gr_subject]</b>' 그룹의 접근가능한 회원 목록"; ?></td>
<td width=50% align=right>
<select name=sfl class=cssfl>
<option value='a.mb_id'>회원아이디</option>
</select>
<input type=text name=stx required itemname='검색어' value='<? echo $stx ?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
<form name="fsearch" id="fsearch" method="get">
<input type="hidden" name="gr_id" value="<?=$gr_id?>">
<fieldset>
<legend><?=$gr['gr_subject']?>(아이디 <?=$gr['gr_id']?>)에서 검색</legend>
<label for="sfl">검색대상</label>
<select id="sfl" name="sfl">
<option value="a.mb_id"<?=get_selected($_GET['sfl'], "a.mb_id")?>>회원아이디</option>
</select>
<input type="text" name="stx" value="<? echo $stx ?>" id="stx" title="검색어(필수)" required class="required frm_input">
<input type="submit" value="검색" class="btn_submit">
</fieldset>
</form>
</table>
<table width=100% cellpadding=0 cellspacing=0>
<colgroup width=120>
<colgroup width=120>
<colgroup width=120>
<colgroup width=120>
<colgroup width=''>
<colgroup width=100>
<colgroup width=40>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td><?=subject_sort_link('b.mb_id', "gr_id=$gr_id")?>회원아이디</a></td>
<td><?=subject_sort_link('b.mb_name', "gr_id=$gr_id")?>이름</a></td>
<td><?=subject_sort_link('b.mb_nick', "gr_id=$gr_id")?>별명</a></td>
<td><?=subject_sort_link('b.mb_today_login', "gr_id=$gr_id")?>최종접속</a></td>
<td><?=subject_sort_link('a.gm_datetime', "gr_id=$gr_id")?>처리일시</a></td>
<td title='접근가능한 그룹수'>그룹</td>
<td>삭제</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<section class="cbox">
<h2><?=$gr['gr_subject']?> 그룹에 접근가능한 회원 목록 (그룹아이디:<?=$gr['gr_id']?>)</h2>
<form name="fboardgroupmember" id="fboardgroupmember" action="./boardgroupmember_update.php" onsubmit="return fboardgroupmember_submit(this);" method="post">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="token" value="<?=$token?>">
<input type="hidden" name="gr_id" value="<?=$gr_id?>">
<input type="hidden" name="w" value="ld">
<table>
<thead>
<tr>
<th scope="col"><input type="checkbox" name="chkall" value="1" id="chkall" title="현재 페이지 접근가능회원 전체선택" onclick="check_all(this.form)"></th>
<th scope="col">그룹</th>
<th scope="col"><?=subject_sort_link('b.mb_id', 'gr_id='.$gr_id)?>회원아이디</a></th>
<th scope="col"><?=subject_sort_link('b.mb_name', 'gr_id='.$gr_id)?>이름</a></th>
<th scope="col"><?=subject_sort_link('b.mb_nick', 'gr_id='.$gr_id)?>별명</a></th>
<th scope="col"><?=subject_sort_link('b.mb_today_login', 'gr_id='.$gr_id)?>최종접속</a></th>
<th scope="col"><?=subject_sort_link('a.gm_datetime', 'gr_id='.$gr_id)?>처리일시</a></th>
</tr>
</thead>
<tbody>
<?
for ($i=0; $row=sql_fetch_array($result); $i++)
{
// 접근가능한 그룹수
$sql2 = " select count(*) as cnt from {$g4['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>';
<?
for ($i=0; $row=sql_fetch_array($result); $i++)
{
// 접근가능한 그룹수
$sql2 = " select count(*) as cnt from $g4[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>";
//$s_del = '<a href="javascript:post_delete(\'boardgroupmember_update.php\', \''.$row['gm_id'].'\');">삭제</a>';
//$s_del = "<a href=\"javascript:del('./boardgroupmember_update.php?w=listdelete&gm_id=$row[gm_id]');\"><img src='img/icon_delete.gif' border=0 title='삭제'></a>";
$s_del = "<a href=\"javascript:post_delete('boardgroupmember_update.php', '$row[gm_id]');\"><img src='img/icon_delete.gif' border=0 title='삭제'></a>";
$mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
?>
<tr>
<td class="td_chk"><input type="checkbox" name="chk[]" value="<?=$row['gm_id']?>" id="chk_<?=$i?>" title="<?=$row['mb_nick']?> 회원 선택"></td>
<td class="td_grid"><?=$group?></td>
<td class="td_mbid"><?=$row['mb_id']?></td>
<td class="td_mbname"><?=$row['mb_name']?></td>
<td class="td_name"><?=$mb_nick?></td>
<td class="td_time"><?=substr($row['mb_today_login'],2,8)?></td>
<td class="td_time"><?=$row['gm_datetime']?></td>
</tr>
<?
}
$mb_nick = get_sideview($row[mb_id], $row[mb_nick], $row[mb_email], $row[mb_homepage]);
if ($i == 0)
{
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</tbody>
</table>
$list = $i%2;
echo "
<tr class='list$list col1 ht center'>
<td>$row[mb_id]</td>
<td>$row[mb_name]</td>
<td>$mb_nick</td>
<td>".substr($row[mb_today_login],2,8)."</td>
<td>$row[gm_datetime]</td>
<td>$group</td>
<td>$s_del</td>
</tr> ";
}
<div class="btn_list">
<input type="submit" name="" value="선택삭제">
</div>
</form>
</section>
if ($i == 0)
{
echo "<tr><td colspan='$colspan' align=center height=100 class='content contentbg'>자료가 없습니다.</td></tr>";
}
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$qstr&gr_id=$gr_id&page=");
if ($pagelist)
echo "<table width=100% cellpadding=3 cellspacing=1><tr><td align=right>$pagelist</td></tr></table>\n";
if ($stx)
echo "<script type='text/javascript'>document.fsearch.sfl.value = '$sfl';</script>\n";
?>
<?=get_paging(G4_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['PHP_SELF']}?$qstr&amp;gr_id=$gr_id&page=");?>
<script>
// POST 방식으로 삭제
function post_delete(action_url, val)
function fboardgroupmember_submit(f)
{
var f = document.fpost;
if (!is_checked("chk[]")) {
alert("선택삭제 하실 항목을 하나 이상 선택하세요.");
return false;
}
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
f.gm_id.value = val;
f.action = action_url;
f.submit();
}
return true;
}
</script>
<form name='fpost' method='post'>
<input type='hidden' name='sst' value='<?=$sst?>'>
<input type='hidden' name='sod' value='<?=$sod?>'>
<input type='hidden' name='sfl' value='<?=$sfl?>'>
<input type='hidden' name='stx' value='<?=$stx?>'>
<input type='hidden' name='page' value='<?=$page?>'>
<input type='hidden' name='token' value='<?=$token?>'>
<input type='hidden' name='w' value='listdelete'>
<input type='hidden' name='gm_id'>
</form>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,62 +1,70 @@
<?
$sub_menu = "300200";
include_once("./_common.php");
include_once('./_common.php');
sql_query(" ALTER TABLE $g4[group_member_table] CHANGE `gm_id` `gm_id` INT( 11 ) DEFAULT '0' NOT NULL AUTO_INCREMENT ", false);
sql_query(" ALTER TABLE {$g4['group_member_table']} CHANGE `gm_id` `gm_id` INT( 11 ) DEFAULT '0' NOT NULL AUTO_INCREMENT ", false);
if ($w == "")
if ($w == '')
{
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
$mb = get_member($mb_id);
if (!$mb[mb_id]) {
alert("존재하지 않는 회원입니다.");
if (!$mb['mb_id']) {
alert('존재하지 않는 회원입니다.');
}
$gr = get_group($gr_id);
if (!$gr[gr_id]) {
alert("존재하지 않는 그룹입니다.");
if (!$gr['gr_id']) {
alert('존재하지 않는 그룹입니다.');
}
$sql = " select count(*) as cnt
from $g4[group_member_table]
where gr_id = '$gr_id'
and mb_id = '$mb_id' ";
$sql = " select count(*) as cnt
from {$g4['group_member_table']}
where gr_id = '{$gr_id}'
and mb_id = '{$mb_id}' ";
$row = sql_fetch($sql);
if ($row[cnt]) {
alert("이미 등록되어 있는 자료입니다.");
}
else
if ($row['cnt']) {
alert('이미 등록되어 있는 자료입니다.');
}
else
{
check_token();
$sql = " insert into $g4[group_member_table]
set gr_id = '$_POST[gr_id]',
mb_id = '$_POST[mb_id]',
gm_datetime = '$g4[time_ymdhis]' ";
$sql = " insert into {$g4['group_member_table']}
set gr_id = '{$_POST['gr_id']}',
mb_id = '{$_POST['mb_id']}',
gm_datetime = '".G4_TIME_YMDHIS."' ";
sql_query($sql);
}
}
else if ($w == 'd' || $w == 'listdelete')
}
else if ($w == 'd' || $w == 'ld')
{
auth_check($auth[$sub_menu], "d");
$sql = " select * from $g4[group_member_table] where gm_id = '$_POST[gm_id]' ";
$gm = sql_fetch($sql);
if (!$gm[gm_id]) {
alert("존재하지 않는 자료입니다.");
}
auth_check($auth[$sub_menu], 'd');
$count = count($_POST['chk']);
if(!$count)
alert('삭제할 목록을 하나이상 선택해 주세요.');
check_token();
$gr_id = $gm[gr_id];
$mb_id = $gm[mb_id];
for($i=0; $i<$count; $i++) {
$gm_id = $_POST['chk'][$i];
$sql = " select * from {$g4['group_member_table']} where gm_id = '$gm_id' ";
$gm = sql_fetch($sql);
if (!$gm['gm_id']) {
if($count == 1)
alert('존재하지 않는 자료입니다.');
else
continue;
}
$sql = " delete from $g4[group_member_table] where gm_id = '$_POST[gm_id]' ";
sql_query($sql);
$sql = " delete from {$g4['group_member_table']} where gm_id = '$gm_id' ";
sql_query($sql);
}
}
if ($w == 'listdelete')
goto_url("./boardgroupmember_list.php?gr_id=$gr_id");
if ($w == 'ld')
goto_url('./boardgroupmember_list.php?gr_id='.$gr_id);
else
goto_url("./boardgroupmember_form.php?mb_id=$mb_id");
goto_url('./boardgroupmember_form.php?mb_id='.$mb_id);
?>

52
adm/cache_file_delete.php Normal file
View File

@ -0,0 +1,52 @@
<?
$sub_menu = "100900";
include_once("./_common.php");
if ($is_admin != "super")
alert("최고관리자만 접근 가능합니다.", G4_URL);
$g4['title'] = "캐시파일 일괄삭제";
include_once("./admin.head.php");
?>
<div id="cache_del">
<p>
완료 메세지가 나오기 전에 프로그램의 실행을 중지하지 마십시오.
</p>
<?
flush();
if (!$dir=@opendir(G4_DATA_PATH.'/cache')) {
echo "<p>최신글 캐시디렉토리를 열지못했습니다.</p>";
}
$cnt=0;
echo "<ul>\n";
while($file=readdir($dir)) {
if ($file=='.' || $file=='..') continue;
$cache_file = G4_DATA_PATH.'/cache/'.$file;
if (!$atime=@fileatime($cache_file))
continue;
$cnt++;
$return = unlink($cache_file);
//echo "<script>document.getElementById('delete_message').innerHTML += '{$cache_file}<br>';</script>\n";
echo "<li>{$cache_file}</li>\n";
flush();
if ($cnt%10==0)
//echo "<script>document.getElementById('delete_message').innerHTML = '';</script>\n";
echo "\n";
}
echo "<li>완료됨</li>\n</ul>\n";
//echo "<script>document.getElementById('delete_message').innerHTML += '최신글 캐시파일 {$cnt}건 삭제 완료.<br><br>프로그램의 실행을 끝마치셔도 좋습니다.';</script>\n";
echo "<p><span>최신글 캐시파일 {$cnt}건 삭제가 완료됐습니다.</span><br>프로그램의 실행을 끝마치셔도 좋습니다.</p>\n";
?>
</div>
<?php
include_once("./admin.tail.php");
?>

File diff suppressed because it is too large Load Diff

View File

@ -1,123 +1,134 @@
<?
$sub_menu = "100100";
include_once("./_common.php");
include_once('./_common.php');
check_demo();
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
if ($is_admin != "super")
alert("최고관리자만 접근 가능합니다.");
if ($is_admin != 'super')
alert('최고관리자만 접근 가능합니다.');
if ($member[mb_password] != sql_password($_POST['admin_password'])) {
alert("패스워드가 다릅니다.");
if ($member['mb_password'] != sql_password($_POST['admin_password'])) {
alert('패스워드가 다릅니다.');
}
$mb = get_member($cf_admin);
if (!$mb[mb_id])
alert("최고관리자 회원아이디가 존재하지 않습니다.");
if (!$mb['mb_id'])
alert('최고관리자 회원아이디가 존재하지 않습니다.');
check_token();
$sql = " update $g4[config_table]
set cf_title = '$_POST[cf_title]',
cf_admin = '$_POST[cf_admin]',
cf_use_point = '$_POST[cf_use_point]',
cf_use_norobot = '$_POST[cf_use_norobot]',
cf_use_copy_log = '$_POST[cf_use_copy_log]',
cf_use_email_certify = '$_POST[cf_use_email_certify]',
cf_login_point = '$_POST[cf_login_point]',
cf_cut_name = '$_POST[cf_cut_name]',
cf_nick_modify = '$_POST[cf_nick_modify]',
cf_new_skin = '$_POST[cf_new_skin]',
cf_new_rows = '$_POST[cf_new_rows]',
cf_search_skin = '$_POST[cf_search_skin]',
cf_connect_skin = '$_POST[cf_connect_skin]',
cf_read_point = '$_POST[cf_read_point]',
cf_write_point = '$_POST[cf_write_point]',
cf_comment_point = '$_POST[cf_comment_point]',
cf_download_point = '$_POST[cf_download_point]',
cf_search_bgcolor = '$_POST[cf_search_bgcolor]',
cf_search_color = '$_POST[cf_search_color]',
cf_write_pages = '$_POST[cf_write_pages]',
cf_link_target = '$_POST[cf_link_target]',
cf_delay_sec = '$_POST[cf_delay_sec]',
cf_filter = '$_POST[cf_filter]',
cf_possible_ip = '".trim($_POST['cf_possible_ip'])."',
cf_intercept_ip = '".trim($_POST['cf_intercept_ip'])."',
cf_member_skin = '$_POST[cf_member_skin]',
cf_use_homepage = '$_POST[cf_use_homepage]',
cf_req_homepage = '$_POST[cf_req_homepage]',
cf_use_tel = '$_POST[cf_use_tel]',
cf_req_tel = '$_POST[cf_req_tel]',
cf_use_hp = '$_POST[cf_use_hp]',
cf_req_hp = '$_POST[cf_req_hp]',
cf_use_addr = '$_POST[cf_use_addr]',
cf_req_addr = '$_POST[cf_req_addr]',
cf_use_signature = '$_POST[cf_use_signature]',
cf_req_signature = '$_POST[cf_req_signature]',
cf_use_profile = '$_POST[cf_use_profile]',
cf_req_profile = '$_POST[cf_req_profile]',
cf_register_level = '$_POST[cf_register_level]',
cf_register_point = '$_POST[cf_register_point]',
cf_icon_level = '$_POST[cf_icon_level]',
cf_use_recommend = '$_POST[cf_use_recommend]',
cf_recommend_point = '$_POST[cf_recommend_point]',
cf_leave_day = '$_POST[cf_leave_day]',
cf_search_part = '$_POST[cf_search_part]',
cf_email_use = '$_POST[cf_email_use]',
cf_email_wr_super_admin = '$_POST[cf_email_wr_super_admin]',
cf_email_wr_group_admin = '$_POST[cf_email_wr_group_admin]',
cf_email_wr_board_admin = '$_POST[cf_email_wr_board_admin]',
cf_email_wr_write = '$_POST[cf_email_wr_write]',
cf_email_wr_comment_all = '$_POST[cf_email_wr_comment_all]',
cf_email_mb_super_admin = '$_POST[cf_email_mb_super_admin]',
cf_email_mb_member = '$_POST[cf_email_mb_member]',
cf_email_po_super_admin = '$_POST[cf_email_po_super_admin]',
cf_prohibit_id = '$_POST[cf_prohibit_id]',
cf_prohibit_email = '$_POST[cf_prohibit_email]',
cf_new_del = '$_POST[cf_new_del]',
cf_memo_del = '$_POST[cf_memo_del]',
cf_visit_del = '$_POST[cf_visit_del]',
cf_popular_del = '$_POST[cf_popular_del]',
cf_use_jumin = '$_POST[cf_use_jumin]',
cf_use_member_icon = '$_POST[cf_use_member_icon]',
cf_member_icon_size = '$_POST[cf_member_icon_size]',
cf_member_icon_width = '$_POST[cf_member_icon_width]',
cf_member_icon_height = '$_POST[cf_member_icon_height]',
cf_login_minutes = '$_POST[cf_login_minutes]',
cf_image_extension = '$_POST[cf_image_extension]',
cf_flash_extension = '$_POST[cf_flash_extension]',
cf_movie_extension = '$_POST[cf_movie_extension]',
cf_formmail_is_member = '$_POST[cf_formmail_is_member]',
cf_page_rows = '$_POST[cf_page_rows]',
cf_stipulation = '$_POST[cf_stipulation]',
cf_privacy = '$_POST[cf_privacy]',
cf_open_modify = '$_POST[cf_open_modify]',
cf_memo_send_point = '$_POST[cf_memo_send_point]',
cf_1_subj = '$_POST[cf_1_subj]',
cf_2_subj = '$_POST[cf_2_subj]',
cf_3_subj = '$_POST[cf_3_subj]',
cf_4_subj = '$_POST[cf_4_subj]',
cf_5_subj = '$_POST[cf_5_subj]',
cf_6_subj = '$_POST[cf_6_subj]',
cf_7_subj = '$_POST[cf_7_subj]',
cf_8_subj = '$_POST[cf_8_subj]',
cf_9_subj = '$_POST[cf_9_subj]',
cf_10_subj = '$_POST[cf_10_subj]',
cf_1 = '$_POST[cf_1]',
cf_2 = '$_POST[cf_2]',
cf_3 = '$_POST[cf_3]',
cf_4 = '$_POST[cf_4]',
cf_5 = '$_POST[cf_5]',
cf_6 = '$_POST[cf_6]',
cf_7 = '$_POST[cf_7]',
cf_8 = '$_POST[cf_8]',
cf_9 = '$_POST[cf_9]',
cf_10 = '$_POST[cf_10]' ";
$sql = " update {$g4['config_table']}
set cf_title = '{$_POST['cf_title']}',
cf_admin = '{$_POST['cf_admin']}',
cf_include_index = '{$_POST['cf_include_index']}',
cf_include_head = '{$_POST['cf_include_head']}',
cf_include_tail = '{$_POST['cf_include_tail']}',
cf_add_script = '{$_POST['cf_add_script']}',
cf_use_point = '{$_POST['cf_use_point']}',
cf_use_norobot = '{$_POST['cf_use_norobot']}',
cf_use_copy_log = '{$_POST['cf_use_copy_log']}',
cf_use_email_certify = '{$_POST['cf_use_email_certify']}',
cf_login_point = '{$_POST['cf_login_point']}',
cf_cut_name = '{$_POST['cf_cut_name']}',
cf_nick_modify = '{$_POST['cf_nick_modify']}',
cf_new_skin = '{$_POST['cf_new_skin']}',
cf_new_rows = '{$_POST['cf_new_rows']}',
cf_search_skin = '{$_POST['cf_search_skin']}',
cf_connect_skin = '{$_POST['cf_connect_skin']}',
cf_read_point = '{$_POST['cf_read_point']}',
cf_write_point = '{$_POST['cf_write_point']}',
cf_comment_point = '{$_POST['cf_comment_point']}',
cf_download_point = '{$_POST['cf_download_point']}',
cf_search_bgcolor = '{$_POST['cf_search_bgcolor']}',
cf_search_color = '{$_POST['cf_search_color']}',
cf_write_pages = '{$_POST['cf_write_pages']}',
cf_mobile_pages = '{$_POST['cf_mobile_pages']}',
cf_link_target = '{$_POST['cf_link_target']}',
cf_delay_sec = '{$_POST['cf_delay_sec']}',
cf_filter = '{$_POST['cf_filter']}',
cf_possible_ip = '".trim($_POST['cf_possible_ip'])."',
cf_intercept_ip = '".trim($_POST['cf_intercept_ip'])."',
cf_member_skin = '{$_POST['cf_member_skin']}',
cf_use_homepage = '{$_POST['cf_use_homepage']}',
cf_req_homepage = '{$_POST['cf_req_homepage']}',
cf_use_tel = '{$_POST['cf_use_tel']}',
cf_req_tel = '{$_POST['cf_req_tel']}',
cf_use_hp = '{$_POST['cf_use_hp']}',
cf_req_hp = '{$_POST['cf_req_hp']}',
cf_use_addr = '{$_POST['cf_use_addr']}',
cf_req_addr = '{$_POST['cf_req_addr']}',
cf_use_signature = '{$_POST['cf_use_signature']}',
cf_req_signature = '{$_POST['cf_req_signature']}',
cf_use_profile = '{$_POST['cf_use_profile']}',
cf_req_profile = '{$_POST['cf_req_profile']}',
cf_register_level = '{$_POST['cf_register_level']}',
cf_register_point = '{$_POST['cf_register_point']}',
cf_icon_level = '{$_POST['cf_icon_level']}',
cf_use_recommend = '{$_POST['cf_use_recommend']}',
cf_recommend_point = '{$_POST['cf_recommend_point']}',
cf_leave_day = '{$_POST['cf_leave_day']}',
cf_search_part = '{$_POST['cf_search_part']}',
cf_email_use = '{$_POST['cf_email_use']}',
cf_email_wr_super_admin = '{$_POST['cf_email_wr_super_admin']}',
cf_email_wr_group_admin = '{$_POST['cf_email_wr_group_admin']}',
cf_email_wr_board_admin = '{$_POST['cf_email_wr_board_admin']}',
cf_email_wr_write = '{$_POST['cf_email_wr_write']}',
cf_email_wr_comment_all = '{$_POST['cf_email_wr_comment_all']}',
cf_email_mb_super_admin = '{$_POST['cf_email_mb_super_admin']}',
cf_email_mb_member = '{$_POST['cf_email_mb_member']}',
cf_email_po_super_admin = '{$_POST['cf_email_po_super_admin']}',
cf_prohibit_id = '{$_POST['cf_prohibit_id']}',
cf_prohibit_email = '{$_POST['cf_prohibit_email']}',
cf_new_del = '{$_POST['cf_new_del']}',
cf_memo_del = '{$_POST['cf_memo_del']}',
cf_visit_del = '{$_POST['cf_visit_del']}',
cf_popular_del = '{$_POST['cf_popular_del']}',
cf_use_jumin = '{$_POST['cf_use_jumin']}',
cf_use_member_icon = '{$_POST['cf_use_member_icon']}',
cf_member_icon_size = '{$_POST['cf_member_icon_size']}',
cf_member_icon_width = '{$_POST['cf_member_icon_width']}',
cf_member_icon_height = '{$_POST['cf_member_icon_height']}',
cf_login_minutes = '{$_POST['cf_login_minutes']}',
cf_image_extension = '{$_POST['cf_image_extension']}',
cf_flash_extension = '{$_POST['cf_flash_extension']}',
cf_movie_extension = '{$_POST['cf_movie_extension']}',
cf_formmail_is_member = '{$_POST['cf_formmail_is_member']}',
cf_page_rows = '{$_POST['cf_page_rows']}',
cf_stipulation = '{$_POST['cf_stipulation']}',
cf_privacy = '{$_POST['cf_privacy']}',
cf_open_modify = '{$_POST['cf_open_modify']}',
cf_memo_send_point = '{$_POST['cf_memo_send_point']}',
cf_mobile_new_skin = '{$_POST['cf_mobile_new_skin']}',
cf_mobile_search_skin = '{$_POST['cf_mobile_search_skin']}',
cf_mobile_connect_skin = '{$_POST['cf_mobile_connect_skin']}',
cf_mobile_member_skin = '{$_POST['cf_mobile_member_skin']}',
cf_kcpcert_site_cd = '{$_POST['cf_kcpcert_site_cd']}',
cf_adult_check = '{$_POST['cf_adult_check']}',
cf_1_subj = '{$_POST['cf_1_subj']}',
cf_2_subj = '{$_POST['cf_2_subj']}',
cf_3_subj = '{$_POST['cf_3_subj']}',
cf_4_subj = '{$_POST['cf_4_subj']}',
cf_5_subj = '{$_POST['cf_5_subj']}',
cf_6_subj = '{$_POST['cf_6_subj']}',
cf_7_subj = '{$_POST['cf_7_subj']}',
cf_8_subj = '{$_POST['cf_8_subj']}',
cf_9_subj = '{$_POST['cf_9_subj']}',
cf_10_subj = '{$_POST['cf_10_subj']}',
cf_1 = '{$_POST['cf_1']}',
cf_2 = '{$_POST['cf_2']}',
cf_3 = '{$_POST['cf_3']}',
cf_4 = '{$_POST['cf_4']}',
cf_5 = '{$_POST['cf_5']}',
cf_6 = '{$_POST['cf_6']}',
cf_7 = '{$_POST['cf_7']}',
cf_8 = '{$_POST['cf_8']}',
cf_9 = '{$_POST['cf_9']}',
cf_10 = '{$_POST['cf_10']}' ";
sql_query($sql);
//sql_query(" OPTIMIZE TABLE `$g4[config_table]` ");
goto_url("./config_form.php", false);
goto_url('./config_form.php', false);
?>

BIN
adm/img/hd_bg.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

BIN
adm/img/logo.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

BIN
adm/img/qnb_board.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

BIN
adm/img/qnb_log.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
adm/img/qnb_mb.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
adm/img/snb_home.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
adm/img/snb_logout.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
adm/img/snb_modify.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -1,377 +1,307 @@
<?
include_once("./_common.php");
include_once('./_common.php');
$g4['title'] = "관리자메인";
include_once ("./admin.head.php");
$g4['title'] = '관리자메인';
include_once ('./admin.head.php');
$new_member_rows = 5;
$new_point_rows = 5;
$new_write_rows = 5;
$sql_common = " from $g4[member_table] ";
$sql_common = " from {$g4['member_table']} ";
$sql_search = " where (1) ";
//if ($is_admin == 'group') $sql_search .= " and mb_level = '$member[mb_level]' ";
if ($is_admin != 'super')
$sql_search .= " and mb_level <= '$member[mb_level]' ";
if ($is_admin != 'super')
$sql_search .= " and mb_level <= '{$member['mb_level']}' ";
if (!isset($sst)) {
if (!$sst) {
$sst = "mb_datetime";
$sod = "desc";
}
$sql_order = " order by $sst $sod ";
$sql_order = " order by {$sst} {$sod} ";
$sql = " select count(*) as cnt
$sql_common
$sql_search
$sql_order ";
$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 ";
$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 ";
$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 ";
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$new_member_rows} ";
$result = sql_query($sql);
$colspan = 12;
?>
<?=subtitle("신규가입회원 {$new_member_rows}건", "./member_list.php");?>
<section class="cbox">
<h2>신규가입회원 <?=$new_member_rows?>건 목록</h2>
<p>총회원수 <?=number_format($total_count)?>명 중 차단 <?=number_format($intercept_count)?>명, 탈퇴 : <?=number_format($leave_count)?>명</p>
<table width=100%>
<tr>
<td width=50% align=left><?//=$listall?> (총회원수 : <?=number_format($total_count)?>, <font color=orange>차단 : <?=number_format($intercept_count)?></font>, <font color=crimson>탈퇴 : <?=number_format($leave_count)?></font>)</td>
<td width=50% align=right></td>
</tr>
</table>
<table width=100% cellpadding=0 cellspacing=0>
<input type=hidden name=sst value='<?=$sst?>'>
<input type=hidden name=sod value='<?=$sod?>'>
<input type=hidden name=sfl value='<?=$sfl?>'>
<input type=hidden name=stx value='<?=$stx?>'>
<input type=hidden name=page value='<?=$page?>'>
<colgroup width=80>
<colgroup width=80>
<colgroup width=>
<colgroup width=40>
<colgroup width=50>
<colgroup width=80>
<colgroup width=40>
<colgroup width=40>
<colgroup width=40>
<colgroup width=40>
<colgroup width=40>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>회원아이디</td>
<td>이름</td>
<td>별명</td>
<td>권한</td>
<td>포인트</td>
<td>최종접속</td>
<td title='메일수신허용여부'>수신</td>
<td title='정보공개여부'>공개</td>
<td title='이메일인증'>인증</td>
<td>차단</td>
<td title='접근가능한 그룹수'>그룹</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
for ($i=0; $row=sql_fetch_array($result); $i++)
{
// 접근가능한 그룹수
$sql2 = " select count(*) as cnt from $g4[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')
<table>
<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>
<?
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$s_mod = "";
$s_del = "";
}
else
{
$s_mod = "<a href=\"./member_form.php?$qstr&w=u&mb_id=$row[mb_id]\"><img src='img/icon_modify.gif' border=0 title='수정'></a>";
$s_del = "<a href=\"javascript:del('./member_delete.php?$qstr&w=d&mb_id=$row[mb_id]&url=$_SERVER[PHP_SELF]');\"><img src='img/icon_delete.gif' border=0 title='삭제'></a>";
}
$s_grp = "<a href='./boardgroupmember_form.php?mb_id=$row[mb_id]'><img src='img/icon_group.gif' border=0 title='그룹'></a>";
// 접근가능한 그룹수
$sql2 = " select count(*) as cnt from {$g4['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>';
$leave_date = $row['mb_leave_date'] ? $row['mb_leave_date'] : date("Ymd", $g4['server_time']);
$intercept_date = $row['mb_intercept_date'] ? $row['mb_intercept_date'] : date("Ymd", $g4['server_time']);
if ($is_admin == 'group')
{
$s_mod = '';
$s_del = '';
}
else
{
$s_mod = '<a href="./member_form.php?$qstr&amp;w=u&amp;mb_id='.$row['mb_id'].'">수정</a>';
$s_del = '<a href="javascript:del(\'./member_delete.php?'.$qstr.'&amp;w=d&amp;mb_id='.$row['mb_id'].'&amp;url='.$_SERVER['PHP_SELF'].'\');">삭제</a>';
}
$s_grp = '<a href="./boardgroupmember_form.php?mb_id='.$row['mb_id'].'">그룹</a>';
$mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
$leave_date = $row['mb_leave_date'] ? $row['mb_leave_date'] : date("Ymd", G4_SERVER_TIME);
$intercept_date = $row['mb_intercept_date'] ? $row['mb_intercept_date'] : date("Ymd", G4_SERVER_TIME);
$mb_id = $row['mb_id'];
if ($row['mb_leave_date'])
$mb_id = "<font color=crimson>$mb_id</font>";
else if ($row['mb_intercept_date'])
$mb_id = "<font color=orange>$mb_id</font>";
$mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
$list = $i%2;
echo "
<input type=hidden name=mb_id[$i] value='$row[mb_id]'>
<tr class='list$list col1 ht center'>
<td title='$row[mb_id]'><nobr style='display:block; overflow:hidden; width:100px;'>&nbsp;$mb_id</nobr></td>
<td>$row[mb_name]</td>
<td>$mb_nick</td>
<td>$row[mb_level]</td>
<td align=right><a href='./point_list.php?sfl=mb_id&stx=$row[mb_id]' class=tt>".number_format($row['mb_point'])."</a>&nbsp;</td>
<td>".substr($row['mb_today_login'],2,8)."</td>
<td>".($row['mb_mailling']?'&radic;':'&nbsp;')."</td>
<td>".($row['mb_open']?'&radic;':'&nbsp;')."</td>
<td title='$row[mb_email_certify]'>".(preg_match('/[1-9]/', $row['mb_email_certify'])?'&radic;':'&nbsp;')."</td>
<td title='$row[mb_intercept_date]'>".($row['mb_intercept_date']?'&radic;':'&nbsp;')."</td>
<td>$group</td>
</tr>";
}
$mb_id = $row['mb_id'];
if ($row['mb_leave_date'])
$mb_id = $mb_id;
else if ($row['mb_intercept_date'])
$mb_id = $mb_id;
if ($i == 0)
echo "<tr><td colspan='$colspan' align=center height=100 class=contentbg>자료가 없습니다.</td></tr>";
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
?>
?>
<tr>
<td><?=$mb_id?></td>
<td class="td_mbname"><?=$row['mb_name']?></td>
<td class="td_name"><div><?=$mb_nick?></div></td>
<td class="td_num"><?=$row['mb_level']?></td>
<td class="td_bignum"><a href="./point_list.php?sfl=mb_id&amp;stx=<?=$row['mb_id']?>"><?=number_format($row['mb_point'])?></a></td>
<td class="td_boolean"><?=$row['mb_mailling']?'예':'아니오';?></td>
<td class="td_boolean"><?=$row['mb_open']?'예':'아니오';?></td>
<td class="td_boolean"><?=preg_match('/[1-9]/', $row['mb_email_certify'])?'예':'아니오';?></td>
<td class="td_boolean"><?=$row['mb_intercept_date']?'예':'아니오';?></td>
<td class="td_category"><?=$group?></td>
</tr>
<?
}
if ($i == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table>
<div class="btn_ft">
<a href="./member_list.php">회원 전체보기</a>
</div>
</section>
<?
//$sql_common = " from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c where a.bo_table = b.bo_table and b.gr_id = c.gr_id and b.bo_use_search = '1' ";
$sql_common = " from $g4[board_new_table] a, $g4[board_table] b, $g4[group_table] c where a.bo_table = b.bo_table and b.gr_id = c.gr_id ";
$sql_common = " from {$g4['board_new_table']} a, {$g4['board_table']} b, {$g4['group_table']} c where a.bo_table = b.bo_table and b.gr_id = c.gr_id ";
if (isset($gr_id))
if ($gr_id)
$sql_common .= " and b.gr_id = '$gr_id' ";
if (isset($view)) {
if ($view == "w")
if ($view) {
if ($view == 'w')
$sql_common .= " and a.wr_id = a.wr_parent ";
else if ($view == "c")
else if ($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 ";
$sql = " select count(*) as cnt {$sql_common} ";
$row = sql_fetch($sql);
$total_count = $row['cnt'];
$colspan = 5;
?>
<br><br>
<?=subtitle("최근게시물 {$new_write_rows}건", "$g4[bbs_path]/new.php");?>
<section class="cbox">
<h2>최근게시물</h2>
<p>사이트 전체게시물 중 최근게시물 <?=$new_write_rows?>건 목록</p>
<table width=100% cellpadding=0 cellspacing=1>
<input type=hidden name=sst value='<?=$sst?>'>
<input type=hidden name=sod value='<?=$sod?>'>
<input type=hidden name=sfl value='<?=$sfl?>'>
<input type=hidden name=stx value='<?=$stx?>'>
<input type=hidden name=page value='<?=$page?>'>
<colgroup width=100>
<colgroup width=100>
<colgroup width=''>
<colgroup width=80>
<colgroup width=80>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>그룹</td>
<td>게시판</td>
<td>제목</td>
<td>이름</td>
<td>일시</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
$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 = $g4['write_prefix'] . $row['bo_table'];
if ($row['wr_id'] == $row['wr_parent']) // 원글
<table>
<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>
<?
$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++)
{
$comment = "";
$comment_link = "";
$row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '$row[wr_id]' ");
$tmp_write_table = $g4['write_prefix'] . $row['bo_table'];
$name = get_sideview($row2['mb_id'], 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 == $g4['time_ymd'])
$datetime2 = substr($datetime2,11,5);
else
$datetime2 = substr($datetime2,5,5);
if ($row['wr_id'] == $row['wr_parent']) // 원글
{
$comment = "";
$comment_link = "";
$row2 = sql_fetch(" select * from $tmp_write_table where wr_id = '{$row['wr_id']}' ");
$name = get_sideview($row2['mb_id'], 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 == G4_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']}' ");
$name = get_sideview($row3['mb_id'], 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 == G4_TIME_YMD)
$datetime2 = substr($datetime2,11,5);
else
$datetime2 = substr($datetime2,5,5);
}
?>
<tr>
<td class="td_category"><a href="<?=G4_BBS_URL?>/new.php?gr_id=<?=$row['gr_id']?>"><?=cut_str($row['gr_subject'],10)?></a></td>
<td class="td_category"><a href="<?=G4_BBS_URL?>/board.php?bo_table=<?=$row['bo_table']?>"><?=cut_str($row['bo_subject'],20)?></a></td>
<td><a href="<?=G4_BBS_URL?>/board.php?bo_table=<?=$row['bo_table']?>&amp;wr_id=<?=$row2['wr_id']?><?=$comment_link?>"><?=$comment?><?=conv_subject($row2['wr_subject'], 100)?></a></td>
<td class="td_mbname"><div><?=$name?></div></td>
<td class="td_time"><?=$datetime?></td>
</tr>
<?
}
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]' ");
$name = get_sideview($row3['mb_id'], 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 == $g4['time_ymd'])
$datetime2 = substr($datetime2,11,5);
else
$datetime2 = substr($datetime2,5,5);
}
$list = $i%2;
echo "
<tr class='list$list col1 ht center'>
<td class=small><a href='$g4[bbs_path]/new.php?gr_id=$row[gr_id]'>".cut_str($row['gr_subject'],10)."</a></td>
<td class=small><a href='$g4[bbs_path]/board.php?bo_table=$row[bo_table]'>".cut_str($row['bo_subject'],20)."</a></td>
<td align=left style='word-break:break-all;'>&nbsp;<a href='$g4[bbs_path]/board.php?bo_table=$row[bo_table]&wr_id=$row2[wr_id]{$comment_link}'>{$comment}".conv_subject($row2['wr_subject'], 100)."</a></td>
<td>$name</td>
<td>$datetime</td>
</tr> ";
}
if ($i == 0)
echo "<tr><td colspan='$colspan' align=center height=100 bgcolor=#ffffff>자료가 없습니다.</td></tr>";
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
?>
if ($i == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table>
<div class="btn_ft">
<a href="<?=G4_BBS_URL?>/new.php">최근게시물 더보기</a>
</div>
</section>
<?
$sql_common = " from $g4[point_table] ";
$sql_common = " from {$g4['point_table']} ";
$sql_search = " where (1) ";
$sql_order = " order by po_id desc ";
$sql = " select count(*) as cnt
$sql_common
$sql_search
$sql_order ";
{$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 ";
{$sql_common}
{$sql_search}
{$sql_order}
limit {$new_point_rows} ";
$result = sql_query($sql);
$colspan = 7;
?>
<br><br>
<?=subtitle("최근포인트 {$new_point_rows}건", "./point_list.php");?>
<section class="cbox">
<h2>최근 포인트 발생내역</h2>
<p>전체 <?=number_format($total_count)?> 건 중 <?=$new_point_rows?>건 목록</p>
<table width=100%>
<tr>
<td width=50% align=left>
<?//=$listall?> (건수 : <?=number_format($total_count)?>)
<?
//$row2 = sql_fetch(" select sum(po_point) as sum_point from $g4[point_table] ");
//echo "&nbsp;(전체 포인트 합계 : " . number_format($row2[sum_point]) . "점)";
?>
</td>
<td width=50% align=right></td>
</tr>
</table>
<table width=100% cellpadding=0 cellspacing=1>
<input type=hidden name=sst value='<?=$sst?>'>
<input type=hidden name=sod value='<?=$sod?>'>
<input type=hidden name=sfl value='<?=$sfl?>'>
<input type=hidden name=stx value='<?=$stx?>'>
<input type=hidden name=page value='<?=$page?>'>
<colgroup width=100>
<colgroup width=80>
<colgroup width=80>
<colgroup width=140>
<colgroup width=''>
<colgroup width=50>
<colgroup width=80>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>회원아이디</td>
<td>이름</td>
<td>별명</td>
<td>일시</td>
<td>포인트 내용</td>
<td>포인트</td>
<td>포인트합</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
$row2['mb_id'] = '';
for ($i=0; $row=sql_fetch_array($result); $i++)
{
if ($row2['mb_id'] != $row['mb_id'])
<table>
<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>
<?
$row2['mb_id'] = '';
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$sql2 = " select mb_id, mb_name, mb_nick, mb_email, mb_homepage, mb_point from $g4[member_table] where mb_id = '$row[mb_id]' ";
$row2 = sql_fetch($sql2);
if ($row2['mb_id'] != $row['mb_id'])
{
$sql2 = " select mb_id, mb_name, mb_nick, mb_email, mb_homepage, mb_point from {$g4['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="'.G4_BBS_URL.'/board.php?bo_table='.$row['po_rel_table'].'&amp;wr_id='.$row['po_rel_id'].'" target="_blank">';
$link2 = '</a>';
}
?>
<tr>
<td class="td_mbid"><a href="./point_list.php?sfl=mb_id&amp;stx=<?=$row['mb_id']?>"><?=$row['mb_id']?></a></td>
<td class="td_mbname"><?=$row2['mb_name']?></td>
<td class="td_name"><div><?=$mb_nick?></div></td>
<td class="td_time"><?=$row['po_datetime']?></td>
<td><?=$link1.$row['po_content'].$link2?></td>
<td class="td_bignum"><?=number_format($row['po_point'])?></td>
<td class="td_bignum"><?=number_format($row2['mb_point'])?></td>
</tr>
<?
}
$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='$g4[bbs_path]/board.php?bo_table=$row[po_rel_table]&wr_id=$row[po_rel_id]' target=_blank>";
$link2 = "</a>";
}
$list = $i%2;
echo "
<input type=hidden name=po_id[$i] value='$row[po_id]'>
<input type=hidden name=mb_id[$i] value='$row[mb_id]'>
<tr class='list$list col1 ht center'>
<td><a href='./point_list.php?sfl=mb_id&stx=$row[mb_id]'>$row[mb_id]</a></td>
<td>$row2[mb_name]</td>
<td>$mb_nick</td>
<td>$row[po_datetime]</td>
<td align=left>&nbsp;{$link1}$row[po_content]{$link2}</td>
<td align=right>".number_format($row['po_point'])."&nbsp;</td>
<td align=right>".number_format($row2['mb_point'])."&nbsp;</td>
</tr> ";
}
if ($i == 0)
echo "<tr><td colspan='$colspan' align=center height=100 bgcolor=#ffffff>자료가 없습니다.</td></tr>";
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
?>
if ($i == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table>
<div class="btn_ft">
<a href="./point_list.php">포인트내역 전체보기</a>
</div>
</section>
<?
include_once ("./admin.tail.php");
include_once ('./admin.tail.php');
?>

24
adm/mail_delete.php Normal file
View File

@ -0,0 +1,24 @@
<?php
$sub_menu = '200300';
include_once('./_common.php');
check_demo();
auth_check($auth[$sub_menu], 'd');
check_token();
$count = count($_POST['chk']);
if(!$count)
alert('삭제할 메일목록을 1개이상 선택해 주세요.');
for($i=0; $i<$count; $i++) {
$ma_id = $_POST['chk'][$i];
$sql = " delete from {$g4['mail_table']} where ma_id = '$ma_id' ";
sql_query($sql);
}
goto_url('./mail_list.php');
?>

View File

@ -1,82 +1,80 @@
<?
$sub_menu = "200300";
include_once("./_common.php");
auth_check($auth[$sub_menu], "r");
$token = get_token();
$html_title = "회원메일";
if ($w == "u") {
$html_title .= "수정";
$readonly = " readonly";
$sql = " select * from $g4[mail_table] where ma_id = '$ma_id' ";
$ma = sql_fetch($sql);
if (!$ma[ma_id])
alert("등록된 자료가 없습니다.");
} else {
$html_title .= "입력";
}
$g4[title] = $html_title;
include_once("./admin.head.php");
?>
<form name=fmailform method=post action="./mail_update.php" onsubmit="return fmailform_check(this);">
<input type=hidden name=w value='<?=$w?>'>
<input type=hidden name=ma_id value='<?=$ma[ma_id]?>'>
<input type=hidden name=token value='<?=$token?>'>
<table cellpadding=0 cellspacing=0 width=100%>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=80% class='col2 pad2'>
<tr>
<td colspan=2 class=title align=left><img src='<?=$g4[admin_path]?>/img/icon_title.gif'> <?=$html_title?></td>
</tr>
<tr><td colspan=2 class='line1'></td></tr>
<tr class='ht'>
<td>메일 제목</td>
<td><input type=text class='ed w99' name=ma_subject value='<?=$ma[ma_subject]?>' required itemname='메일 제목'></td>
</tr>
<tr>
<td>메일 내용</td>
<td class=lh>
<?=textarea_size("ma_content")?>
<textarea id=ma_content name=ma_content rows=20 class='ed w99' required itemname='메일 내용'><?=$ma[ma_content]?></textarea>
<br>{이름} , {별명} , {회원아이디} , {이메일} , {생일}
<br>위와 같이 HTML 코드에 삽입하면 해당 내용에 맞게 변환하여 메일 발송합니다.
</td>
</tr>
<tr><td colspan=2 class='line1'></td></tr>
</table>
<p align=center>
<input type=submit class=btn1 accesskey='s' value=' 확 인 '>
</form>
<script type="text/javascript">
function fmailform_check(f)
{
errmsg = "";
errfld = "";
check_field(f.ma_subject, "제목을 입력하세요.");
check_field(f.ma_content, "내용을 입력하세요.");
if (errmsg != "") {
alert(errmsg);
errfld.focus();
return false;
}
return true;
}
document.fmailform.ma_subject.focus();
</script>
<?
include_once("./admin.tail.php");
?>
<?
$sub_menu = "200300";
include_once('./_common.php');
include_once(G4_CKEDITOR_PATH.'/ckeditor.lib.php');
auth_check($auth[$sub_menu], 'r');
$token = get_token();
$html_title = '회원메일';
if ($w == 'u') {
$html_title .= '수정';
$readonly = ' readonly';
$sql = " select * from {$g4['mail_table']} where ma_id = '{$ma_id}' ";
$ma = sql_fetch($sql);
if (!$ma['ma_id'])
alert('등록된 자료가 없습니다.');
} else {
$html_title .= '입력';
}
$g4['title'] = $html_title;
include_once('./admin.head.php');
?>
<div class="cbox">
<p>메일 내용에 {이름} , {별명} , {회원아이디} , {이메일} 처럼 내용에 삽입하면 해당 내용에 맞게 변환하여 메일을 발송합니다.</p>
<form name="fmailform" id="fmailform" action="./mail_update.php" onsubmit="return fmailform_check(this);" method="post">
<input type="hidden" name="w" value="<?=$w?>" id="w">
<input type="hidden" name="ma_id" value="<?=$ma['ma_id']?>" id="ma_id">
<input type="hidden" name="token" value="<?=$token?>" id="token">
<table class="frm_tbl">
<colgroup>
<col class="grid_3">
<col class="grid_15">
</colgroup>
<tbody>
<tr>
<th scope="row"><label for="ma_subject">메일 제목<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="ma_subject" value="<?=$ma['ma_subject']?>" id="ma_subject" required class="required frm_input" size="100"></td>
</tr>
<tr>
<th scope="row"><label for="ma_content">메일 내용<strong class="sound_only">필수</strong></label></th>
<td><?=editor_html("ma_content", $ma['ma_content'], '400');?></td>
</tr>
</tbody>
</table>
<div class="btn_confirm">
<input type="submit" class="btn_submit" accesskey="s" value="확인">
</div>
</form>
</div>
<script>
function fmailform_check(f)
{
errmsg = "";
errfld = "";
check_field(f.ma_subject, "제목을 입력하세요.");
check_field(f.ma_content, "내용을 입력하세요.");
if (errmsg != "") {
alert(errmsg);
errfld.focus();
return false;
}
return true;
}
document.fmailform.ma_subject.focus();
</script>
<?
include_once('./admin.tail.php');
?>

View File

@ -1,99 +1,103 @@
<?
$sub_menu = "200300";
include_once("./_common.php");
$sub_menu = '200300';
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$sql_common = " from $g4[mail_table] ";
$sql_common = " from {$g4['mail_table']} ";
// 테이블의 전체 레코드수만 얻음
$sql = " select COUNT(*) as cnt " . $sql_common;
$sql = " select COUNT(*) as cnt {$sql_common} ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$total_count = $row['cnt'];
$page = 1;
$sql = "select * $sql_common order by ma_id desc ";
$sql = " select * {$sql_common} order by ma_id desc ";
$result = sql_query($sql);
$g4[title] = "회원메일발송";
include_once("./admin.head.php");
$g4['title'] = '회원메일발송';
include_once('./admin.head.php');
$colspan = 6;
?>
<table width=100%>
<tr>
<td width=20%>&nbsp;</td>
<td width=60% align=center>&nbsp;</td>
<td width=20% align=right>건수 : <? echo $total_count ?>&nbsp;</td>
</tr>
</table>
<section class="cbox">
<h2>등록된 메일내용 목록</h2>
<p>
<strong>테스트</strong>는 등록된 최고관리자의 이메일로 테스트 메일을 발송합니다.<br>
현재 등록된 메일은 총 <?=$total_count ?>건입니다.
</p>
<div id="btn_add">
<a href="./mail_form.php" id="mail_add">메일내용추가</a>
</div>
<table cellpadding=0 cellspacing=0 width=100%>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td width=40>ID</td>
<td width=''>제목</td>
<td width=120>작성일시</td>
<td width=50>테스트</td>
<td width=50>보내기</td>
<td width=80><a href='./mail_form.php'><img src='<?=$g4[admin_path]?>/img/icon_insert.gif' border=0></a></td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<form name="fmaillist" id="fmaillist" action="./mail_delete.php" method="post">
<table>
<thead>
<tr>
<th scope="col"><input type="checkbox" name="chkall" value="1" id="chkall" title="현재 페이지 목록 전체선택" onclick="check_all(this.form)"></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>
<?
for ($i=0; $row=mysql_fetch_array($result); $i++) {
//$s_del = '<a href="javascript:post_delete(\'mail_update.php\', '.$row['ma_id'].');">삭제</a>';
$s_vie = '<a href="./mail_preview.php?ma_id='.$row['ma_id'].'" target="_blank">미리보기</a>';
<?
for ($i=0; $row=mysql_fetch_array($result); $i++) {
$s_mod = icon("수정", "./mail_form.php?w=u&ma_id=$row[ma_id]");
//$s_del = icon("삭제", "javascript:del('./mail_update.php?w=d&ma_id=$row[ma_id]');");
$s_del = "<a href=\"javascript:post_delete('mail_update.php', '$row[ma_id]');\"><img src='img/icon_delete.gif' border=0 title='삭제' align='absmiddle'></a>";
$s_vie = icon("보기", "./mail_preview.php?ma_id=$row[ma_id]", "_blank");
$num = number_format($total_count - ($page - 1) * $config['cf_page_rows'] - $i);
?>
$num = number_format($total_count - ($page - 1) * $config[cf_page_rows] - $i);
<tr>
<td class="td_chk">
<input type="checkbox" id="chk_<?=$i?>" name="chk[]" value="<?=$row['ma_id']?>" title="메일선택">
</td>
<td class="td_num"><?=$num?></td>
<td><a href="./mail_form.php?w=u&amp;ma_id=<?=$row['ma_id']?>"><?=$row['ma_subject']?></a></td>
<td class="td_time"><?=$row['ma_time']?></td>
<td class="td_test"><a href="./mail_test.php?ma_id=<?=$row['ma_id']?>">테스트</a></td>
<td class="td_send"><a href="./mail_select_form.php?ma_id=<?=$row['ma_id']?>">보내기</a></td>
<td class="td_mng"><?=$s_vie?></td>
</tr>
$list = $i%2;
echo "
<tr class='list$list col1 ht center'>
<td>$num</td>
<td align=left>$row[ma_subject]</td>
<td>$row[ma_time]</td>
<td><a href='./mail_test.php?ma_id=$row[ma_id]'>테스트</a></td>
<td><a href='./mail_select_form.php?ma_id=$row[ma_id]'>보내기</a></td>
<td>$s_mod $s_del $s_vie</td>
</tr>";
}
<?
}
if (!$i)
echo "<tr><td colspan=\"".$colspan."\" class=\"empty_table\">자료가 없습니다.</td></tr>";
?>
</tbody>
</table>
if (!$i)
echo "<tr><td colspan='$colspan' height=100 align=center bgcolor='#FFFFFF'>자료가 없습니다.</td></tr>";
?>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
</table>
<div class="btn_list">
<button>선택삭제</button>
</div>
</form>
</section>
<script>
// POST 방식으로 삭제
function post_delete(action_url, val)
{
var f = document.fpost;
$(function() {
$('#fmaillist').submit(function() {
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
if (!is_checked("chk[]")) {
alert("선택삭제 하실 항목을 하나 이상 선택하세요.");
return false;
}
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
f.ma_id.value = val;
f.action = action_url;
f.submit();
}
}
return true;
} else {
return false;
}
});
});
</script>
<form name='fpost' method='post'>
<input type='hidden' name='sst' value='<?=$sst?>'>
<input type='hidden' name='sod' value='<?=$sod?>'>
<input type='hidden' name='sfl' value='<?=$sfl?>'>
<input type='hidden' name='stx' value='<?=$stx?>'>
<input type='hidden' name='page' value='<?=$page?>'>
<input type='hidden' name='w' value='d'>
<input type='hidden' name='ma_id'>
</form>
<?
include_once ("./admin.tail.php");
include_once ('./admin.tail.php');
?>

View File

@ -1,16 +1,34 @@
<?
$sub_menu = "200300";
include_once("./_common.php");
include_once("$g4[path]/lib/mailer.lib.php");
include_once('./_common.php');
include_once(G4_LIB_PATH.'/mailer.lib.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$se = sql_fetch("select ma_subject, ma_content from $g4[mail_table] where ma_id = '$ma_id' ");
$se = sql_fetch("select ma_subject, ma_content from {$g4['mail_table']} where ma_id = '{$ma_id}' ");
$subject = $se[ma_subject];
$content = $se[ma_content] . "<hr size=0><p><span style='font-size:9pt; font-family:굴림'>▶ 더 이상 정보 수신을 원치 않으시면 [<a href='$g4[url]/$g4[bbs]/email_stop.php?mb_id=***&mb_md5=***' target='_blank'>수신거부</a>] 해 주십시오.</span></p>";
$subject = $se['ma_subject'];
$content = $se['ma_content'] . "<hr size=0><p><span style='font-size:9pt; font-family:굴림'>▶ 더 이상 정보 수신을 원치 않으시면 [<a href='".G4_BBS_URL."/email_stop.php?mb_id=***&amp;mb_md5=***' target='_blank'>수신거부</a>] 해 주십시오.</span></p>";
?>
echo "<span style='font-size:9pt;'>$subject</span>";
echo "<hr size=0>";
echo $content;
?>
<!doctype html>
<html lang="ko">
<head>
<meta charset="utf-8">
<title>그누보드 메일발송 테스트</title>
</head>
<body>
<h1><?=$subject?></h1>
<p>
<?=$se['ma_content']?>
</p>
<p>
<strong>주의!</strong> 이 화면에 보여지는 디자인은 실제 내용이 발송되었을 때 디자인과 다를 수 있습니다.
</p>
</body>
</html>

View File

@ -1,192 +1,121 @@
<?
$sub_menu = "200300";
include_once("./_common.php");
if (!$config[cf_email_use])
alert("환경설정에서 \'메일발송 사용\'에 체크하셔야 메일을 발송할 수 있습니다.");
auth_check($auth[$sub_menu], "r");
$sql = "select * from $g4[mail_table] where ma_id = '$ma_id' ";
$ma = sql_fetch($sql);
if (!$ma[ma_id])
alert("보내실 내용을 선택하여 주십시오.");
// 전체회원수
$sql = "select COUNT(*) as cnt from $g4[member_table] ";
$row = sql_fetch($sql);
$tot_cnt = $row[cnt];
// 탈퇴대기회원수
$sql = "select COUNT(*) as cnt from $g4[member_table] where mb_leave_date <> '' ";
$row = sql_fetch($sql);
$finish_cnt = $row[cnt];
$last_option = explode("||", $ma[ma_last_option]);
for ($i=0; $i<count($last_option); $i++) {
$option = explode("=", $last_option[$i]);
// 동적변수
$var = $option[0];
$$var = $option[1];
}
if (!isset($mb_id1)) $mb_id1 = 1;
if (!isset($mb_level_from)) $mb_level_from = 1;
if (!isset($mb_level_to)) $mb_level_to = 10;
if (!isset($mb_mailling)) $mb_mailling = 1;
if (!isset($mb_sex)) $mb_sex = 1;
if (!isset($mb_area)) $mb_area = 1;
$g4[title] = "회원메일발송";
include_once("./admin.head.php");
?>
<table width=700 align=center>
<tr>
<td class='right'>전체회원수 : <?=number_format($tot_cnt)?> 명 , 탈퇴대기회원수 : <?=number_format($finish_cnt)?> 명 , <b>정상회원수 : <?=number_format($tot_cnt - $finish_cnt)?> 명</b></td>
</tr>
<tr>
<td>
<table cellpadding=0 cellspacing=0 width=100%>
<form name=frmsendmailselectform method=post action="./mail_select_list.php" autocomplete="off">
<input type=hidden name=ma_id value='<? echo $ma_id ?>'>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=80% class='col2 pad2'>
<tr>
<td></td>
</tr>
<tr><td colspan='2' class='line1'></td></tr>
<tr class='ht'>
<td>회원 ID</td>
<td>
<input type=radio name='mb_id1' value='1' onclick="mb_id1_click(1);" <?=$mb_id1?"checked":"";?>> 전체
<input type=radio name='mb_id1' value='0' onclick="mb_id1_click(0);" <?=!$mb_id1?"checked":"";?>> 구간
<br>
<input type=text class=ed id=mb_id1_from name=mb_id1_from value="<?=$mb_id1_from?>"> 에서
<input type=text class=ed id=mb_id1_to name=mb_id1_to value="<?=$mb_id1_to?>"> 까지
<script type="text/javascript">
function mb_id1_click(num)
{
if (num == 1) {
document.getElementById('mb_id1_from').disabled = true;
document.getElementById('mb_id1_from').style.backgroundColor = '#EEEEEE';
document.getElementById('mb_id1_to').disabled = true;
document.getElementById('mb_id1_to').style.backgroundColor = '#EEEEEE';
} else {
document.getElementById('mb_id1_from').disabled = false;
document.getElementById('mb_id1_from').style.backgroundColor = '#FFFFFF';
document.getElementById('mb_id1_to').disabled = false;
document.getElementById('mb_id1_to').style.backgroundColor = '#FFFFFF';
}
}
document.onLoad=mb_id1_click(<?=(int)$mb_id1?>);
</script>
</td>
</tr>
<tr class='ht'>
<td>생일</td>
<td>
<input type=text name='mb_birth_from' size=4 maxlength=4 class=ed value="<?=$mb_birth_from?>"> 부터
<input type=text name='mb_birth_to' size=4 maxlength=4 class=ed value="<?=$mb_birth_to?>"> 까지 (예 : 5월5일 인 경우, 0505 와 같이 입력 , 둘다 입력해야함)</td>
</tr>
<tr class='ht'>
<td>E-mail에</td>
<td><input type=text name='mb_email' class=ed value="<?=$mb_email?>"> 단어 포함 (예 : @sir.co.kr)</td>
</tr>
<tr class='ht'>
<td>성별</td>
<td>
<select id=mb_sex name=mb_sex>
<option value=''>전체
<option value='F'>여자
<option value='M'>남자
</select>
<script type="text/javascript"> document.getElementById('mb_sex').value = "<?=$mb_sex?>"; </script>
</td>
</tr>
<tr class='ht'>
<td>지역</td>
<td>
<select id=mb_area name=mb_area>
<option value=''>전체
<option value='서울'>서울
<option value='부산'>부산
<option value='대구'>대구
<option value='인천'>인천
<option value='광주'>광주
<option value='대전'>대전
<option value='울산'>울산
<option value='강원'>강원
<option value='경기'>경기
<option value='경남'>경남
<option value='경북'>경북
<option value='전남'>전남
<option value='전북'>전북
<option value='제주'>제주
<option value='충남'>충남
<option value='충북'>충북
</select>
<script type="text/javascript"> document.getElementById('mb_area').value = "<?=$mb_area?>"; </script>
</td>
</tr>
<tr class='ht'>
<td>메일링</td>
<td>
<select id=mb_mailling name=mb_mailling>
<option value='1'>수신동의한 회원만
<option value=''>전체
</select>
<script type="text/javascript"> document.getElementById('mb_mailling').value = "<?=$mb_mailling?>"; </script>
</td>
</tr>
<tr class='ht'>
<td>권한</td>
<td>
<select id=mb_level_from name=mb_level_from>
<? for ($i=1; $i<=10; $i++) { ?>
<option value='<? echo $i ?>'><? echo $i ?>
<? } ?>
</select> 에서
<select id=mb_level_to name=mb_level_to>
<? for ($i=1; $i<=10; $i++) { ?>
<option value='<? echo $i ?>'><? echo $i ?>
<? } ?>
</select> 까지
<script type="text/javascript"> document.getElementById('mb_level_from').value = "<?=$mb_level_from?>"; </script>
<script type="text/javascript"> document.getElementById('mb_level_to').value = "<?=$mb_level_to?>"; </script>
</td>
</tr>
<tr class='ht'>
<td>게시판그룹회원</td>
<td>
<select id=gr_id name=gr_id>
<option value=''>전체
<?
$sql = " select gr_id, gr_subject from $g4[group_table] order by gr_subject ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
echo "<option value='$row[gr_id]'>$row[gr_subject]";
}
?>
</select>
<script type="text/javascript"> document.getElementById('gr_id').value = "<?=$gr_id?>"; </script>
</td>
</tr>
<tr><td colspan='2' class='line2'></td></tr>
</table>
<p align=center>
<input type=submit class=btn1 value=' 확 인 '>&nbsp;
<input type=button class=btn1 value=' 목 록 ' onclick="document.location.href='./mail_list.php';">
</form>
</td>
</tr></table>
<?
include_once("./admin.tail.php");
?>
<?
$sub_menu = "200300";
include_once('./_common.php');
if (!$config['cf_email_use'])
alert('환경설정에서 \'메일발송 사용\'에 체크하셔야 메일을 발송할 수 있습니다.');
auth_check($auth[$sub_menu], 'r');
$sql = " select * from {$g4['mail_table']} where ma_id = '$ma_id' ";
$ma = sql_fetch($sql);
if (!$ma['ma_id'])
alert('보내실 내용을 선택하여 주십시오.');
// 전체회원수
$sql = " select COUNT(*) as cnt from {$g4['member_table']} ";
$row = sql_fetch($sql);
$tot_cnt = $row['cnt'];
// 탈퇴대기회원수
$sql = " select COUNT(*) as cnt from {$g4['member_table']} where mb_leave_date <> '' ";
$row = sql_fetch($sql);
$finish_cnt = $row['cnt'];
$last_option = explode('||', $ma['ma_last_option']);
for ($i=0; $i<count($last_option); $i++) {
$option = explode('=', $last_option[$i]);
// 동적변수
$var = $option[0];
$$var = $option[1];
}
if (!isset($mb_id1)) $mb_id1 = 1;
if (!isset($mb_level_from)) $mb_level_from = 1;
if (!isset($mb_level_to)) $mb_level_to = 10;
if (!isset($mb_mailling)) $mb_mailling = 1;
$g4['title'] = '회원메일발송';
include_once('./admin.head.php');
?>
<section class="cbox">
<h2>메일발송대상 선택</h2>
<p>
전체회원 <?=number_format($tot_cnt)?>명 , 탈퇴대기회원 <?=number_format($finish_cnt)?>명, 정상회원 <?=number_format($tot_cnt - $finish_cnt)?>명 중 메일 발송 대상 선택
</p>
<form name="frmsendmailselectform" id="frmsendmailselectform" action="./mail_select_list.php" method="post" autocomplete="off">
<input type="hidden" name="ma_id" value='<?=$ma_id?>'>
<table class="frm_tbl">
<tbody>
<tr>
<th scope="row">회원 ID</th>
<td>
<input type="radio" name="mb_id1" value="1" id="mb_id1_all" <?=$mb_id1?"checked":"";?>> <label for="mb_id1_all">전체</label>
<input type="radio" name="mb_id1" value="0" id="mb_id1_section" <?=!$mb_id1?"checked":"";?>> <label for="mb_id1_section">구간</label>
<input type="text" name="mb_id1_from" value="<?=$mb_id1_from?>" id="mb_id1_from" title="시작구간" class="frm_input"> 에서
<input type="text" name="mb_id1_to" value="<?=$mb_id1_to?>" id="mb_id1_to" title="종료구간" class="frm_input"> 까지
</td>
</tr>
<tr>
<th scope="row"><label for="mb_email">E-mail</label></th>
<td>
<?=help("메일 주소에 단어 포함 (예 : @sir.co.kr)")?>
<input type="text" name="mb_email" value="<?=$mb_email?>" id="mb_email" class="frm_input" size="50">
</td>
</tr>
<tr>
<th scope="row"><label for="mb_mailling">메일링</label></th>
<td>
<select name="mb_mailling" id="mb_mailling">
<option value="1">수신동의한 회원만
<option value="">전체
</select>
</td>
</tr>
<tr>
<th scope="row"><label for="mb_level_from">권한</label></th>
<td>
<select name="mb_level_from" id="mb_level_from" title="최소권한">
<? for ($i=1; $i<=10; $i++) { ?>
<option value="<? echo $i ?>"><? echo $i ?></option>
<? } ?>
</select> 에서
<select name="mb_level_to" id="mb_level_to" title="최대권한">
<? for ($i=1; $i<=10; $i++) { ?>
<option value="<? echo $i ?>"><? echo $i ?></option>
<? } ?>
</select> 까지
</td>
</tr>
<tr>
<th scope="row"><label for="gr_id">게시판그룹회원</label></th>
<td>
<select id="gr_id" name="gr_id">
<option value=''>전체</option>
<?
$sql = " select gr_id, gr_subject from {$g4['group_table']} order by gr_subject ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
{
echo '<option value="'.$row['gr_id'].'">'.$row['gr_subject'].'</option>';
}
?>
</select>
</td>
</tr>
</tbody>
</table>
<div class="btn_confirm">
<input type="submit" value="확인" class="btn_submit">
<a href="./mail_list.php">목록 </a>
</div>
</form>
</section>
<?
include_once('./admin.tail.php');
?>

View File

@ -1,60 +1,44 @@
<?
$sub_menu = "200300";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$token = get_token();
$html_title = "선택된 회원메일리스트";
$ma_last_option = "";
$sql_common = " from $g4[member_table] ";
$sql_common = " from {$g4['member_table']} ";
$sql_where = " where (1) ";
// 회원ID ..에서 ..까지
if ($mb_id1 != 1)
$sql_where .= " and mb_id between '$mb_id1_from' and '$mb_id1_to' ";
$sql_where .= " and mb_id between '{$mb_id1_from}' and '{$mb_id1_to}' ";
// E-mail에 특정 단어 포함
if ($mb_email != "")
$sql_where .= " and mb_email like '%$mb_email%' ";
// 성별
if ($mb_sex != "")
$sql_where .= " and mb_sex = '$mb_sex' ";
// 생일
if ($mb_birth_from && $mb_birth_to)
$sql_where .= " and substring(mb_birth,5,4) between '$mb_birth_from' and '$mb_birth_to' ";
// 지역
if ($mb_area != "")
$sql_where .= " and mb_addr1 like '$mb_area%' ";
$sql_where .= " and mb_email like '%{$mb_email}%' ";
// 메일링
if ($mb_mailling != "")
$sql_where .= " and mb_mailling = '$mb_mailling' ";
$sql_where .= " and mb_mailling = '{$mb_mailling}' ";
// 권한
$sql_where .= " and mb_level between '$mb_level_from' and '$mb_level_to' ";
$sql_where .= " and mb_level between '{$mb_level_from}' and '{$mb_level_to}' ";
// 게시판그룹회원
if ($gr_id)
{
if ($gr_id) {
$group_member = "";
$comma = "";
$sql2 = " select mb_id from $g4[group_member_table] where gr_id = '$gr_id' order by mb_id ";
$sql2 = " select mb_id from {$g4['group_member_table']} where gr_id = '{$gr_id}' order by mb_id ";
$result2 = sql_query($sql2);
for ($k=0; $row2=sql_fetch_array($result2); $k++)
{
$group_member .= "{$comma}'$row2[mb_id]'";
for ($k=0; $row2=sql_fetch_array($result2); $k++) {
$group_member .= "{$comma}'{$row2['mb_id']}'";
$comma = ",";
}
if (!$group_member)
alert("선택하신 게시판 그룹회원이 한명도 없습니다.");
alert('선택하신 게시판 그룹회원이 한명도 없습니다.');
$sql_where .= " and mb_id in ($group_member) ";
}
@ -62,80 +46,79 @@ if ($gr_id)
// 탈퇴, 차단된 회원은 제외
$sql_where .= " and mb_leave_date = '' and mb_intercept_date = '' ";
$sql = " select COUNT(*) as cnt $sql_common $sql_where ";
$sql = " select COUNT(*) as cnt {$sql_common} {$sql_where} ";
$row = sql_fetch($sql);
$cnt = $row[cnt];
$cnt = $row['cnt'];
if ($cnt == 0)
alert("선택하신 내용으로는 해당되는 회원자료가 없습니다.");
alert('선택하신 내용으로는 해당되는 회원자료가 없습니다.');
// 마지막 옵션을 저장합니다.
$ma_last_option .= "mb_id1=$mb_id1";
$ma_last_option .= "||mb_id1_from=$mb_id1_from";
$ma_last_option .= "||mb_id1_to=$mb_id1_to";
$ma_last_option .= "||mb_email=$mb_email";
$ma_last_option .= "||mb_sex=$mb_sex";
$ma_last_option .= "||mb_birth_from=$mb_birth_from";
$ma_last_option .= "||mb_birth_to=$mb_birth_to";
$ma_last_option .= "||mb_area=$mb_area";
$ma_last_option .= "||mb_mailling=$mb_mailling";
$ma_last_option .= "||mb_level_from=$mb_level_from";
$ma_last_option .= "||mb_level_to=$mb_level_to";
$ma_last_option .= "||gr_id=$gr_id";
$ma_last_option .= "mb_id1={$mb_id1}";
$ma_last_option .= "||mb_id1_from={$mb_id1_from}";
$ma_last_option .= "||mb_id1_to={$mb_id1_to}";
$ma_last_option .= "||mb_email={$mb_email}";
$ma_last_option .= "||mb_mailling={$mb_mailling}";
$ma_last_option .= "||mb_level_from={$mb_level_from}";
$ma_last_option .= "||mb_level_to={$mb_level_to}";
$ma_last_option .= "||gr_id={$gr_id}";
sql_query(" update $g4[mail_table] set ma_last_option = '$ma_last_option' where ma_id = '$ma_id' ");
sql_query(" update {$g4['mail_table']} set ma_last_option = '{$ma_last_option}' where ma_id = '{$ma_id}' ");
include_once("./admin.head.php");
$g4['title'] = "메일발송 대상 회원";
include_once('./admin.head.php');
?>
<table width=500 align=center><tr><td>
<div class="cbox">
<p>조건에 따라 선택된 메일발송 대상자 목록입니다.</p>
<?//=subtitle_bar($html_title)?><p>
<form name="fmailselectlist" id="fmailselectlist" method="post" action="./mail_select_update.php">
<input type="hidden" name="token" value="<?=$token?>">
<input type="hidden" name="ma_id" value="<?=$ma_id ?>">
<input type="hidden" name="ma_list" value="<?=$ma_list?>">
<table>
<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">E-mail</th>
</tr>
</thead>
<tbody>
<?
$sql = " select mb_id, mb_name, mb_nick, mb_email, mb_datetime $sql_common $sql_where order by mb_id ";
$result = sql_query($sql);
$i=0;
$ma_list = "";
$cr = "";
while ($row=sql_fetch_array($result))
{
$i++;
$ma_list .= $cr . $row['mb_email'] . "||" . $row['mb_id'] . "||" . $row['mb_name'] . "||" . $row['mb_nick'] . "||" . $row['mb_datetime'];
$cr = "\n";
?>
<tr>
<td class="td_num"><?=$i?></td>
<td class="td_mbid"><?=$row['mb_id']?></td>
<td class="td_mbname"><?=$row['mb_name']?></td>
<td class="td_mbnick"><?=$row['mb_nick']?></td>
<td class="td_time"><?=$row['mb_birth']?></td>
<td><?=$row['mb_email']?></td>
</tr>
<?}?>
</tbody>
</table>
</div>
<div align=right>선택된 회원수 : <?=number_format($cnt)?> 명</div>
<form name=fmailselectlist method=post onsubmit="return fmailselectlist_submit(this);">
<input type=hidden name=token value='<?=$token?>'>
<table cellpadding=4 cellspacing=1 width=100% class=tablebg>
<input type="hidden" name="ma_id" value="<? echo $ma_id ?>">
<tr>
<td align=center>
<select size=25 name='list' style='width:500px;'>
<option>번호 . 회원아이디 / 이름 / 별명 / 생일 / E-mail
<?
$sql = " select mb_id, mb_name, mb_nick, mb_email, mb_birth, mb_datetime $sql_common $sql_where order by mb_id ";
$result = sql_query($sql);
$i=0;
$ma_list = "";
$cr = "";
while ($row=sql_fetch_array($result))
{
$i++;
echo "<option>$i . $row[mb_id] / $row[mb_name] / $row[mb_nick] / $row[mb_birth] / $row[mb_email]";
$ma_list .= $cr . $row[mb_email] . "||" . $row[mb_id] . "||" . $row[mb_name] . "||" . $row[mb_nick] . "||" . $row[mb_birth] . "||" . $row[mb_datetime];
$cr = "\n";
}
?>
</select>
<textarea name="ma_list" style="display:none"><?=$ma_list?></textarea>
</td>
</tr>
</table>
<div class="btn_confirm">
<input type="submit" value="메일보내기" class="btn_submit">
<a href="./mail_select_form.php?ma_id=<?=$ma_id?>">뒤로</a>
</div>
<p align=center>
<input type=submit class=btn1 value=' 메일 보내기 '>&nbsp;
<input type=button class=btn1 value=' 뒤 로 ' onclick="history.go(-1);">
</form>
</td></tr></table>
<script type='text/javascript'>
function fmailselectlist_submit(f)
{
f.action = "./mail_select_update.php";
return true;
}
</script>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,17 +1,17 @@
<?
$sub_menu = "200300";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
$html_title = "회원메일 발송";
$html_title = '회원메일 발송';
check_demo();
check_token();
include_once("./admin.head.php");
include_once("$g4[path]/lib/mailer.lib.php");
include_once('./admin.head.php');
include_once(G4_LIB_PATH.'/mailer.lib.php');
$countgap = 10; // 몇건씩 보낼지 설정
$maxscreen = 500; // 몇건씩 화면에 보여줄건지?
@ -25,56 +25,49 @@ echo "</span>";
<span id="cont"></span>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>
<?
flush();
ob_flush();
$ma_id = trim($_POST[ma_id]);
$select_member_list = addslashes(trim($_POST[ma_list]));
$ma_id = trim($_POST['ma_id']);
$select_member_list = addslashes(trim($_POST['ma_list']));
//print_r2($_POST); EXIT;
$member_list = explode("\n", $select_member_list);
// 메일내용 가져오기
$sql = "select ma_subject, ma_content from $g4[mail_table] where ma_id = '$ma_id' ";
$sql = "select ma_subject, ma_content from {$g4['mail_table']} where ma_id = '$ma_id' ";
$ma = sql_fetch($sql);
$subject = $ma[ma_subject];
$subject = $ma['ma_subject'];
$admin = get_admin('super', 'mb_email');
$from_email = $admin['mb_email'];
$cnt = 0;
for ($i=0; $i<count($member_list); $i++)
for ($i=0; $i<count($member_list); $i++)
{
list($email, $mb_id, $name, $nick, $birth, $datetime) = explode("||", trim($member_list[$i]));
list($email, $mb_id, $name, $nick, $datetime) = explode("||", trim($member_list[$i]));
$sw = preg_match("/[0-9a-zA-Z_]+(\.[0-9a-zA-Z_]+)*@[0-9a-zA-Z_]+(\.[0-9a-zA-Z_]+)*/", $email);
// 올바른 메일 주소만
if ($sw == true)
if ($sw == true)
{
$cnt++;
$mb_md5 = md5($mb_id.$email.$datetime);
$content = $ma[ma_content];
$content = $ma['ma_content'];
$content = preg_replace("/{이름}/", $name, $content);
$content = preg_replace("/{별명}/", $nick, $content);
$content = preg_replace("/{회원아이디}/", $mb_id, $content);
$content = preg_replace("/{이메일}/", $email, $content);
$content = preg_replace("/{생일}/", (int)substr($birth,4,2).'월 '.(int)substr($birth,6,2).'일', $content);
$content = $content . "<hr size=0><p><span style='font-size:9pt; font-familye:굴림'>▶ 더 이상 정보 수신을 원치 않으시면 [<a href='$g4[url]/$g4[bbs]/email_stop.php?mb_id=$mb_id&mb_md5=$mb_md5' target='_blank'>수신거부</a>] 해 주십시오.</span></p>";
$content = $content . "<hr size=0><p><span style='font-size:9pt; font-familye:굴림'>▶ 더 이상 정보 수신을 원치 않으시면 [<a href='".G4_BBS_URL."/email_stop.php?mb_id={$mb_id}&amp;mb_md5={$mb_md5}' target='_blank'>수신거부</a>] 해 주십시오.</span></p>";
/*
ob_start();
include "$mail_skin/mail.skin.php";
$content = ob_get_contents();
ob_end_clean();
*/
//mailer($default[de_subject], $default[de_admin_email], $email, $subject, $content, 1);
mailer($config[cf_title], $member[mb_email], $email, $subject, $content, 1);
mailer($config['cf_title'], $from_email, $email, $subject, $content, 1);
echo "<script> document.all.cont.innerHTML += '$cnt. $email ($mb_id : $name)<br>'; </script>\n";
//echo "+";
@ -82,7 +75,7 @@ for ($i=0; $i<count($member_list); $i++)
ob_flush();
ob_end_flush();
usleep($sleepsec);
if ($cnt % $countgap == 0)
if ($cnt % $countgap == 0)
{
echo "<script> document.all.cont.innerHTML += '<br>'; document.body.scrollTop += 1000; </script>\n";
}

View File

@ -1,41 +1,39 @@
<?
$sub_menu = "200300";
include_once("./_common.php");
include_once('./_common.php');
if (!$config[cf_email_use])
alert("환경설정에서 \'메일발송 사용\'에 체크하셔야 메일을 발송할 수 있습니다.");
if (!$config['cf_email_use'])
alert('환경설정에서 \'메일발송 사용\'에 체크하셔야 메일을 발송할 수 있습니다.');
include_once("$g4[path]/lib/mailer.lib.php");
include_once(G4_LIB_PATH.'/mailer.lib.php');
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
check_demo();
$g4[title] = "회원메일 테스트";
$g4['title'] = '회원메일 테스트';
$name = $member[mb_name];
$nick = $member[mb_nick];
$mb_id = $member[mb_id];
$email = $member[mb_email];
$birth = $member[mb_birth];
$name = $member['mb_name'];
$nick = $member['mb_nick'];
$mb_id = $member['mb_id'];
$email = $member['mb_email'];
$sql = "select ma_subject, ma_content from $g4[mail_table] where ma_id = '$ma_id' ";
$sql = "select ma_subject, ma_content from {$g4['mail_table']} where ma_id = '{$ma_id}' ";
$ma = sql_fetch($sql);
$subject = $ma[ma_subject];
$subject = $ma['ma_subject'];
$content = $ma[ma_content];
$content = $ma['ma_content'];
$content = preg_replace("/{이름}/", $name, $content);
$content = preg_replace("/{별명}/", $nick, $content);
$content = preg_replace("/{회원아이디}/", $mb_id, $content);
$content = preg_replace("/{이메일}/", $email, $content);
$content = preg_replace("/{생일}/", (int)substr($birth,4,2).'월 '.(int)substr($birth,6,2).'일', $content);
$mb_md5 = md5($member[mb_id].$member[mb_email].$member[mb_datetime]);
$mb_md5 = md5($member['mb_id'].$member['mb_email'].$member['mb_datetime']);
$content = $content . "<hr size=0><p><span style='font-size:9pt; font-familye:굴림'>▶ 더 이상 정보 수신을 원치 않으시면 [<a href='$g4[url]/$g4[bbs]/email_stop.php?mb_id=$mb_id&mb_md5=$mb_md5' target='_blank'>수신거부</a>] 해 주십시오.</span></p>";
$content = $content . '<p>더 이상 정보 수신을 원치 않으시면 [<a href="'.G4_BBS_URL.'/email_stop.php?mb_id='.$mb_id.'&amp;mb_md5='.$mb_md5.'" target="_blank">수신거부</a>] 해 주십시오.</p>';
mailer($config[cf_title], $member[mb_email], $member[mb_email], $subject, $content, 1);
mailer($config['cf_title'], $member['mb_email'], $member['mb_email'], $subject, $content, 1);
alert("$member[mb_nick]($member[mb_email])님께 테스트 메일을 발송하였습니다.\\n\\n확인하여 주십시오.");
alert($member['mb_nick'].'('.$member['mb_email'].')님께 테스트 메일을 발송하였습니다. 확인하여 주십시오.');
?>

View File

@ -1,39 +1,39 @@
<?
$sub_menu = "200300";
include_once("./_common.php");
include_once('./_common.php');
if ($w == 'u' || $w == 'd')
check_demo();
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
check_token();
if ($w == "")
if ($w == '')
{
$sql = " insert $g4[mail_table]
set ma_id = '$_POST[ma_id]',
ma_subject = '$_POST[ma_subject]',
ma_content = '$_POST[ma_content]',
ma_time = '$g4[time_ymdhis]',
ma_ip = '$_SERVER[REMOTE_ADDR]' ";
$sql = " insert {$g4['mail_table']}
set ma_id = '{$_POST['ma_id']}',
ma_subject = '{$_POST['ma_subject']}',
ma_content = '{$_POST['ma_content']}',
ma_time = '".G4_TIME_YMDHIS."',
ma_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($sql);
}
else if ($w == "u")
}
else if ($w == 'u')
{
$sql = " update $g4[mail_table]
set ma_subject = '$_POST[ma_subject]',
ma_content = '$_POST[ma_content]',
ma_time = '$g4[time_ymdhis]',
ma_ip = '$_SERVER[REMOTE_ADDR]'
where ma_id = '$_POST[ma_id]' ";
$sql = " update {$g4['mail_table']}
set ma_subject = '{$_POST['ma_subject']}',
ma_content = '{$_POST['ma_content']}',
ma_time = '".G4_TIME_YMDHIS."',
ma_ip = '{$_SERVER['REMOTE_ADDR']}'
where ma_id = '{$_POST['ma_id']}' ";
sql_query($sql);
}
else if ($w == "d")
}
else if ($w == 'd')
{
$sql = " delete from $g4[mail_table] where ma_id = '$_POST[ma_id]' ";
$sql = " delete from {$g4['mail_table']} where ma_id = '{$_POST['ma_id']}' ";
sql_query($sql);
}
goto_url("./mail_list.php");
goto_url('./mail_list.php');
?>

View File

@ -1,262 +1,298 @@
<?
$sub_menu = "200100";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
$token = get_token();
if ($w == "")
if ($w == '')
{
$required_mb_id = "required minlength=3 alphanumericunderline itemname='회원아이디'";
$required_mb_password = "required itemname='패스워드'";
$required_mb_id = 'required';
$required_mb_id_class = 'required minlength=3 alnum_';
$required_mb_password = 'required';
$sound_only = '<strong class="sound_only">필수</strong>';
$mb[mb_mailling] = 1;
$mb[mb_open] = 1;
$mb[mb_level] = $config[cf_register_level];
$html_title = "등록";
$mb['mb_mailling'] = 1;
$mb['mb_open'] = 1;
$mb['mb_level'] = $config['cf_register_level'];
$html_title = '추가';
}
else if ($w == "u")
else if ($w == 'u')
{
$mb = get_member($mb_id);
if (!$mb[mb_id])
alert("존재하지 않는 회원자료입니다.");
if (!$mb['mb_id'])
alert('존재하지 않는 회원자료입니다.');
if ($is_admin != 'super' && $mb[mb_level] >= $member[mb_level])
alert("자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.");
if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level'])
alert('자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.');
$required_mb_id = "readonly style='background-color:#dddddd;'";
$required_mb_password = "";
$html_title = "수정";
$required_mb_id = 'readonly';
$required_mb_password = '';
$html_title = '수정';
$mb[mb_email] = get_text($mb[mb_email]);
$mb[mb_homepage] = get_text($mb[mb_homepage]);
$mb[mb_password_q] = get_text($mb[mb_password_q]);
$mb[mb_password_a] = get_text($mb[mb_password_a]);
$mb[mb_birth] = get_text($mb[mb_birth]);
$mb[mb_tel] = get_text($mb[mb_tel]);
$mb[mb_hp] = get_text($mb[mb_hp]);
$mb[mb_addr1] = get_text($mb[mb_addr1]);
$mb[mb_addr2] = get_text($mb[mb_addr2]);
$mb[mb_signature] = get_text($mb[mb_signature]);
$mb[mb_recommend] = get_text($mb[mb_recommend]);
$mb[mb_profile] = get_text($mb[mb_profile]);
$mb[mb_1] = get_text($mb[mb_1]);
$mb[mb_2] = get_text($mb[mb_2]);
$mb[mb_3] = get_text($mb[mb_3]);
$mb[mb_4] = get_text($mb[mb_4]);
$mb[mb_5] = get_text($mb[mb_5]);
$mb[mb_6] = get_text($mb[mb_6]);
$mb[mb_7] = get_text($mb[mb_7]);
$mb[mb_8] = get_text($mb[mb_8]);
$mb[mb_9] = get_text($mb[mb_9]);
$mb[mb_10] = get_text($mb[mb_10]);
}
else
alert("제대로 된 값이 넘어오지 않았습니다.");
$mb['mb_email'] = get_text($mb['mb_email']);
$mb['mb_homepage'] = get_text($mb['mb_homepage']);
$mb['mb_password_q'] = get_text($mb['mb_password_q']);
$mb['mb_password_a'] = get_text($mb['mb_password_a']);
$mb['mb_birth'] = get_text($mb['mb_birth']);
$mb['mb_tel'] = get_text($mb['mb_tel']);
$mb['mb_hp'] = get_text($mb['mb_hp']);
$mb['mb_addr1'] = get_text($mb['mb_addr1']);
$mb['mb_addr2'] = get_text($mb['mb_addr2']);
$mb['mb_signature'] = get_text($mb['mb_signature']);
$mb['mb_recommend'] = get_text($mb['mb_recommend']);
$mb['mb_profile'] = get_text($mb['mb_profile']);
$mb['mb_1'] = get_text($mb['mb_1']);
$mb['mb_2'] = get_text($mb['mb_2']);
$mb['mb_3'] = get_text($mb['mb_3']);
$mb['mb_4'] = get_text($mb['mb_4']);
$mb['mb_5'] = get_text($mb['mb_5']);
$mb['mb_6'] = get_text($mb['mb_6']);
$mb['mb_7'] = get_text($mb['mb_7']);
$mb['mb_8'] = get_text($mb['mb_8']);
$mb['mb_9'] = get_text($mb['mb_9']);
$mb['mb_10'] = get_text($mb['mb_10']);
}
else
alert('제대로 된 값이 넘어오지 않았습니다.');
if ($mb[mb_mailling]) $mailling_checked = "checked"; // 메일 수신
if ($mb[mb_sms]) $sms_checked = "checked"; // SMS 수신
if ($mb[mb_open]) $open_checked = "checked"; // 정보 공개
$mailling_no_checked = '';
$sms_no_checked = '';
$open_no_checked = '';
if ($mb['mb_mailling'] == 1) {
$mailling_checked = 'checked="checked"'; //메일수신
} else {
$mailing_checked = '';
$mailling_no_checked = 'checked="checked"';
}
$g4[title] = "회원정보 " . $html_title;
include_once("./admin.head.php");
if ($mb['mb_sms']) {
$sms_checked = 'checked="checked"'; // SMS 수신
} else {
$sms_checked = '';
$sms_no_checked = 'checked="checked"';
}
if ($mb['mb_open']) {
$open_checked = 'checked="checked"'; // 정보 공개
} else {
$open_checked = '';
$open_no_checked = 'checked="checked"';
}
if(!isset($mb['mb_adult'])) {
sql_query(" ALTER TABLE `{$g4['member_table']}`
ADD `mb_adult` ENUM('Y', 'N') NOT NULL DEFAULT 'N' AFTER `mb_birth`,
ADD `mb_hp_certify` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00' AFTER `mb_lost_certify` ", FALSE);
}
if ($mb['mb_intercept_date']) $g4['title'] = "차단된 ";
else $g4['title'] .= "";
$g4['title'] .= '회원 '.$html_title;
include_once('./admin.head.php');
?>
<table width=100% align=center cellpadding=0 cellspacing=0>
<form name=fmember method=post onsubmit="return fmember_submit(this);" enctype="multipart/form-data" autocomplete="off">
<input type=hidden name=w value='<?=$w?>'>
<input type=hidden name=sfl value='<?=$sfl?>'>
<input type=hidden name=stx value='<?=$stx?>'>
<input type=hidden name=sst value='<?=$sst?>'>
<input type=hidden name=sod value='<?=$sod?>'>
<input type=hidden name=page value='<?=$page?>'>
<input type=hidden name=token value='<?=$token?>'>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=30% class='col2 pad2'>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=30% class='col2 pad2'>
<tr>
<td colspan=4 class=title align=left><img src='<?=$g4[admin_path]?>/img/icon_title.gif'> <?=$g4[title]?></td>
</tr>
<tr><td colspan=4 class=line1></td></tr>
<tr class='ht'>
<td>아이디</td>
<td>
<input type=text class=ed name='mb_id' size=20 maxlength=20 minlength=2 <?=$required_mb_id?> itemname='아이디' value='<? echo $mb[mb_id] ?>'>
<?if ($w=="u"){?><a href='./boardgroupmember_form.php?mb_id=<?=$mb[mb_id]?>'>접근가능그룹보기</a><?}?>
</td>
<td>패스워드</td>
<td><input type=password class=ed name='mb_password' size=20 maxlength=20 <?=$required_mb_password?> itemname='암호'></td>
</tr>
<tr class='ht'>
<td>이름(실명)</td>
<td><input type=text class=ed name='mb_name' maxlength=20 minlength=2 required itemname='이름(실명)' value='<? echo $mb[mb_name] ?>'></td>
<td>별명</td>
<td><input type=text class=ed name='mb_nick' maxlength=20 minlength=2 required itemname='별명' value='<? echo $mb[mb_nick] ?>'></td>
</tr>
<tr class='ht'>
<td>회원 권한</td>
<td><?=get_member_level_select("mb_level", 1, $member[mb_level], $mb[mb_level])?></td>
<td>포인트</td>
<td><a href='./point_list.php?sfl=mb_id&stx=<?=$mb[mb_id]?>' class='bold'><?=number_format($mb[mb_point])?></a> 점</td>
</tr>
<tr class='ht'>
<td>E-mail</td>
<td><input type=text class=ed name='mb_email' size=40 maxlength=100 required email itemname='e-mail' value='<? echo $mb[mb_email] ?>'></td>
<td>홈페이지</td>
<td><input type=text class=ed name='mb_homepage' size=40 maxlength=255 itemname='홈페이지' value='<? echo $mb[mb_homepage] ?>'></td>
</tr>
<tr class='ht'>
<td>전화번호</td>
<td><input type=text class=ed name='mb_tel' maxlength=20 itemname='전화번호' value='<? echo $mb[mb_tel] ?>'></td>
<td>핸드폰번호</td>
<td><input type=text class=ed name='mb_hp' maxlength=20 itemname='핸드폰번호' value='<? echo $mb[mb_hp] ?>'></td>
</tr>
<tr class='ht'>
<td>주소</td>
<td>
<input type=text class=ed name='mb_zip1' size=4 maxlength=3 readonly itemname='우편번호 앞자리' value='<? echo $mb[mb_zip1] ?>'> -
<input type=text class=ed name='mb_zip2' size=4 maxlength=3 readonly itemname='우편번호 뒷자리' value='<? echo $mb[mb_zip2] ?>'>
<a href="javascript:;" onclick="win_zip('fmember', 'mb_zip1', 'mb_zip2', 'mb_addr1', 'mb_addr2');"><img src='<?=$g4[bbs_img_path]?>/btn_zip.gif' align=absmiddle border=0></a>
<br><input type=text class=ed name='mb_addr1' size=40 readonly value='<? echo $mb[mb_addr1] ?>'>
<br><input type=text class=ed name='mb_addr2' size=25 itemname='상세주소' value='<? echo $mb[mb_addr2] ?>'> 상세주소 입력</td>
<td>회원아이콘</td>
<td colspan=3>
<input type=file name='mb_icon' class=ed><br>이미지 크기는 <?=$config[cf_member_icon_width]?>x<?=$config[cf_member_icon_height]?>으로 해주세요.
<?
$mb_dir = substr($mb[mb_id],0,2);
$icon_file = "$g4[path]/data/member/$mb_dir/$mb[mb_id].gif";
if (file_exists($icon_file)) {
echo "<br><img src='$icon_file' align=absmiddle>";
echo " <input type=checkbox name='del_mb_icon' value='1' class='csscheck'>삭제";
}
?>
</td>
</tr>
<tr class='ht'>
<td>생년월일</td>
<td><input type=text class=ed name=mb_birth size=9 maxlength=8 value='<? echo $mb[mb_birth] ?>'></td>
<td>남녀</td>
<td>
<select name=mb_sex><option value=''>----<option value='F'>여자<option value='M'>남자</select>
<script type="text/javascript"> document.fmember.mb_sex.value = "<?=$mb[mb_sex]?>"; </script></td>
</tr>
<tr class='ht'>
<td>메일 수신</td>
<td><input type=checkbox name=mb_mailling value='1' <?=$mailling_checked?>> 정보 메일을 받음</td>
<td>SMS 수신</td>
<td><input type=checkbox name=mb_sms value='1' <?=$sms_checked?>> 문자메세지를 받음</td>
</tr>
<tr class='ht'>
<td>정보 공개</td>
<td colspan=3><input type=checkbox name=mb_open value='1' <?=$open_checked?>> 타인에게 자신의 정보를 공개</td>
</tr>
<tr class='ht'>
<td>서명</td>
<td><textarea class=ed name=mb_signature rows=5 style='width:99%; word-break:break-all;'><? echo $mb[mb_signature] ?></textarea></td>
<td>자기 소개</td>
<td><textarea class=ed name=mb_profile rows=5 style='width:99%; word-break:break-all;'><? echo $mb[mb_profile] ?></textarea></td>
</tr>
<tr class='ht'>
<td>메모</td>
<td colspan=3><textarea class=ed name=mb_memo rows=5 style='width:99%; word-break:break-all;'><? echo $mb[mb_memo] ?></textarea></td>
</tr>
<form name="fmember" id="fmember" action="./member_form_update.php" onsubmit="return fmember_submit(this);" method="post" enctype="multipart/form-data">
<input type="hidden" name="w" value="<?=$w?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="token" value="<?=$token?>">
<? if ($w == "u") { ?>
<tr class='ht'>
<td>회원가입일</td>
<td><?=$mb[mb_datetime]?></td>
<td>최근접속일</td>
<td><?=$mb[mb_today_login]?></td>
</tr>
<tr class='ht'>
<td>IP</td>
<td><?=$mb[mb_ip]?></td>
<? if ($config[cf_use_email_certify]) { ?>
<td>인증일시</td>
<td><?=$mb[mb_email_certify]?>
<? if ($mb[mb_email_certify] == "0000-00-00 00:00:00") { echo "<input type=checkbox name=passive_certify>수동인증"; } ?></td>
<? } else { ?>
<td></td>
<td></td>
<div class="cbox">
<table class="frm_tbl">
<colgroup>
<col class="grid_3">
<col class="grid_6">
<col class="grid_3">
<col class="grid_6">
</colgroup>
<tbody>
<tr>
<th scope="row"><label for="mb_id">아이디<?=$sound_only?></label></th>
<td>
<input type="text" name="mb_id" value="<?=$mb['mb_id']?>" id="mb_id" <?=$required_mb_id?> class="frm_input <?=$required_mb_id_class?>" size="15" maxlength="20" >
<?if ($w=='u'){?><a href="./boardgroupmember_form.php?mb_id=<?=$mb['mb_id']?>">접근가능그룹보기</a><?}?>
</td>
<th scope="row"><label for="mb_password">패스워드<?=$sound_only?></label></th>
<td><input type="password" name="mb_password" id="mb_password" <?=$required_mb_password?> class="frm_input <?=$required_mb_password?>" size="15" maxlength="20"></td>
</tr>
<tr>
<th scope="row"><label for="mb_name">이름(실명)<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="mb_name" value="<?=$mb['mb_name']?>" id="mb_name" required class="required hangul frm_input minlength=2" size="15" maxlength="20"></td>
<th scope="row"><label for="mb_nick">별명<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="mb_nick" value="<?=$mb['mb_nick']?>" id="mb_nick" required class="required frm_input minlength=2" size="15" maxlength="20"></td>
</tr>
<tr>
<th scope="row"><label for="mb_level">회원 권한</label></th>
<td><?=get_member_level_select('mb_level', 1, $member['mb_level'], $mb['mb_level'])?></td>
<th scope="row">포인트</th>
<td><a href="./point_list.php?sfl=mb_id&amp;stx=<?=$mb['mb_id']?>" target="_blank"><?=number_format($mb['mb_point'])?></a> 점</td>
</tr>
<tr>
<th scope="row"><label for="mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="mb_email" value="<?=$mb['mb_email']?>" id="mb_email" maxlength="100" required class="required frm_input email" size="30"></td>
<th scope="row"><label for="mb_homepage">홈페이지</label></th>
<td><input type="text" name="mb_homepage" value="<?=$mb['mb_homepage']?>" id="mb_homepage" class="frm_input" maxlength="255" size="15"></td>
</tr>
<tr>
<th scope="row"><label for="mb_tel">전화번호</label></th>
<td><input type="text" name="mb_tel" value="<?=$mb['mb_tel']?>" id="mb_tel" class="frm_input" size="15" maxlength="20"></td>
<th scope="row"><label for="mb_hp">핸드폰번호</label></th>
<td><input type="text" name="mb_hp" value="<?=$mb['mb_hp']?>" id="mb_hp" class="frm_input" size="15" maxlength="20"></td>
</tr>
<tr>
<th scope="row"><label for="mb_zip1">주소</label></th>
<td colspan="3" style="line-height:2em">
<input type="text" name="mb_zip1" value="<?=$mb['mb_zip1']?>" id="mb_zip1" title="우편번호 앞자리" class="frm_input readonly" size="3" maxlength="3" readonly> -
<input type="text" name="mb_zip2" value="<?=$mb['mb_zip2']?>" id="mb_zip2" title="우편번호 뒷자리" class="frm_input readonly" size="3" maxlength="3" readonly>
<a href="<?=G4_BBS_URL.'/zip.php?frm_name=fmember&amp;frm_zip1=mb_zip1&amp;frm_zip2=mb_zip2&amp;frm_addr1=mb_addr1&amp;frm_addr2=mb_addr2'?>" class="win_zip_find btn_frmline">우편번호 검색</a><br>
<input type="text" name="mb_addr1" value="<?=$mb['mb_addr1']?>" id="mb_addr1" title="행정기본주소" class="frm_input readonly" size="50" readonly><br>
<input type="text" name="mb_addr2" value="<?=$mb['mb_addr2']?>" id="mb_addr2" title="상세주소" class="frm_input" size="50"> 상세주소 입력
</td>
</tr>
<tr>
<th scope="row"><label for="mb_icon">회원아이콘</label></th>
<td colspan="3">
<?=help('이미지 크기는 <strong>넓이 '.$config['cf_member_icon_width'].'픽셀 높이 '.$config['cf_member_icon_height'].'픽셀</strong>로 해주세요.')?>
<input type="file" name="mb_icon" id="mb_icon">
<?
$mb_dir = substr($mb['mb_id'],0,2);
$icon_file = G4_DATA_PATH.'/member/'.$mb_dir.'/'.$mb['mb_id'].'.gif';
if (file_exists($icon_file)) {
$icon_url = G4_DATA_URL.'/member/'.$mb_dir.'/'.$mb['mb_id'].'.gif';
echo '<img src="'.$icon_url.'" alt="">';
echo '<input type="checkbox" id="del_mb_icon" name="del_mb_icon" value="1">삭제';
}
?>
</td>
</tr>
<tr>
<th scope="row">메일 수신</th>
<td>
<input type="radio" name="mb_mailling" value="1" id="mb_mailling_yes" <?=$mailling_checked?>>
<label for="mb_mailling_yes">예</label>
<input type="radio" name="mb_mailling" value="0" id="mb_mailling_no" <?=$mailling_no_checked?>>
<label for="mb_mailling_no">아니오</label>
</td>
<th scope="row"><label for="mb_sms_yes">SMS 수신</label></th>
<td>
<input type="radio" name="mb_sms" value="1" id="mb_sms_yes" <?=$sms_checked?>>
<label for="mb_sms_yes">예</label>
<input type="radio" name="mb_sms" value="0" id="mb_sms_no" <?=$sms_no_checked?>>
<label for="mb_sms_no">아니오</label>
</td>
</tr>
<tr>
<th scope="row"><label for="mb_open">정보 공개</label></th>
<td colspan="3">
<input type="radio" name="mb_open" value="1" id="mb_open" <?=$open_checked?>>
<label for="mb_open">예</label>
<input type="radio" name="mb_open" value="0" id="mb_open_no" <?=$open_no_checked?>>
<label for="mb_open_no">아니오</label>
</td>
</tr>
<tr>
<th scope="row"><label for="mb_signature">서명</label></th>
<td colspan="3"><textarea name="mb_signature" id="mb_signature"><?=$mb['mb_signature']?></textarea></td>
</tr>
<tr>
<th scope="row"><label for="mb_profile">자기 소개</label></th>
<td colspan="3"><textarea name="mb_profile" id="mb_profile"><?=$mb['mb_profile']?></textarea></td>
</tr>
<tr>
<th scope="row"><label for="mb_memo">메모</label></th>
<td colspan="3"><textarea name="mb_memo" id="mb_memo"><?=$mb['mb_memo']?></textarea></td>
</tr>
<? if ($w == 'u') { ?>
<tr>
<th scope="row">회원가입일</th>
<td><?=$mb['mb_datetime']?></td>
<th scope="row">최근접속일</th>
<td><?=$mb['mb_today_login']?></td>
</tr>
<tr>
<th scope="row">IP</th>
<td colspan="3"><?=$mb['mb_ip']?></td>
</tr>
<? if ($config['cf_use_email_certify']) { ?>
<tr>
<th scope="row">인증일시</th>
<td colspan="3">
<? if ($mb['mb_email_certify'] == '0000-00-00 00:00:00') { ?>
<?=help('회원님이 메일을 수신할 수 없는 경우 등에 직접 인증처리를 하실 수 있습니다.')?>
<?=$mb['mb_email_certify']?>
<input type="checkbox" id="passive_certify" name="passive_certify">
<label>수동인증</label>
<? } else { ?>
<?=$mb['mb_email_certify']?>
<? } ?>
</td>
</tr>
<? } ?>
<? } ?>
</tr>
<? } ?>
<? if ($config[cf_use_recommend]) { // 추천인 사용 ?>
<tr class='ht'>
<td>추천인</td>
<td colspan=3><?=($mb[mb_recommend] ? get_text($mb[mb_recommend]) : "없음"); // 081022 : CSRF 보안 결함으로 인한 코드 수정 ?></td>
</tr>
<? } ?>
<tr class='ht'>
<td>탈퇴일자</td>
<td><input type=text class=ed name=mb_leave_date size=9 maxlength=8 value='<? echo $mb[mb_leave_date] ?>'></td>
<td>접근차단일자</td>
<td><input type=text class=ed name=mb_intercept_date size=9 maxlength=8 value='<? echo $mb[mb_intercept_date] ?>'> <input type=checkbox value='<? echo date("Ymd"); ?>' onclick='if (this.form.mb_intercept_date.value==this.form.mb_intercept_date.defaultValue) { this.form.mb_intercept_date.value=this.value; } else { this.form.mb_intercept_date.value=this.form.mb_intercept_date.defaultValue; } '>오늘</td>
</tr>
<? for ($i=1; $i<=10; $i=$i+2) { $k=$i+1; ?>
<tr class='ht'>
<td>여분 필드 <?=$i?></td>
<td><input type=text class=ed style='width:99%;' name='mb_<?=$i?>' maxlength=255 value='<?=$mb["mb_$i"]?>'></td>
<td>여분 필드 <?=$k?></td>
<td><input type=text class=ed style='width:99%;' name='mb_<?=$k?>' maxlength=255 value='<?=$mb["mb_$k"]?>'></td>
</tr>
<? } ?>
<tr class='ht'>
<td colspan=4 align=left>
<?=subtitle("XSS / CSRF 방지")?>
</td>
</tr>
<tr><td colspan=4 class=line1></td></tr>
<tr class='ht'>
<td>
관리자 패스워드
</td>
<td colspan=3>
<input class='ed' type='password' name='admin_password' itemname="관리자 패스워드" required>
<?=help("관리자 권한을 빼앗길 것에 대비하여 로그인한 관리자의 패스워드를 한번 더 묻는것 입니다.");?>
</td>
</tr>
<tr><td colspan=4 class=line2></td></tr>
</table>
<p align=center>
<input type=submit class=btn1 accesskey='s' value=' 확 인 '>&nbsp;
<input type=button class=btn1 value=' 목 록 ' onclick="document.location.href='./member_list.php?<?=$qstr?>';">&nbsp;
<? if ($w != '') { ?>
<input type=button class=btn1 value=' 삭 제 ' onclick="del('./member_delete.php?<?=$qstr?>&w=d&mb_id=<?=$mb[mb_id]?>&url=<?=$_SERVER[PHP_SELF]?>');">&nbsp;
<? if ($config['cf_use_recommend']) { // 추천인 사용 ?>
<tr>
<th scope="row">추천인</th>
<td colspan="3"><?=($mb['mb_recommend'] ? get_text($mb['mb_recommend']) : '없음'); // 081022 : CSRF 보안 결함으로 인한 코드 수정 ?></td>
</tr>
<? } ?>
<tr>
<th scope="row">탈퇴일자</th>
<td>
<input type="text" name="mb_leave_date" value="<?=$mb['mb_leave_date']?>" class="frm_input" maxlength="8">
<input type="checkbox" value="<?=date("Ymd"); ?>" title="탈퇴일을 오늘로 지정" onclick="if (this.form.mb_leave_date.value==this.form.mb_leave_date.defaultValue) { this.form.mb_leave_date.value=this.value; } else { this.form.mb_leave_date.value=this.form.mb_leave_date.defaultValue; }"> 오늘
</td>
<th scope="row">접근차단일자</th>
<td>
<input type="text" name="mb_intercept_date" value="<?=$mb['mb_intercept_date']?>" class="frm_input" maxlength="8">
<input type="checkbox" value="<?=date("Ymd"); ?>" title="접근차단일을 오늘로 지정" onclick="if (this.form.mb_intercept_date.value==this.form.mb_intercept_date.defaultValue) { this.form.mb_intercept_date.value=this.value; } else { this.form.mb_intercept_date.value=this.form.mb_intercept_date.defaultValue; }"> 오늘
</td>
</tr>
<? for ($i=1; $i<=10; $i++) { ?>
<tr>
<th scope="row"><label for="mb_<?=$i?>">여분 필드 <?=$i?></label></th>
<td colspan="3"><input type="text" id="mb_<?=$i?>" name="mb_<?=$i?>" value="<?=$mb['mb_'.$i]?>" class="frm_input" size="30" maxlength="255"></td>
</tr>
<? } ?>
</tbody>
</table>
</div>
<fieldset id="admin_confirm">
<legend>XSS 혹은 CSRF 방지</legend>
<p>관리자 권한을 탈취 당하는 경우를 대비하여 관리자의 패스워드를 다시 한번 확인합니다.</p>
<label for="admin_password">관리자 패스워드<strong class="sound_only">필수</strong></label>
<input type="password" name="admin_password" id="admin_password" required class="required frm_input">
</fieldset>
<div class="btn_confirm">
<input type="submit" value="확인" class="btn_submit" accesskey='s'>
<a href="./member_list.php?<?=$qstr?>">목록</a>
</div>
</form>
<script type='text/javascript'>
if (document.fmember.w.value == "")
document.fmember.mb_id.focus();
else if (document.fmember.w.value == "u")
document.fmember.mb_password.focus();
if (typeof(document.fmember.mb_level) != "undefined")
document.fmember.mb_level.value = "<?=$mb[mb_level]?>";
<script>
function fmember_submit(f)
{
if (!f.mb_icon.value.match(/\.(gif|jp[e]g|png)$/i) && f.mb_icon.value) {
if (!f.mb_icon.value.match(/\.(gif|jp['e']g|png)$/i) && f.mb_icon.value) {
alert('아이콘이 이미지 파일이 아닙니다. (bmp 제외)');
return false;
}
f.action = './member_form_update.php';
return true;
}
</script>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,103 +1,124 @@
<?
$sub_menu = "200100";
include_once("./_common.php");
include_once('./_common.php');
if ($w == 'u')
check_demo();
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
check_token();
if ($member[mb_password] != sql_password($_POST['admin_password'])) {
alert("패스워드가 다릅니다.");
if ($member['mb_password'] != sql_password($_POST['admin_password'])) {
alert('패스워드가 다릅니다.');
}
$mb_id = mysql_real_escape_string(trim($_POST['mb_id']));
$sql_common = " mb_name = '$_POST[mb_name]',
mb_nick = '$_POST[mb_nick]',
mb_email = '$_POST[mb_email]',
mb_homepage = '$_POST[mb_homepage]',
mb_tel = '$_POST[mb_tel]',
mb_hp = '$_POST[mb_hp]',
mb_zip1 = '$_POST[mb_zip1]',
mb_zip2 = '$_POST[mb_zip2]',
mb_addr1 = '$_POST[mb_addr1]',
mb_addr2 = '$_POST[mb_addr2]',
mb_birth = '$_POST[mb_birth]',
mb_sex = '$_POST[mb_sex]',
mb_signature = '$_POST[mb_signature]',
mb_leave_date = '$_POST[mb_leave_date]',
mb_intercept_date='$_POST[mb_intercept_date]',
mb_memo = '$_POST[mb_memo]',
mb_mailling = '$_POST[mb_mailling]',
mb_sms = '$_POST[mb_sms]',
mb_open = '$_POST[mb_open]',
mb_profile = '$_POST[mb_profile]',
mb_level = '$_POST[mb_level]',
mb_1 = '$_POST[mb_1]',
mb_2 = '$_POST[mb_2]',
mb_3 = '$_POST[mb_3]',
mb_4 = '$_POST[mb_4]',
mb_5 = '$_POST[mb_5]',
mb_6 = '$_POST[mb_6]',
mb_7 = '$_POST[mb_7]',
mb_8 = '$_POST[mb_8]',
mb_9 = '$_POST[mb_9]',
mb_10 = '$_POST[mb_10]' ";
// 핸드폰번호 체크
$mb_hp = $_POST['mb_hp'];
if($mb_hp) {
$mb_hp = preg_replace("/[^0-9]/", "", $mb_hp);
$hp_len = strlen($mb_hp);
if($hp_len == 10) {
$mb_hp = preg_replace("/([0-9]{3})([0-9]{3})([0-9]{4})/", "\\1-\\2-\\3", $mb_hp);
} else if($hp_len == 11) {
$mb_hp = preg_replace("/([0-9]{3})([0-9]{4})([0-9]{4})/", "\\1-\\2-\\3", $mb_hp);
} else {
alert('핸드폰번호를 올바르게 입력해 주십시오.');
}
if ($w == "")
{
$mb = get_member($mb_id);
if ($mb[mb_id])
alert("이미 존재하는 회원입니다.\\n\\n : $mb[mb_id]\\n\\n이름 : $mb[mb_name]\\n\\n별명 : $mb[mb_nick]\\n\\n메일 : $mb[mb_email]");
// 중복체크
$sql = " select count(*) as cnt from {$g4['member_table']} where mb_hp = '$mb_hp' and mb_id <> '$mb_id' ";
if ($mb[mb_nick] == $mb_nick)
alert("이미 존재하는 별명입니다.\\n\\n : $mb[mb_id]\\n\\n이름 : $mb[mb_name]\\n\\n별명 : $mb[mb_nick]\\n\\n메일 : $mb[mb_email]");
if ($mb[mb_email] == $mb_email)
alert("이미 존재하는 E-mail 입니다.\\n\\n : $mb[mb_id]\\n\\n이름 : $mb[mb_name]\\n\\n별명 : $mb[mb_nick]\\n\\n메일 : $mb[mb_email]");
sql_query(" insert into $g4[member_table] set mb_id = '$mb_id', mb_password = '".sql_password($mb_password)."', mb_datetime = '$g4[time_ymdhis]', mb_ip = '$_SERVER[REMOTE_ADDR]', mb_email_certify = '$g4[time_ymdhis]', $sql_common ");
$row = sql_fetch($sql);
if($row['cnt'])
alert('다른 회원이 사용 중인 핸드폰번호입니다.');
}
else if ($w == "u")
$sql_common = " mb_name = '{$_POST['mb_name']}',
mb_nick = '{$_POST['mb_nick']}',
mb_email = '{$_POST['mb_email']}',
mb_homepage = '{$_POST['mb_homepage']}',
mb_tel = '{$_POST['mb_tel']}',
mb_hp = '$mb_hp',
mb_zip1 = '{$_POST['mb_zip1']}',
mb_zip2 = '{$_POST['mb_zip2']}',
mb_addr1 = '{$_POST['mb_addr1']}',
mb_addr2 = '{$_POST['mb_addr2']}',
mb_birth = '{$_POST['mb_birth']}',
mb_sex = '{$_POST['mb_sex']}',
mb_signature = '{$_POST['mb_signature']}',
mb_leave_date = '{$_POST['mb_leave_date']}',
mb_intercept_date='{$_POST['mb_intercept_date']}',
mb_memo = '{$_POST['mb_memo']}',
mb_mailling = '{$_POST['mb_mailling']}',
mb_sms = '{$_POST['mb_sms']}',
mb_open = '{$_POST['mb_open']}',
mb_profile = '{$_POST['mb_profile']}',
mb_level = '{$_POST['mb_level']}',
mb_1 = '{$_POST['mb_1']}',
mb_2 = '{$_POST['mb_2']}',
mb_3 = '{$_POST['mb_3']}',
mb_4 = '{$_POST['mb_4']}',
mb_5 = '{$_POST['mb_5']}',
mb_6 = '{$_POST['mb_6']}',
mb_7 = '{$_POST['mb_7']}',
mb_8 = '{$_POST['mb_8']}',
mb_9 = '{$_POST['mb_9']}',
mb_10 = '{$_POST['mb_10']}' ";
if ($w == '')
{
$mb = get_member($mb_id);
if (!$mb[mb_id])
alert("존재하지 않는 회원자료입니다.");
if ($mb['mb_id'])
alert('이미 존재하는 회원입니다.\\n : '.$mb['mb_id'].'\\n이름 : '.$mb['mb_name'].'\\n별명 : '.$mb['mb_nick'].'\\n메일 : '.$mb['mb_email']);
if ($is_admin != "super" && $mb[mb_level] >= $member[mb_level])
alert("자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.");
if ($mb['mb_nick'] == $mb_nick)
alert('이미 존재하는 별명입니다.\\n : '.$mb['mb_id'].'\\n이름 : '.$mb['mb_name'].'\\n별명 : '.$mb['mb_nick'].'\\n메일 : '.$mb['mb_email']);
if ($_POST[mb_id] == $member[mb_id] && $_POST[mb_level] != $mb[mb_level])
alert("$mb[mb_id] : 로그인 중인 관리자 레벨은 수정 할 수 없습니다.");
if ($mb['mb_email'] == $mb_email)
alert('이미 존재하는 E-mail 입니다.\\n : '.$mb['mb_id'].'\\n이름 : '.$mb['mb_name'].'\\n별명 : '.$mb['mb_nick'].'\\n메일 : '.$mb['mb_email']);
sql_query(" insert into {$g4['member_table']} set mb_id = '{$mb_id}', mb_password = '".sql_password($mb_password)."', mb_datetime = '".G4_TIME_YMDHIS."', mb_ip = '{$_SERVER['REMOTE_ADDR']}', mb_email_certify = '".G4_TIME_YMDHIS."', {$sql_common} ");
}
else if ($w == 'u')
{
$mb = get_member($mb_id);
if (!$mb['mb_id'])
alert('존재하지 않는 회원자료입니다.');
if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level'])
alert('자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.');
if ($_POST['mb_id'] == $member['mb_id'] && $_POST['mb_level'] != $mb['mb_level'])
alert($mb['mb_id'].' : 로그인 중인 관리자 레벨은 수정 할 수 없습니다.');
$mb_dir = substr($mb_id,0,2);
// 회원 아이콘 삭제
if ($del_mb_icon)
@unlink("$g4[path]/data/member/$mb_dir/$mb_id.gif");
@unlink(G4_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_id.'.gif');
// 아이콘 업로드
if (is_uploaded_file($_FILES[mb_icon][tmp_name])) {
if (!preg_match("/(\.gif)$/i", $_FILES[mb_icon][name])) {
alert($_FILES[mb_icon][name] . '은(는) gif 파일이 아닙니다.');
if (is_uploaded_file($_FILES['mb_icon']['tmp_name'])) {
if (!preg_match("/(\.gif)$/i", $_FILES['mb_icon']['name'])) {
alert($_FILES['mb_icon']['name'] . '은(는) gif 파일이 아닙니다.');
}
if (preg_match("/(\.gif)$/i", $_FILES[mb_icon][name])) {
@mkdir("$g4[path]/data/member/$mb_dir", 0707);
@chmod("$g4[path]/data/member/$mb_dir", 0707);
if (preg_match("/(\.gif)$/i", $_FILES['mb_icon']['name'])) {
@mkdir(G4_DATA_PATH.'/member/'.$mb_dir, 0707);
@chmod(G4_DATA_PATH.'/member/'.$mb_dir, 0707);
$dest_path = "$g4[path]/data/member/$mb_dir/$mb_id.gif";
$dest_path = G4_DATA_PATH.'/member/'.$mb_dir.'/'.$mb_id.'.gif';
move_uploaded_file($_FILES[mb_icon][tmp_name], $dest_path);
move_uploaded_file($_FILES['mb_icon']['tmp_name'], $dest_path);
chmod($dest_path, 0606);
if (file_exists($dest_path)) {
$size = getimagesize($dest_path);
// 아이콘의 폭 또는 높이가 설정값 보다 크다면 이미 업로드 된 아이콘 삭제
if ($size[0] > $config[cf_member_icon_width] || $size[1] > $config[cf_member_icon_height]) {
if ($size[0] > $config['cf_member_icon_width'] || $size[1] > $config['cf_member_icon_height']) {
@unlink($dest_path);
}
}
@ -110,19 +131,19 @@ else if ($w == "u")
$sql_password = "";
if ($passive_certify)
$sql_certify = " , mb_email_certify = '$g4[time_ymdhis]' ";
$sql_certify = " , mb_email_certify = '".G4_TIME_YMDHIS."' ";
else
$sql_certify = "";
$sql = " update $g4[member_table]
set $sql_common
$sql_password
$sql_certify
where mb_id = '$mb_id' ";
$sql = " update {$g4['member_table']}
set {$sql_common}
{$sql_password}
{$sql_certify}
where mb_id = '{$mb_id}' ";
sql_query($sql);
}
else
alert("제대로 된 값이 넘어오지 않았습니다.");
alert('제대로 된 값이 넘어오지 않았습니다.');
goto_url("./member_form.php?$qstr&w=u&mb_id=$mb_id", false);
goto_url('./member_form.php?'.$qstr.'&amp;w=u&amp;mb_id='.$mb_id, false);
?>

View File

@ -1,263 +1,242 @@
<?
$sub_menu = "200100";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$token = get_token();
$sql_common = " from $g4[member_table] ";
$sql_common = " from {$g4['member_table']} ";
$sql_search = " where (1) ";
if ($stx) {
$sql_search .= " and ( ";
switch ($sfl) {
case "mb_point" :
$sql_search .= " ($sfl >= '$stx') ";
case 'mb_point' :
$sql_search .= " ({$sfl} >= '{$stx}') ";
break;
case "mb_level" :
$sql_search .= " ($sfl = '$stx') ";
case 'mb_level' :
$sql_search .= " ({$sfl} = '{$stx}') ";
break;
case "mb_tel" :
case "mb_hp" :
$sql_search .= " ($sfl like '%$stx') ";
case 'mb_tel' :
case 'mb_hp' :
$sql_search .= " ({$sfl} like '%{$stx}') ";
break;
default :
$sql_search .= " ($sfl like '$stx%') ";
$sql_search .= " ({$sfl} like '{$stx}%') ";
break;
}
$sql_search .= " ) ";
}
//if ($is_admin == 'group') $sql_search .= " and mb_level = '$member[mb_level]' ";
if ($is_admin != 'super')
$sql_search .= " and mb_level <= '$member[mb_level]' ";
if ($is_admin != 'super')
$sql_search .= " and mb_level <= '{$member['mb_level']}' ";
if (!$sst) {
$sst = "mb_datetime";
$sod = "desc";
}
$sql_order = " order by $sst $sod ";
$sql_order = " order by {$sst} {$sod} ";
$sql = " select count(*) as cnt
$sql_common
$sql_search
$sql_order ";
$sql = " select count(*) as cnt {$sql_common} {$sql_search} {$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$total_count = $row['cnt'];
$rows = $config[cf_page_rows];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
// 탈퇴회원수
$sql = " select count(*) as cnt
$sql_common
$sql_search
and mb_leave_date <> ''
$sql_order ";
$sql = " select count(*) as cnt {$sql_common} {$sql_search} and mb_leave_date <> '' {$sql_order} ";
$row = sql_fetch($sql);
$leave_count = $row[cnt];
$leave_count = $row['cnt'];
// 차단회원수
$sql = " select count(*) as cnt
$sql_common
$sql_search
and mb_intercept_date <> ''
$sql_order ";
$sql = " select count(*) as cnt {$sql_common} {$sql_search} and mb_intercept_date <> '' {$sql_order} ";
$row = sql_fetch($sql);
$intercept_count = $row[cnt];
$intercept_count = $row['cnt'];
$listall = "<a href='$_SERVER[PHP_SELF]' class=tt>처음</a>";
$listall = "";
if (isset($sfl) || isset($stx)) // 검색일 때만 처음 버튼을 보여줌
$listall = '<a href="'.$_SERVER['PHP_SELF'].'">전체목록</a>';
$g4[title] = "회원관리";
include_once("./admin.head.php");
$g4['title'] = '회원관리';
include_once('./admin.head.php');
$sql = " select *
$sql_common
$sql_search
$sql_order
limit $from_record, $rows ";
$sql = " select * {$sql_common} {$sql_search} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$colspan = 15;
?>
<script type="text/javascript" src="<?=$g4[path]?>/js/sideview.js"></script>
<script type="text/javascript">
var list_update_php = "member_list_update.php";
var list_delete_php = "member_list_delete.php";
</script>
<table width=100%>
<form name=fsearch method=get>
<tr>
<td width=50% align=left><?=$listall?>
(총회원수 : <?=number_format($total_count)?>,
<a href='?sst=mb_intercept_date&sod=desc&sfl=<?=$sfl?>&stx=<?=$stx?>' title='차단된 회원부터 출력'><font color=orange>차단 : <?=number_format($intercept_count)?></font></a>,
<a href='?sst=mb_leave_date&sod=desc&sfl=<?=$sfl?>&stx=<?=$stx?>' title='탈퇴한 회원부터 출력'><font color=crimson>탈퇴 : <?=number_format($leave_count)?></font></a>)
</td>
<td width=50% align=right>
<select name=sfl class=cssfl>
<option value='mb_id'>회원아이디</option>
<option value='mb_name'>이름</option>
<option value='mb_nick'>별명</option>
<option value='mb_level'>권한</option>
<option value='mb_email'>E-MAIL</option>
<option value='mb_tel'>전화번호</option>
<option value='mb_hp'>핸드폰번호</option>
<option value='mb_point'>포인트</option>
<option value='mb_datetime'>가입일시</option>
<option value='mb_ip'>IP</option>
<option value='mb_recommend'>추천인</option>
</select>
<input type=text name=stx class=ed required itemname='검색어' value='<? echo $stx ?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
<form id="fsearch" name="fsearch" method="get">
<fieldset>
<legend>회원검색</legend>
<span>
<?=$listall?>
총회원수 <?=number_format($total_count)?>명 중,
<a href="?sst=mb_intercept_date&amp;sod=desc&amp;sfl=<?=$sfl?>&amp;stx=<?=$stx?>">차단 <?=number_format($intercept_count)?></a>명,
<a href="?sst=mb_leave_date&amp;sod=desc&amp;sfl=<?=$sfl?>&amp;stx=<?=$stx?>">탈퇴 <?=number_format($leave_count)?></a>명
</span>
<select name="sfl" title="검색대상">
<option value="mb_id"<?=get_selected($_GET['sfl'], "mb_id");?>>회원아이디</option>
<option value="mb_nick"<?=get_selected($_GET['sfl'], "mb_nick");?>>별명</option>
<option value="mb_name"<?=get_selected($_GET['sfl'], "mb_name");?>>이름</option>
<option value="mb_level"<?=get_selected($_GET['sfl'], "mb_level");?>>권한</option>
<option value="mb_email"<?=get_selected($_GET['sfl'], "mb_email");?>>E-MAIL</option>
<option value="mb_tel"<?=get_selected($_GET['sfl'], "mb_tel");?>>전화번호</option>
<option value="mb_hp"<?=get_selected($_GET['sfl'], "mb_hp");?>>핸드폰번호</option>
<option value="mb_point"<?=get_selected($_GET['sfl'], "mb_point");?>>포인트</option>
<option value="mb_datetime"<?=get_selected($_GET['sfl'], "mb_datetime");?>>가입일시</option>
<option value="mb_ip"<?=get_selected($_GET['sfl'], "mb_ip");?>>IP</option>
<option value="mb_recommend"<?=get_selected($_GET['sfl'], "mb_recommend");?>>추천인</option>
</select>
<input type="text" name="stx" value="<?=$stx?>" title="검색어(필수)" required class="required frm_input">
<input type="submit" class="btn_submit" value="검색">
</fieldset>
</form>
</table>
<form name=fmemberlist method=post>
<input type=hidden name=sst value='<?=$sst?>'>
<input type=hidden name=sod value='<?=$sod?>'>
<input type=hidden name=sfl value='<?=$sfl?>'>
<input type=hidden name=stx value='<?=$stx?>'>
<input type=hidden name=page value='<?=$page?>'>
<input type=hidden name=token value='<?=$token?>'>
<section class="cbox">
<h2>회원 목록</h2>
<p>회원자료 삭제 시 다른 회원이 기존 회원아이디를 사용하지 못하도록 회원아이디, 이름, 별명은 삭제하지 않고 영구 보관합니다.</p>
<table width=100% cellpadding=0 cellspacing=0>
<colgroup width=30>
<colgroup width=90>
<colgroup width=90>
<colgroup width=90>
<colgroup width=''>
<colgroup width=70>
<colgroup width=80>
<colgroup width=40>
<colgroup width=40>
<colgroup width=40>
<colgroup width=40>
<colgroup width=40>
<colgroup width=80>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td><input type=checkbox name=chkall value='1' onclick='check_all(this.form)'></td>
<td><?=subject_sort_link('mb_id')?>회원아이디</a></td>
<td><?=subject_sort_link('mb_name')?>이름</a></td>
<td><?=subject_sort_link('mb_nick')?>별명</a></td>
<td><?=subject_sort_link('mb_level', '', 'desc')?>권한</a></td>
<td><?=subject_sort_link('mb_point', '', 'desc')?>포인트</a></td>
<td><?=subject_sort_link('mb_today_login', '', 'desc')?>최종접속</a></td>
<td title='메일수신허용여부'><?=subject_sort_link('mb_mailling', '', 'desc')?>수신</a></td>
<td title='정보공개여부'><?=subject_sort_link('mb_open', '', 'desc')?>공개</a></td>
<!-- <td><?=subject_sort_link('mb_leave_date', '', 'desc')?>탈퇴</a></td> -->
<td><?=subject_sort_link('mb_email_certify', '', 'desc')?>인증</a></td>
<td><?=subject_sort_link('mb_intercept_date', '', 'desc')?>차단</a></td>
<td title='접근가능한 그룹수'>그룹</td>
<td><a href="./member_form.php"><img src='<?=$g4[admin_path]?>/img/icon_insert.gif' border=0 title='추가'></a></td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
for ($i=0; $row=sql_fetch_array($result); $i++) {
// 접근가능한 그룹수
$sql2 = " select count(*) as cnt from $g4[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 == 'super') {?>
<div id="btn_add">
<a href="./member_form.php" id="member_add">회원추가</a>
</div>
<?}?>
if ($is_admin == 'group')
{
$s_mod = "";
$s_del = "";
}
else
{
$s_mod = "<a href=\"./member_form.php?$qstr&w=u&mb_id=$row[mb_id]\"><img src='img/icon_modify.gif' border=0 title='수정'></a>";
//$s_del = "<a href=\"javascript:del('./member_delete.php?$qstr&w=d&mb_id=$row[mb_id]');\"><img src='img/icon_delete.gif' border=0 title='삭제'></a>";
$s_del = "<a href=\"javascript:post_delete('member_delete.php', '$row[mb_id]');\"><img src='img/icon_delete.gif' border=0 title='삭제'></a>";
<form name="fmemberlist" id="fmemberlist" action="./member_list_update.php" onsubmit="return fmemberlist_submit(this);" method="post">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="page" value="<?=$page?>">
<table class="tbl_mb_list">
<thead>
<tr>
<th scope="col"><input type="checkbox" name="chkall" value="1" id="chkall" title="현재 페이지 회원 전체선택" onclick="check_all(this.form)"></th>
<th scope="col"><?=subject_sort_link('mb_id')?>회원아이디</a></th>
<th scope="col"><?=subject_sort_link('mb_nick')?>별명</a></th>
<th scope="col"><?=subject_sort_link('mb_name')?>이름</a></th>
<th scope="col"><?=subject_sort_link('mb_level', '', 'desc')?>권한</a></th>
<th scope="col"><?=subject_sort_link('mb_point', '', 'desc')?> 포인트</a></th>
<th scope="col"><?=subject_sort_link('mb_today_login', '', 'desc')?>최종접속</a></th>
<th scope="col"><?=subject_sort_link('mb_mailling', '', 'desc')?>수신</a></th>
<th scope="col"><?=subject_sort_link('mb_open', '', 'desc')?>공개</a></th>
<th scope="col"><?=subject_sort_link('mb_email_certify', '', 'desc')?>인증</a></th>
<th scope="col"><?=subject_sort_link('mb_intercept_date', '', 'desc')?>차단</a></th>
<th scope="col">그룹</th>
<th scope="col">관리</th>
</tr>
</thead>
<tbody>
<?
for ($i=0; $row=sql_fetch_array($result); $i++) {
// 접근가능한 그룹수
$sql2 = " select count(*) as cnt from {$g4['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.'&amp;w=u&amp;mb_id='.$row['mb_id'].'">수정</a>';
//$s_del = '<a href="javascript:post_delete(\'member_delete.php\', \''.$row['mb_id'].'\');">삭제</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', G4_SERVER_TIME);
$intercept_date = $row['mb_intercept_date'] ? $row['mb_intercept_date'] : date('Ymd', G4_SERVER_TIME);
$mb_nick = get_sideview($row['mb_id'], $row['mb_nick'], $row['mb_email'], $row['mb_homepage']);
$mb_id = $row['mb_id'];
$leave_msg = '';
$intercept_msg = '';
$intercept_title = '';
if ($row['mb_leave_date']) {
$mb_id = $mb_id;
$leave_msg = '<br>탈퇴함';
}
else if ($row['mb_intercept_date']) {
$mb_id = $mb_id;
$intercept_msg = '<br>차단됨';
$intercept_title = '차단해제';
}
if ($intercept_title == '')
$intercept_title = '차단하기';
?>
<tr>
<td class="td_chk">
<input type="hidden" name="mb_id[<?=$i?>]" value="<?=$row['mb_id']?>" id="mb_id_<?=$i?>">
<input type="checkbox" name="chk[]" value="<?=$i?>" id="chk_<?=$i?>" title="회원선택">
</td>
<td class="td_mbid">
<?=$mb_id?>
<span><?=$leave_msg?><?=$intercept_msg?></span>
</td>
<td class="td_name"><div><?=$mb_nick?></div></td>
<td class="td_mbname"><?=$row['mb_name']?></td>
<td><?=get_member_level_select("mb_level[$i]", 1, $member['mb_level'], $row['mb_level'])?></td>
<td class="td_bignum"><a href="point_list.php?sfl=mb_id&amp;stx=<?=$row['mb_id']?>"><?=number_format($row['mb_point'])?></a></td>
<td><?=substr($row['mb_today_login'],2,8)?></td>
<td><?=$row['mb_mailling']?'<span class="txt_true">Yes</span>':'<span class="txt_false">No</span>';?></td>
<td><?=$row['mb_open']?'<span class="txt_true">Yes</span>':'<span class="txt_false">No</span>';?></td>
<td><?=preg_match('/[1-9]/', $row['mb_email_certify'])?'<span class="txt_true">Yes</span>':'<span class="txt_false">No</span>';?></td>
<td class="td_chk">
<? if(empty($row['mb_leave_date'])){?>
<input type="checkbox" name="mb_intercept_date[<?=$i?>]" <?=$row['mb_intercept_date']?'checked':'';?> value="<?=$intercept_date?>" id="mb_intercept_date_<?=$i?>" title="<?=$intercept_title?>">
<?}?>
</td>
<td class="td_chk"><?=$group?></td>
<td><?=$s_mod?> <?=$s_grp?></td>
</tr>
<?
}
$s_grp = "<a href='./boardgroupmember_form.php?mb_id=$row[mb_id]'><img src='img/icon_group.gif' border=0 title='그룹'></a>";
if ($i == 0)
echo "<tr><td colspan=\"".$colspan."\" class=\"empty_table\">자료가 없습니다.</td></tr>";
?>
</table>
$leave_date = $row[mb_leave_date] ? $row[mb_leave_date] : date("Ymd", $g4[server_time]);
$intercept_date = $row[mb_intercept_date] ? $row[mb_intercept_date] : date("Ymd", $g4[server_time]);
<div class="btn_list">
<input type="submit" name="act_button" value="선택수정" onclick="document.pressed=this.value">
<input type="submit" name="act_button" value="선택삭제" onclick="document.pressed=this.value">
<? if ($is_admin == 'super') {?><a href="./member_form.php">회원추가</a><?}?>
</div>
$mb_nick = get_sideview($row[mb_id], $row[mb_nick], $row[mb_email], $row[mb_homepage]);
</form>
</section>
$mb_id = $row[mb_id];
if ($row[mb_leave_date])
$mb_id = "<font color=crimson>$mb_id</font>";
else if ($row[mb_intercept_date])
$mb_id = "<font color=orange>$mb_id</font>";
$list = $i%2;
echo "
<input type=hidden name=mb_id[$i] value='$row[mb_id]'>
<tr class='list$list col1 ht center'>
<td><input type=checkbox name=chk[] value='$i'></td>
<td title='$row[mb_id]'><nobr style='display:block; overflow:hidden; width:90;'>&nbsp;$mb_id</nobr></td>
<td><nobr style='display:block; overflow:hidden; width:90px;'>$row[mb_name]</nobr></td>
<td><nobr style='display:block; overflow:hidden; width:90px;'><u>$mb_nick</u></nobr></td>
<td>".get_member_level_select("mb_level[$i]", 1, $member[mb_level], $row[mb_level])."</td>
<td align=right><a href='point_list.php?sfl=mb_id&stx=$row[mb_id]' class=tt>".number_format($row[mb_point])."</a>&nbsp;</td>
<td>".substr($row[mb_today_login],2,8)."</td>
<td>".($row[mb_mailling]?'&radic;':'&nbsp;')."</td>
<td>".($row[mb_open]?'&radic;':'&nbsp;')."</td>
<!-- <td title='$row[mb_leave_date]'>".($row[mb_leave_date]?'&radic;':'&nbsp;')."</td> -->
<td title='$row[mb_email_certify]'>".(preg_match('/[1-9]/', $row[mb_email_certify])?'&radic;':'&nbsp;')."</td>
<td title='$row[mb_intercept_date]'><input type=checkbox name=mb_intercept_date[$i] ".($row[mb_intercept_date]?'checked':'')." value='$intercept_date'></td>
<td>$group</td>
<td>$s_mod $s_del $s_grp</td>
</tr>";
}
if ($i == 0)
echo "<tr><td colspan='$colspan' align=center height=100 class=contentbg>자료가 없습니다.</td></tr>";
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "?$qstr&page=");
echo "<table width=100% cellpadding=3 cellspacing=1>";
echo "<tr><td width=50%>";
echo "<input type=button class='btn1' value='선택수정' onclick=\"btn_check(this.form, 'update')\">&nbsp;";
echo "<input type=button class='btn1' value='선택삭제' onclick=\"btn_check(this.form, 'delete')\">";
echo "</td>";
echo "<td width=50% align=right>$pagelist</td></tr></table>\n";
if ($stx)
echo "<script type='text/javascript'>document.fsearch.sfl.value = '$sfl';</script>\n";
?>
</form>
* 회원자료 삭제시 다른 회원이 기존 회원아이디를 사용하지 못하도록 회원아이디, 이름, 별명은 삭제하지 않고 영구 보관합니다.
<?=get_paging(G4_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, '?'.$qstr.'&amp;page=');?>
<script>
// POST 방식으로 삭제
function post_delete(action_url, val)
function fmemberlist_submit(f)
{
var f = document.fpost;
if (!is_checked("chk[]")) {
alert(document.pressed+" 하실 항목을 하나 이상 선택하세요.");
return false;
}
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
f.mb_id.value = val;
f.action = action_url;
f.submit();
}
if(document.pressed == "선택삭제") {
if(!confirm("선택한 자료를 정말 삭제하시겠습니까?")) {
return false;
}
}
return true;
}
</script>
<form name='fpost' method='post'>
<input type='hidden' name='sst' value='<?=$sst?>'>
<input type='hidden' name='sod' value='<?=$sod?>'>
<input type='hidden' name='sfl' value='<?=$sfl?>'>
<input type='hidden' name='stx' value='<?=$stx?>'>
<input type='hidden' name='page' value='<?=$page?>'>
<input type='hidden' name='token' value='<?=$token?>'>
<input type='hidden' name='mb_id'>
</form>
<?
include_once ("./admin.tail.php");
include_once ('./admin.tail.php');
?>

View File

@ -1,37 +1,66 @@
<?
$sub_menu = "200100";
include_once("./_common.php");
include_once('./_common.php');
check_demo();
auth_check($auth[$sub_menu], "w");
if (!count($_POST['chk'])) {
alert($_POST['act_button']." 하실 항목을 하나 이상 체크하세요.");
}
check_token();
auth_check($auth[$sub_menu], 'w');
for ($i=0; $i<count($chk); $i++)
{
// 실제 번호를 넘김
$k = $_POST['chk'][$i];
if ($_POST['act_button'] == "선택수정") {
$mb = get_member($_POST['mb_id'][$k]);
for ($i=0; $i<count($_POST['chk']); $i++)
{
// 실제 번호를 넘김
$k = $_POST['chk'][$i];
if (!$mb[mb_id]) {
$msg .= "$mb[mb_id] : 회원자료가 존재하지 않습니다.\\n";
} else if ($is_admin != "super" && $mb[mb_level] >= $member[mb_level]) {
$msg .= "$mb[mb_id] : 자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.\\n";
} else if ($member[mb_id] == $mb[mb_id]) {
$msg .= "$mb[mb_id] : 로그인 중인 관리자는 수정 할 수 없습니다.\\n";
} else {
$sql = " update $g4[member_table]
set mb_level = '{$_POST['mb_level'][$k]}',
mb_intercept_date = '{$_POST['mb_intercept_date'][$k]}'
where mb_id = '{$_POST['mb_id'][$k]}' ";
sql_query($sql);
$mb = get_member($_POST['mb_id'][$k]);
if (!$mb['mb_id']) {
$msg .= $mb['mb_id'].' : 회원자료가 존재하지 않습니다.\\n';
} else if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level']) {
$msg .= $mb['mb_id'].' : 자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.\\n';
} else if ($member['mb_id'] == $mb['mb_id']) {
$msg .= $mb['mb_id'].' : 로그인 중인 관리자는 수정 할 수 없습니다.\\n';
} else {
$sql = " update {$g4['member_table']}
set mb_level = '{$_POST['mb_level'][$k]}',
mb_intercept_date = '{$_POST['mb_intercept_date'][$k]}'
where mb_id = '{$_POST['mb_id'][$k]}' ";
sql_query($sql);
}
}
} else if ($_POST['act_button'] == "선택삭제") {
for ($i=0; $i<count($_POST['chk']); $i++)
{
// 실제 번호를 넘김
$k = $_POST['chk'][$i];
$mb = get_member($_POST['mb_id'][$k]);
if (!$mb['mb_id']) {
$msg .= $mb['mb_id'].' : 회원자료가 존재하지 않습니다.\\n';
} else if ($member['mb_id'] == $mb['mb_id']) {
$msg .= $mb['mb_id'].' : 로그인 중인 관리자는 삭제 할 수 없습니다.\\n';
} else if (is_admin($mb['mb_id']) == 'super') {
$msg .= $mb['mb_id'].' : 최고 관리자는 삭제할 수 없습니다.\\n';
} else if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level']) {
$msg .= $mb['mb_id'].' : 자신보다 권한이 높거나 같은 회원은 삭제할 수 없습니다.\\n';
} else {
// 회원자료 삭제
member_delete($mb['mb_id']);
}
}
}
if ($msg)
echo "<script type='text/javascript'> alert('$msg'); </script>";
//echo '<script> alert("'.$msg.'"); </script>';
alert($msg);
goto_url("./member_list.php?$qstr");
goto_url('./member_list.php?'.$qstr);
?>

View File

@ -1,10 +1,10 @@
<?
$sub_menu = "100500";
include_once("./_common.php");
include_once('./_common.php');
check_demo();
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
phpinfo();
?>

View File

@ -1,58 +1,58 @@
<?
$sub_menu = "200200";
include_once("./_common.php");
include_once('./_common.php');
check_demo();
if (!$ok)
alert();
if ($is_admin != "super")
alert("포인트 정리는 최고관리자만 가능합니다.");
if ($is_admin != 'super')
alert('포인트 정리는 최고관리자만 가능합니다.');
$g4[title] = "포인트 정리";
include_once("./admin.head.php");
echo "<span id='ct'></span>";
include_once("./admin.tail.php");
$g4['title'] = '포인트 정리';
include_once('./admin.head.php');
echo '<span id="ct"></span>';
include_once('./admin.tail.php');
flush();
echo "<script>document.getElementById('ct').innerHTML += '<p>포인트 정리중...';</script>\n";
echo '<script>document.getElementById(\'ct\').innerHTML += \'<p>포인트 정리중...</p>\';</script>'."\n";
flush();
$max_count = 50;
// 테이블 락을 걸고
$sql = " LOCK TABLES $g4[member_table] WRITE, $g4[point_table] WRITE ";
$sql = " LOCK TABLES {$g4['member_table']} WRITE, {$g4['point_table']} WRITE ";
sql_query($sql);
$sql = " select mb_id, count(po_point) as cnt
from $g4[point_table]
group by mb_id
having cnt > {$max_count}+1
order by cnt ";
from {$g4['point_table']}
group by mb_id
having cnt > {$max_count}+1
order by cnt ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++)
for ($i=0; $row=sql_fetch_array($result); $i++)
{
$count = 0;
$total = 0;
$sql2 = " select po_id, po_point
from $g4[point_table]
where mb_id = '$row[mb_id]'
order by po_id desc
limit $max_count, $row[cnt] ";
from {$g4['point_table']}
where mb_id = '{$row['mb_id']}'
order by po_id desc
limit {$max_count}, {$row['cnt']} ";
$result2 = sql_query($sql2);
for ($k=0; $row2=sql_fetch_array($result2); $k++)
{
$count++;
$total += $row2[po_point];
$total += $row2['po_point'];
sql_query(" delete from $g4[point_table] where po_id = '$row2[po_id]' ");
sql_query(" delete from {$g4['point_table']} where po_id = '{$row2['po_id']}' ");
}
insert_point($row[mb_id], $total, "포인트 {$count}건 정리", "@clear", $row[mb_id], $g4[time_ymd]."-".uniqid(""));
insert_point($row['mb_id'], $total, '포인트 {$count}건 정리', '@clear', $row['mb_id'], G4_TIME_YMD."-".uniqid(""));
$str = $row[mb_id]."님 포인트 내역 ".number_format($count)."".number_format($total)."점 정리<br>";
echo "<script>document.getElementById('ct').innerHTML += '$str';</script>\n";
$str = $row['mb_id']."님 포인트 내역 ".number_format($count)."".number_format($total)."점 정리<br>";
echo '<script>document.getElementById(\'ct\').innerHTML += \''.$str.'\';</script>'."\n";
flush();
}
@ -60,5 +60,5 @@ for ($i=0; $row=sql_fetch_array($result); $i++)
$sql = " UNLOCK TABLES ";
sql_query($sql);
echo "<script>document.getElementById('ct').innerHTML += '<p>총 ".$i."건의 회원포인트 내역이 정리 되었습니다.';</script>\n";
echo '<script>document.getElementById(\'ct\').innerHTML += \'<p>총 '.$i.'건의 회원포인트 내역이 정리 되었습니다.</p>\';</script>'."\n";
?>

View File

@ -1,22 +1,22 @@
<?
$sub_menu = "200200";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$token = get_token();
$sql_common = " from $g4[point_table] ";
$sql_common = " from {$g4['point_table']} ";
$sql_search = " where (1) ";
if ($stx) {
$sql_search .= " and ( ";
switch ($sfl) {
case "mb_id" :
$sql_search .= " ($sfl = '$stx') ";
case 'mb_id' :
$sql_search .= " ({$sfl} = '{$stx}') ";
break;
default :
$sql_search .= " ($sfl like '%$stx%') ";
default :
$sql_search .= " ({$sfl} like '%{$stx}%') ";
break;
}
$sql_search .= " ) ";
@ -26,211 +26,202 @@ if (!$sst) {
$sst = "po_id";
$sod = "desc";
}
$sql_order = " order by $sst $sod ";
$sql_order = " order by {$sst} {$sod} ";
$sql = " select count(*) as cnt
$sql_common
$sql_search
$sql_order ";
{$sql_common}
{$sql_search}
{$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$total_count = $row['cnt'];
$rows = $config[cf_page_rows];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page == "") $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
if ($page == '') $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select *
$sql_common
$sql_search
$sql_order
limit $from_record, $rows ";
{$sql_common}
{$sql_search}
{$sql_order}
limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$listall = "<a href='$_SERVER[PHP_SELF]'>처음</a>";
$listall = '';
if ($sfl || $stx) // 검색렬일 때만 처음 버튼을 보여줌
$listall = '<a href="'.$_SERVER['PHP_SELF'].'">전체목록</a>';
if ($sfl == "mb_id" && $stx)
$mb = get_member($stx);
$mb = array();
if ($sfl == 'mb_id' && $stx)
$mb = get_member(isset($stx));
$g4[title] = "포인트관리";
include_once ("./admin.head.php");
$g4['title'] = '포인트관리';
include_once ('./admin.head.php');
$colspan = 8;
?>
<script type="text/javascript" src="<?=$g4[path]?>/js/sideview.js"></script>
<script type="text/javascript">
var list_update_php = "";
var list_delete_php = "point_list_delete.php";
<script>
var list_update_php = '';
var list_delete_php = 'point_list_delete.php';
</script>
<script type="text/javascript">
<script>
function point_clear()
{
if (confirm("포인트 정리를 하시면 최근 50건 이전의 포인트 부여 내역을 삭제하므로\n\n포인트 부여 내역을 필요로 할때 찾지 못할 수도 있습니다.\n\n\n그래도 진행하시겠습니까?"))
if (confirm('포인트 정리를 하시면 최근 50건 이전의 포인트 부여 내역을 삭제하므로 포인트 부여 내역을 필요로 할때 찾지 못할 수도 있습니다. 그래도 진행하시겠습니까?'))
{
document.location.href = "./point_clear.php?ok=1";
}
}
</script>
<table width=100%>
<form name=fsearch method=get>
<tr>
<td width=50% align=left>
<?=$listall?> (건수 : <?=number_format($total_count)?>)
<?
if ($mb[mb_id])
echo "&nbsp;(" . $mb[mb_id] ." 님 포인트 합계 : " . number_format($mb[mb_point]) . "점)";
else {
$row2 = sql_fetch(" select sum(po_point) as sum_point from $g4[point_table] ");
echo "&nbsp;(전체 포인트 합계 : " . number_format($row2[sum_point]) . "점)";
<form name="fsearch" id="fsearch" method="get">
<fieldset>
<legend>포인트 내역 검색</legend>
<span>
<?=$listall?>
전체 <?=number_format($total_count)?> 건
<?
if (isset($mb['mb_id']) && $mb['mb_id']) {
echo '&nbsp;(' . $mb['mb_id'] .' 님 포인트 합계 : ' . number_format($mb['mb_point']) . '점)';
} else {
$row2 = sql_fetch(" select sum(po_point) as sum_point from {$g4['point_table']} ");
echo '&nbsp;(전체 합계 '.number_format($row2['sum_point']).'점)';
}
?>
<? if ($is_admin == "super") { ?><!-- <a href="javascript:point_clear();">포인트정리</a> --><? } ?>
</td>
<td width=50% align=right>
<select name=sfl class=cssfl>
<option value='mb_id'>회원아이디</option>
<option value='po_content'>내용</option>
</select>
<input type=text name=stx class=ed required itemname='검색어' value='<?=$stx?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
<? if ($is_admin == 'super') { ?><!-- <a href="javascript:point_clear();">포인트정리</a> --><? } ?>
</span>
<select name="sfl" title="검색대상">
<option value="mb_id"<?=get_selected($_GET['sfl'], "mb_id");?>>회원아이디</option>
<option value="po_content"<?=get_selected($_GET['sfl'], "po_content");?>>내용</option>
</select>
<input type="text" name="stx" value="<?=$stx?>" title="검색어(필수)" required class="required frm_input">
<input type="submit" class="btn_submit" value="검색">
</fieldset>
</form>
</table>
<form name=fpointlist method=post>
<input type=hidden name=sst value='<?=$sst?>'>
<input type=hidden name=sod value='<?=$sod?>'>
<input type=hidden name=sfl value='<?=$sfl?>'>
<input type=hidden name=stx value='<?=$stx?>'>
<input type=hidden name=page value='<?=$page?>'>
<input type=hidden name=token value='<?=$token?>'>
<section class="cbox">
<h2>포인트 내역</h2>
<table width=100% cellpadding=0 cellspacing=1>
<colgroup width=30>
<colgroup width=100>
<colgroup width=80>
<colgroup width=80>
<colgroup width=140>
<colgroup width=''>
<colgroup width=50>
<colgroup width=80>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td><input type=checkbox name=chkall value='1' onclick='check_all(this.form)'></td>
<td><?=subject_sort_link('mb_id')?>회원아이디</a></td>
<td>이름</td>
<td>별명</td>
<td><?=subject_sort_link('po_datetime')?>일시</a></td>
<td><?=subject_sort_link('po_content')?>포인트 내용</a></td>
<td><?=subject_sort_link('po_point')?>포인트</a></td>
<td>포인트합</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
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 $g4[member_table] where mb_id = '$row[mb_id]' ";
$row2 = sql_fetch($sql2);
<form name="fpointlist" id="fpointlist" method="post">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="token" value="<?=$token?>">
<table class="tbl_pt_list">
<thead>
<tr>
<th scope="col"><input type="checkbox" name="chkall" value="1" id="chkall" title="현재 페이지 포인트 내역 전체선택" onclick="check_all(this.form)"></th>
<th scope="col"><?=subject_sort_link('mb_id')?>회원아이디</a></th>
<th scope="col">이름</th>
<th scope="col">별명</th>
<th scope="col"><?=subject_sort_link('po_datetime')?>일시</a></th>
<th scope="col"><?=subject_sort_link('po_content')?>포인트 내용</a></th>
<th scope="col"><?=subject_sort_link('po_point')?>포인트</a></th>
<th scope="col">포인트합</th>
</tr>
</thead>
<tbody>
<?
for ($i=0; $row=sql_fetch_array($result); $i++) {
if ($i==0 || ($row2['mb_id'] != $row['mb_id'])) {
$sql2 = " select mb_id, mb_name, mb_nick, mb_email, mb_homepage, mb_point from {$g4['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="'.G4_BBS_URL.'/board.php?bo_table='.$row['po_rel_table'].'&amp;wr_id='.$row['po_rel_id'].'" target="_blank">';
$link2 = '</a>';
}
?>
<tr>
<td class="td_chk">
<input type="hidden" id="mb_id_<?=$i?>" name="mb_id[<?=$i?>]" value="<?=$row['mb_id']?>">
<input type="hidden" id="po_id_<?=$i?>" name="po_id[<?=$i?>]" value="<?=$row['po_id']?>">
<input type="checkbox" id="chk_<?=$i?>" name="chk[]" value="<?=$i?>" title="내역선택">
</td>
<td class="td_mbid"><a href="?sfl=mb_id&amp;stx=<?=$row['mb_id']?>"><?=$row['mb_id']?></a></td>
<td class="td_mbname"><?=$row2['mb_name']?></td>
<td class="td_name"><div><?=$mb_nick?></div></td>
<td class="td_time"><?=$row['po_datetime']?></td>
<td class="td_pt_log"><?=$link1?><?=$row['po_content']?><?=$link2?></td>
<td class="td_num td_pt"><?=number_format($row['po_point'])?></td>
<td class="td_bignum td_pt"><?=number_format($row2['mb_point'])?></td>
</tr>
<?
}
$mb_nick = get_sideview($row[mb_id], $row2[mb_nick], $row2[mb_email], $row2[mb_homepage]);
if ($i == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table>
$link1 = $link2 = "";
if (!preg_match("/^\@/", $row[po_rel_table]) && $row[po_rel_table])
{
$link1 = "<a href='$g4[bbs_path]/board.php?bo_table={$row[po_rel_table]}&wr_id={$row[po_rel_id]}' target=_blank>";
$link2 = "</a>";
}
<div class="btn_list">
<button onclick="btn_check(this.form, 'delete')">선택삭제</button>
</div>
$list = $i%2;
echo "
<input type=hidden name=po_id[$i] value='$row[po_id]'>
<input type=hidden name=mb_id[$i] value='$row[mb_id]'>
<tr class='list$list col1 ht center'>
<td><input type=checkbox name=chk[] value='$i'></td>
<td><a href='?sfl=mb_id&stx=$row[mb_id]'>$row[mb_id]</a></td>
<td>$row2[mb_name]</td>
<td>$mb_nick</td>
<td>$row[po_datetime]</td>
<td align=left>&nbsp;{$link1}$row[po_content]{$link2}</td>
<td align=right>".number_format($row[po_point])."&nbsp;</td>
<td align=right>".number_format($row2[mb_point])."&nbsp;</td>
</tr> ";
}
</form>
</section>
if ($i == 0)
echo "<tr><td colspan='$colspan' align=center height=100 bgcolor=#ffffff>자료가 없습니다.</td></tr>";
<?=get_paging(G4_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['PHP_SELF']}?$qstr&amp;page=");?>
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
<section id="point_mng" class="cbox">
<h2>개별회원 포인트 증감 설정</h2>
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$qstr&page=");
echo "<table width=100% cellpadding=3 cellspacing=1>";
echo "<tr><td width=50%>";
echo "<input type=button class='btn1' value='선택삭제' onclick=\"btn_check(this.form, 'delete')\">";
echo "</td>";
echo "<td width=50% align=right>$pagelist</td></tr></table>\n";
<form name="fpointlist2" method="post" id="fpointlist2" action="./point_update.php" autocomplete="off">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="token" value="<?=$token?>">
if ($stx)
echo "<script type='text/javascript'>document.fsearch.sfl.value = '$sfl';</script>\n";
<table class="frm_tbl">
<colgroup>
<col class="grid_3">
<col>
</colgroup>
<tbody>
<tr>
<th scope="row"><label for="mb_id">회원아이디<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="mb_id" value="<?=$mb_id?>" id="mb_id" class="required frm_input" required></td>
</tr>
<tr>
<th scope="row"><label for="po_content">포인트 내용<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="po_content" id="po_content" required class="required frm_input" size="80"></td>
</tr>
<tr>
<th scope="row"><label for="po_point">포인트<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="po_point" id="po_point" required class="required frm_input"></td>
</tr>
</tbody>
</table>
if (strstr($sfl, "mb_id"))
$mb_id = $stx;
else
$mb_id = "";
?>
</form>
<fieldset id="admin_confirm">
<legend>XSS 혹은 CSRF 방지</legend>
<p>관리자 권한을 탈취당하는 경우를 대비하여 패스워드를 다시 한번 확인합니다.</p>
<label for="admin_password">관리자패스워드<strong class="sound_only">필수</strong></label>
<input type="password" name="admin_password" id="admin_password" required class="required frm_input">
</fieldset>
<script type='text/javascript'> document.fsearch.stx.focus(); </script>
<div class="btn_confirm">
<input type="submit" value="확인" class="btn_submit">
</div>
<?$colspan=5?>
<p>
<form name=fpointlist2 method=post onsubmit="return fpointlist2_submit(this);" autocomplete="off">
<input type=hidden name=sfl value='<?=$sfl?>'>
<input type=hidden name=stx value='<?=$stx?>'>
<input type=hidden name=sst value='<?=$sst?>'>
<input type=hidden name=sod value='<?=$sod?>'>
<input type=hidden name=page value='<?=$page?>'>
<input type=hidden name=token value='<?=$token?>'>
<table width=100% cellpadding=0 cellspacing=1 class=tablebg>
<colgroup width=150>
<colgroup width=''>
<colgroup width=100>
<colgroup width=120>
<colgroup width=100>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>회원아이디</td>
<td>포인트 내용</td>
<td>포인트</td>
<td>관리자패스워드</td>
<td>입력</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<tr class='ht center'>
<td><input type=text class=ed name=mb_id required itemname='회원아이디' value='<?=$mb_id?>'></td>
<td><input type=text class=ed name=po_content required itemname='내용' style='width:99%;'></td>
<td><input type=text class=ed name=po_point required itemname='포인트' size=10></td>
<td><input type=password class=ed name=admin_password required itemname='관리자 패스워드'></td>
<td><input type=submit class=btn1 value=' 확 인 '></td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
</form>
</table>
</form>
<script type="text/javascript">
function fpointlist2_submit(f)
{
f.action = "./point_update.php";
return true;
}
</script>
</section>
<?
include_once ("./admin.tail.php");
include_once ('./admin.tail.php');
?>

View File

@ -1,28 +1,32 @@
<?
$sub_menu = "200200";
include_once("./_common.php");
include_once('./_common.php');
check_demo();
auth_check($auth[$sub_menu], "d");
auth_check($auth[$sub_menu], 'd');
check_token();
for ($i=0; $i<count($chk); $i++)
$count = count($_POST['chk']);
if(!$count)
alert("선택삭제 하실 항목을 하나이상 선택해 주세요.");
for ($i=0; $i<$count; $i++)
{
// 실제 번호를 넘김
$k = $_POST['chk'][$i];
$sql = " delete from $g4[point_table] where po_id = '{$_POST['po_id'][$k]}' ";
$sql = " delete from {$g4['point_table']} where po_id = '{$_POST['po_id'][$k]}' ";
sql_query($sql);
$sql = " select sum(po_point) as sum_po_point from $g4[point_table] where mb_id = '{$_POST['mb_id'][$k]}' ";
$sql = " select sum(po_point) as sum_po_point from {$g4['point_table']} where mb_id = '{$_POST['mb_id'][$k]}' ";
$row = sql_fetch($sql);
$sum_point = $row[sum_po_point];
$sum_point = $row['sum_po_point'];
$sql= " update $g4[member_table] set mb_point = '$sum_point' where mb_id = '{$_POST['mb_id'][$k]}' ";
$sql= " update {$g4['member_table']} set mb_point = '{$sum_point}' where mb_id = '{$_POST['mb_id'][$k]}' ";
sql_query($sql);
}
goto_url("./point_list.php?$qstr");
goto_url('./point_list.php?'.$qstr);
?>

View File

@ -1,28 +1,28 @@
<?
$sub_menu = "200200";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
check_token();
if ($member[mb_password] != sql_password($_POST['admin_password'])) {
alert("패스워드가 다릅니다.");
if ($member['mb_password'] != sql_password($_POST['admin_password'])) {
alert('패스워드가 다릅니다.');
}
$mb_id = $_POST['mb_id'];
$po_point = $_POST['po_point'];
$mb_id = $_POST['mb_id'];
$po_point = $_POST['po_point'];
$po_content = $_POST['po_content'];
$mb = get_member($mb_id);
if (!$mb[mb_id])
alert("존재하는 회원아이디가 아닙니다.", "./point_list.php?$qstr");
if (!$mb['mb_id'])
alert('존재하는 회원아이디가 아닙니다.', './point_list.php?'.$qstr);
if (($po_point < 0) && ($po_point * (-1) > $mb[mb_point]))
alert("포인트를 깎는 경우 현재 포인트보다 작으면 안됩니다.", "./point_list.php?$qstr");
if (($po_point < 0) && ($po_point * (-1) > $mb['mb_point']))
alert('포인트를 깎는 경우 현재 포인트보다 작으면 안됩니다.', './point_list.php?'.$qstr);
insert_point($mb_id, $po_point, $po_content, '@passive', $mb_id, $member[mb_id]."-".uniqid(""));
insert_point($mb_id, $po_point, $po_content, '@passive', $mb_id, $member['mb_id']."-".uniqid(""));
goto_url("./point_list.php?$qstr");
goto_url('./point_list.php?'.$qstr);
?>

27
adm/poll_delete.php Normal file
View File

@ -0,0 +1,27 @@
<?php
$sub_menu = "200900";
include_once('./_common.php');
check_demo();
auth_check($auth[$sub_menu], 'd');
check_token();
$count = count($_POST['chk']);
if(!$count)
alert('삭제할 투표목록을 1개이상 선택해 주세요.');
for($i=0; $i<$count; $i++) {
$po_id = $_POST['chk'][$i];
$sql = " delete from {$g4['poll_table']} where po_id = '$po_id' ";
sql_query($sql);
$sql = " delete from {$g4['poll_etc_table']} where po_id = '$po_id' ";
sql_query($sql);
}
goto_url('./poll_list.php?'.$qstr);
?>

View File

@ -1,121 +1,110 @@
<?
$sub_menu = "200900";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
$token = get_token();
$html_title = "투표";
if ($w == "")
$html_title .= " 생성";
else if ($w == "u") {
$html_title .= " 수정";
$sql = " select * from $g4[poll_table] where po_id = '$po_id' ";
$html_title = '투표';
if ($w == '')
$html_title .= ' 생성';
else if ($w == 'u') {
$html_title .= ' 수정';
$sql = " select * from {$g4['poll_table']} where po_id = '{$po_id}' ";
$po = sql_fetch($sql);
} else
alert("w 값이 제대로 넘어오지 않았습니다.");
} else
alert('w 값이 제대로 넘어오지 않았습니다.');
$g4[title] = $html_title;
include_once("./admin.head.php");
$g4['title'] = $html_title;
include_once('./admin.head.php');
?>
<form name=fpoll method=post onsubmit="return fpoll_check(this);" enctype="multipart/form-data">
<input type=hidden name=po_id value='<?=$po_id?>'>
<input type=hidden name=w value='<?=$w?>'>
<input type=hidden name=sfl value='<?=$sfl?>'>
<input type=hidden name=stx value='<?=$stx?>'>
<input type=hidden name=sst value='<?=$sst?>'>
<input type=hidden name=sod value='<?=$sod?>'>
<input type=hidden name=page value='<?=$page?>'>
<input type=hidden name=token value='<?=$token?>'>
<table width=100% cellpadding=0 cellspacing=0>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=30% class='col2 pad2'>
<colgroup width=20% class='col1 pad1 bold right'>
<colgroup width=30% class='col2 pad2'>
<tr>
<td colspan=4 class=title align=left><img src='<?=$g4[admin_path]?>/img/icon_title.gif'> <?=$html_title?></td>
</tr>
<tr><td colspan=4 class='line1'></td></tr>
<tr class='ht'>
<td>투표 제목</td>
<td colspan=3><input type='text' class=ed name='po_subject' style='width:99%;' required itemname='투표 제목' value='<?=$po[po_subject]?>' maxlength="125"></td>
</tr>
<?
for ($i=1; $i<=9; $i++) {
$required = "";
$itemname = "";
if ($i==1 || $i==2) {
$required = "required";
$itemname = "itemname='항목$i'";
}
$po_poll = get_text($po["po_poll".$i]);
echo <<<HEREDOC
<tr class='ht'>
<td>항목{$i}</td>
<td><input type="text" class=ed name="po_poll{$i}" {$required} {$itemname} value="{$po_poll}" style="width:99%;" maxlength="125"></td>
<td>투표수</td>
<td><input type="text" class=ed name="po_cnt{$i}" size=5 value="{$po["po_cnt".$i]}"></td>
<div class="cbox">
<form name="fpoll" id="fpoll" action="./poll_form_update.php" method="post" enctype="multipart/form-data">
<input type="hidden" name="po_id" value="<?=$po_id?>">
<input type="hidden" name="w" value="<?=$w?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="token" value="<?=$token?>">
<table class="frm_tbl">
<tbody>
<tr>
<th scope="row"><label for="po_subject">투표 제목<strong class="sound_only">필수</strong></label></th>
<td><input type="text" name="po_subject" value="<?=$po['po_subject']?>" id="po_subject" required class="required frm_input" size="80" maxlength="125"></td>
</tr>
HEREDOC;
}
?>
<tr class='ht'>
<td>기타의견</td>
<td colspan=3><input type='text' class=ed name='po_etc' style='width:99%;' value='<?=get_text($po[po_etc])?>' maxlength="125"></td>
</tr>
<?
for ($i=1; $i<=9; $i++) {
$required = '';
if ($i==1 || $i==2) {
$required = 'required';
$sound_only = '<strong class="sound_only">필수</strong>';
}
<tr class='ht'>
<td>투표권한</td>
<td colspan=3><?=get_member_level_select("po_level", 1, 10, $po[po_level])?>이상 투표할 수 있음</td>
</tr>
$po_poll = get_text($po['po_poll'.$i]);
?>
<tr class='ht'>
<td>포인트</td>
<td colspan=3><input type='text' class=ed name='po_point' size='10' value='<?=$po[po_point]?>'> 점 (투표한 회원에게 부여함)</td>
</tr>
<tr>
<th scope="row"><label for="po_poll<?=$i?>">항목 <?=$i?><?=$sound_only?></label></th>
<td>
<input type="text" name="po_poll<?=$i?>" value="<?=$po_poll?>" id="po_poll<?=$i?>" <?=$required?> class="frm_input <?=$required?>" maxlength="125">
<label for="po_cnt<?=$i?>">항목 <?=$i?> 투표수</label>
<input type="text" name="po_cnt<?=$i?>" value="<?=$po['po_cnt'.$i]?>" id="po_cnt<?=$i?>" class="frm_input" size="3">
</td>
</tr>
<? } ?>
<? if ($w == "u") { ?>
<tr class='ht'>
<td>투표시작일</td>
<td colspan=3><input type="text" class=ed name="po_date" size=10 maxlength=10 value="<?=$po[po_date]?>"></td>
</tr>
<tr>
<th scope="row"><label for="po_etc">기타의견</label></th>
<td>
<?=help('기타 의견을 남길 수 있도록 하려면, 간단한 질문을 입력하세요.')?>
<input type="text" name="po_etc" value="<?=get_text($po['po_etc'])?>" id="po_etc" class="frm_input" size="80" maxlength="125">
</td>
</tr>
<tr>
<th scope="row"><label for="po_level">투표가능 회원레벨</label></th>
<td>
<?=help("레벨을 1로 설정하면 손님도 투표할 수 있습니다.")?>
<?=get_member_level_select('po_level', 1, 10, $po['po_level'])?> 이상 투표할 수 있음
</td>
</tr>
<tr>
<th scope="row"><label for="po_point">포인트</label></th>
<td>
<?=help('투표에 참여한 회원에게 포인트를 부여합니다.')?>
<input type="text" name="po_point" value="<?=$po['po_point']?>" id="po_point" class="frm_input"> 점
</td>
</tr>
<tr class='ht'>
<td>투표참가 IP</td>
<td colspan=3><textarea class=ed name="po_ips" rows=10 style='width:99%;' readonly><?=preg_replace("/\n/", " / ", $po[po_ips])?></textarea></td>
</tr>
<? if ($w == 'u') { ?>
<tr>
<th scope="row"><label for="po_date">투표시작일</label></th>
<td><input type="text" name="po_date" value="<?=$po['po_date']?>" id="po_date" class="frm_input" maxlength="10"></td>
</tr>
<tr>
<th scope="row"><label for="po_ips">투표참가 IP</label></th>
<td><textarea name="po_ips" id="po_ips" readonly rows="10"><?=preg_replace("/\n/", " / ", $po['po_ips'])?></textarea></td>
</tr>
<tr>
<th scope="row"><label for="mb_ids">투표참가 회원</label></th>
<td><textarea name="mb_ids" id="mb_ids" readonly rows="10"><?=preg_replace("/\n/", " / ", $po['mb_ids'])?></textarea></td>
</tr>
<? } ?>
</tbody>
</table>
<tr class='ht'>
<td>투표참가 회원</td>
<td colspan=3><textarea class=ed name="mb_ids" rows=10 style='width:99%;' readonly><?=preg_replace("/\n/", " / ", $po[mb_ids])?></textarea></td>
</tr>
<? } ?>
<tr><td colspan=4 class='line2'></td></tr>
</table>
<p align=center>
<input type=submit class=btn1 accesskey='s' value=' 확 인 '>&nbsp;
<input type=button class=btn1 value=' 목 록 ' onclick="document.location.href='./poll_list.php?<?=$qstr?>';">
</form>
<script type='text/javascript'>
function fpoll_check(f)
{
f.action = './poll_form_update.php';
return true;
}
</script>
<div class="btn_confirm">
<input type="submit" value="확인" class="btn_submit" accesskey="s">
<a href="./poll_list.php?<?=$qstr?>">목록</a>
</div>
</form>
</div>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,70 +1,70 @@
<?
$sub_menu = "200900";
include_once("./_common.php");
include_once('./_common.php');
$w = $_POST['w'];
if ($w == 'u' || $w == 'd')
check_demo();
auth_check($auth[$sub_menu], "w");
auth_check($auth[$sub_menu], 'w');
check_token();
if ($w == "")
if ($w == '')
{
$sql = " insert $g4[poll_table]
$sql = " insert {$g4['poll_table']}
( po_subject, po_poll1, po_poll2, po_poll3, po_poll4, po_poll5, po_poll6, po_poll7, po_poll8, po_poll9, po_cnt1, po_cnt2, po_cnt3, po_cnt4, po_cnt5, po_cnt6, po_cnt7, po_cnt8, po_cnt9, po_etc, po_level, po_point, po_date )
values ( '$_POST[po_subject]', '$_POST[po_poll1]', '$_POST[po_poll2]', '$_POST[po_poll3]', '$_POST[po_poll4]', '$_POST[po_poll5]', '$_POST[po_poll6]', '$_POST[po_poll7]', '$_POST[po_poll8]', '$_POST[po_poll9]', '$_POST[po_cnt1]', '$_POST[po_cnt2]', '$_POST[po_cnt3]', '$_POST[po_cnt4]', '$_POST[po_cnt5]', '$_POST[po_cnt6]', '$_POST[po_cnt7]', '$_POST[po_cnt8]', '$_POST[po_cnt9]', '$_POST[po_etc]', '$_POST[po_level]', '$_POST[po_point]', '$g4[time_ymdhis]' ) ";
values ( '{$_POST['po_subject']}', '{$_POST['po_poll1']}', '{$_POST['po_poll2']}', '{$_POST['po_poll3']}', '{$_POST['po_poll4']}', '{$_POST['po_poll5']}', '{$_POST['po_poll6']}', '{$_POST['po_poll7']}', '{$_POST['po_poll8']}', '{$_POST['po_poll9']}', '{$_POST['po_cnt1']}', '{$_POST['po_cnt2']}', '{$_POST['po_cnt3']}', '{$_POST['po_cnt4']}', '{$_POST['po_cnt5']}', '{$_POST['po_cnt6']}', '{$_POST['po_cnt7']}', '{$_POST['po_cnt8']}', '{$_POST['po_cnt9']}', '{$_POST['po_etc']}', '{$_POST['po_level']}', '{$_POST['po_point']}', '".G4_TIME_YMDHIS."' ) ";
sql_query($sql);
$po_id = mysql_insert_id();
}
else if ($w == "u")
}
else if ($w == 'u')
{
$sql = " update $g4[poll_table]
set po_subject = '$_POST[po_subject]',
po_poll1 = '$_POST[po_poll1]',
po_poll2 = '$_POST[po_poll2]',
po_poll3 = '$_POST[po_poll3]',
po_poll4 = '$_POST[po_poll4]',
po_poll5 = '$_POST[po_poll5]',
po_poll6 = '$_POST[po_poll6]',
po_poll7 = '$_POST[po_poll7]',
po_poll8 = '$_POST[po_poll8]',
po_poll9 = '$_POST[po_poll9]',
po_cnt1 = '$_POST[po_cnt1]',
po_cnt2 = '$_POST[po_cnt2]',
po_cnt3 = '$_POST[po_cnt3]',
po_cnt4 = '$_POST[po_cnt4]',
po_cnt5 = '$_POST[po_cnt5]',
po_cnt6 = '$_POST[po_cnt6]',
po_cnt7 = '$_POST[po_cnt7]',
po_cnt8 = '$_POST[po_cnt8]',
po_cnt9 = '$_POST[po_cnt9]',
po_etc = '$_POST[po_etc]',
po_level = '$_POST[po_level]',
po_point = '$_POST[po_point]',
po_date = '$_POST[po_date]'
where po_id = '$_POST[po_id]' ";
$sql = " update {$g4['poll_table']}
set po_subject = '{$_POST['po_subject']}',
po_poll1 = '{$_POST['po_poll1']}',
po_poll2 = '{$_POST['po_poll2']}',
po_poll3 = '{$_POST['po_poll3']}',
po_poll4 = '{$_POST['po_poll4']}',
po_poll5 = '{$_POST['po_poll5']}',
po_poll6 = '{$_POST['po_poll6']}',
po_poll7 = '{$_POST['po_poll7']}',
po_poll8 = '{$_POST['po_poll8']}',
po_poll9 = '{$_POST['po_poll9']}',
po_cnt1 = '{$_POST['po_cnt1']}',
po_cnt2 = '{$_POST['po_cnt2']}',
po_cnt3 = '{$_POST['po_cnt3']}',
po_cnt4 = '{$_POST['po_cnt4']}',
po_cnt5 = '{$_POST['po_cnt5']}',
po_cnt6 = '{$_POST['po_cnt6']}',
po_cnt7 = '{$_POST['po_cnt7']}',
po_cnt8 = '{$_POST['po_cnt8']}',
po_cnt9 = '{$_POST['po_cnt9']}',
po_etc = '{$_POST['po_etc']}',
po_level = '{$_POST['po_level']}',
po_point = '{$_POST['po_point']}',
po_date = '{$_POST['po_date']}'
where po_id = '{$_POST['po_id']}' ";
sql_query($sql);
}
else if ($w == "d")
}
else if ($w == 'd')
{
$sql = " delete from $g4[poll_table] where po_id = '$_POST[po_id]' ";
$sql = " delete from {$g4['poll_table']} where po_id = '{$_POST['po_id']}' ";
sql_query($sql);
$sql = " delete from $g4[poll_etc_table] where po_id = '$_POST[po_id]' ";
$sql = " delete from {$g4['poll_etc_table']} where po_id = '{$_POST['po_id']}' ";
sql_query($sql);
}
// 가장 큰 투표번호를 기본환경설정에 저장하여
// 투표번호를 넘겨주지 않았을 경우
// 가장 큰 투표번호를 기본환경설정에 저장하여
// 투표번호를 넘겨주지 않았을 경우
// 가장 큰 투표번호를 구해야 하는 쿼리를 대체한다
$row = sql_fetch(" select max(po_id) as max_po_id from $g4[poll_table] ");
sql_query(" update $g4[config_table] set cf_max_po_id = '$row[max_po_id]' ");
$row = sql_fetch(" select max(po_id) as max_po_id from {$g4['poll_table']} ");
sql_query(" update {$g4['config_table']} set cf_max_po_id = '{$row['max_po_id']}' ");
if ($w == "d")
goto_url("./poll_list.php?$qstr");
if ($w == 'd')
goto_url('./poll_list.php?'.$qstr);
else
goto_url("./poll_form.php?w=u&po_id=$po_id&$qstr");
goto_url('./poll_form.php?w=u&po_id='.$po_id.'&amp;'.$qstr);
?>

View File

@ -1,19 +1,19 @@
<?
$sub_menu = "200900";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$token = get_token();
$sql_common = " from $g4[poll_table] ";
$sql_common = " from {$g4['poll_table']} ";
$sql_search = " where (1) ";
if ($stx) {
$sql_search .= " and ( ";
switch ($sfl) {
default :
$sql_search .= " ($sfl like '%$stx%') ";
default :
$sql_search .= " ({$sfl} like '%{$stx}%') ";
break;
}
$sql_search .= " ) ";
@ -23,132 +23,135 @@ if (!$sst) {
$sst = "po_id";
$sod = "desc";
}
$sql_order = " order by $sst $sod ";
$sql_order = " order by {$sst} {$sod} ";
$sql = " select count(*) as cnt
$sql_common
$sql_search
$sql_order ";
{$sql_common}
{$sql_search}
{$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$total_count = $row['cnt'];
$rows = $config[cf_page_rows];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page == "") $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
if ($page == '') $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select *
$sql_common
$sql_search
$sql_order
limit $from_record, $rows ";
$sql = " select *
{$sql_common}
{$sql_search}
{$sql_order}
limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$listall = "<a href='$_SERVER[PHP_SELF]' class=tt>처음</a>";
$listall = '';
if ($sfl || $stx) // 검색렬일 때만 처음 버튼을 보여줌
$listall = '<a href="'.$_SERVER['PHP_SELF'].'">전체목록</a>';
$g4[title] = "투표관리";
include_once("./admin.head.php");
$g4['title'] = '투표관리';
include_once('./admin.head.php');
$colspan = 6;
?>
<table width=100%>
<form name=fsearch method=get>
<tr>
<td width=50% align=left><?=$listall?> (투표수 : <?=number_format($total_count)?>개)</td>
<td width=50% align=right>
<select name=sfl>
<option value='po_subject'>제목</option>
</select>
<input type=text name=stx class=ed required itemname='검색어' value='<?=$stx?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
<form id="fsearch" name="fsearch" method="get">
<fieldset>
<legend>투표검색</legend>
<span>
<?=$listall?>
투표수 : <?=number_format($total_count)?>개
</span>
<select name="sfl" id="sfl" title="검색대상">
<option value="po_subject"<?=get_selected($_GET['sfl'], "po_subject");?>>제목</option>
</select>
<input type="text" name="stx" value="<?=$stx?>" title="검색어(필수)" required class="required frm_input">
<input type="submit" class="btn_submit" value="검색">
</fieldset>
</form>
</table>
<table width=100% cellpadding=0 cellspacing=0>
<colgroup width=60>
<colgroup width=''>
<colgroup width=100>
<colgroup width=60>
<colgroup width=60>
<colgroup width=70>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>번호</td>
<td>제목</td>
<td>투표권한</td>
<td>투표수</td>
<td>기타의견</td>
<td><a href="./poll_form.php"><img src='<?=$g4[admin_path]?>/img/icon_insert.gif' border=0 title='생성'></a></td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
for ($i=0; $row=sql_fetch_array($result); $i++) {
$sql2 = " select sum(po_cnt1+po_cnt2+po_cnt3+po_cnt4+po_cnt5+po_cnt6+po_cnt7+po_cnt8+po_cnt9) as sum_po_cnt from $g4[poll_table] where po_id = '$row[po_id]' ";
$row2 = sql_fetch($sql2);
$po_etc = ($row[po_etc]) ? "사용" : "미사용";
<section class="cbox">
<h2>투표목록</h2>
$s_mod = "<a href='./poll_form.php?$qstr&w=u&po_id=$row[po_id]'><img src='img/icon_modify.gif' border=0 title='수정'></a>";
//$s_del = "<a href=\"javascript:del('./poll_form_update.php?$qstr&w=d&po_id=$row[po_id]');\"><img src='img/icon_delete.gif' border=0 title='삭제'></a>";
$s_del = "<a href=\"javascript:post_delete('poll_form_update.php', '$row[po_id]');\"><img src='img/icon_delete.gif' border=0 title='삭제'></a>";
<div id="btn_add">
<a href="./poll_form.php" id="poll_add">투표 추가</a>
</div>
$list = $i%2;
echo "
<tr class='list$list col1 ht center'>
<td>$row[po_id]</td>
<td align=left>&nbsp;".cut_str(get_text($row[po_subject]),70)."</td>
<td>$row[po_level]</td>
<td>$row2[sum_po_cnt]</td>
<td>$po_etc</td>
<td>$s_mod $s_del</td>
</tr>";
<form name="fpolllist" id="fpolllist" action="./poll_delete.php" method="post">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="token" value="<?=$token?>">
<table>
<thead>
<tr>
<th scope="col"><input type="checkbox" name="chkall" value="1" id="chkall" title="현재 페이지 투표 전체선택" onclick="check_all(this.form)"></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>
<?
for ($i=0; $row=sql_fetch_array($result); $i++) {
$sql2 = " select sum(po_cnt1+po_cnt2+po_cnt3+po_cnt4+po_cnt5+po_cnt6+po_cnt7+po_cnt8+po_cnt9) as sum_po_cnt from {$g4['poll_table']} where po_id = '{$row['po_id']}' ";
$row2 = sql_fetch($sql2);
$po_etc = ($row['po_etc']) ? "사용" : "미사용";
}
$s_mod = '<a href="./poll_form.php?'.$qstr.'&amp;w=u&amp;po_id='.$row['po_id'].'">수정</a>';
//$s_del = '<a href="javascript:post_delete(\'poll_form_update.php\', \''.$row['po_id'].'\');">삭제</a>';
?>
if ($i==0)
echo "<tr><td colspan='$colspan' height=100 align=center bgcolor='#FFFFFF'>자료가 없습니다.</td></tr>";
<tr>
<td class="td_chk">
<input type="checkbox" name="chk[]" value="<?=$row['po_id']?>" id="chk_<?=$i?>" title="투표선택">
</td>
<td class="td_num"><?=$row['po_id']?></td>
<td><?=cut_str(get_text($row['po_subject']),70)?></td>
<td class="td_num"><?=$row['po_level']?></td>
<td class="td_num"><?=$row2['sum_po_cnt']?></td>
<td class="td_etc"><?=$po_etc?></td>
<td class="td_mng"><?=$s_mod?></td>
</tr>
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
<?
}
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$qstr&page=");
if ($pagelist)
echo "<table width=100% cellpadding=3 cellspacing=1><tr><td align=right>$pagelist</td></tr></table>\n";
if ($i==0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table>
if ($stx)
echo "<script type='text/javascript'>document.fsearch.sfl.value = '$sfl';</script>\n";
?>
<div class="btn_list">
<button>선택삭제</button>
</div>
</form>
</section>
<script type='text/javascript'>
document.fsearch.stx.focus();
</script>
<?=get_paging(G4_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['PHP_SELF']}?$qstr&amp;page=");?>
<script>
// POST 방식으로 삭제
function post_delete(action_url, val)
{
var f = document.fpost;
$(function() {
$('#fpolllist').submit(function() {
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
if (!is_checked("chk[]")) {
alert("선택삭제 하실 항목을 하나 이상 선택하세요.");
return false;
}
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
f.po_id.value = val;
f.action = action_url;
f.submit();
}
}
return true;
} else {
return false;
}
});
});
</script>
<form name='fpost' method='post'>
<input type='hidden' name='sst' value='<?=$sst?>'>
<input type='hidden' name='sod' value='<?=$sod?>'>
<input type='hidden' name='sfl' value='<?=$sfl?>'>
<input type='hidden' name='stx' value='<?=$stx?>'>
<input type='hidden' name='page' value='<?=$page?>'>
<input type='hidden' name='token' value='<?=$token?>'>
<input type='hidden' name='w' value='d'>
<input type='hidden' name='po_id'>
</form>
<?
include_once ("./admin.tail.php");
include_once ('./admin.tail.php');
?>

View File

@ -1,33 +1,32 @@
<?
$sub_menu = "300300";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
// 체크된 자료 삭제
if (is_array($_POST['chk'])) {
for ($i=0; $i<count($chk); $i++) {
// 실제 번호를 넘김
$k = $chk[$i];
if (isset($_POST['chk']) && is_array($_POST['chk'])) {
for ($i=0; $i<count($_POST['chk']); $i++) {
$pp_id = $_POST['chk'][$i];
sql_query(" delete from $g4[popular_table] where pp_id = '{$_POST['pp_id'][$k]}' ", true);
sql_query(" delete from {$g4['popular_table']} where pp_id = '$pp_id' ", true);
}
}
$sql_common = " from $g4[popular_table] a ";
$sql_common = " from {$g4['popular_table']} a ";
$sql_search = " where (1) ";
if ($stx) {
$sql_search .= " and ( ";
switch ($sfl) {
case "pp_word" :
$sql_search .= " ($sfl like '$stx%') ";
$sql_search .= " ({$sfl} like '{$stx}%') ";
break;
case "pp_date" :
$sql_search .= " ($sfl = '$stx') ";
$sql_search .= " ({$sfl} = '{$stx}') ";
break;
default :
$sql_search .= " ($sfl like '%$stx%') ";
default :
$sql_search .= " ({$sfl} like '%{$stx}%') ";
break;
}
$sql_search .= " ) ";
@ -37,113 +36,130 @@ if (!$sst) {
$sst = "pp_id";
$sod = "desc";
}
$sql_order = " order by $sst $sod ";
$sql_order = " order by {$sst} {$sod} ";
$sql = " select count(*) as cnt
$sql_common
$sql_search
$sql_order ";
{$sql_common}
{$sql_search}
{$sql_order} ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$total_count = $row['cnt'];
$rows = $config[cf_page_rows];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page == "") { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
if ($page == '') { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select *
$sql_common
$sql_search
$sql_order
limit $from_record, $rows ";
$sql = " select *
{$sql_common}
{$sql_search}
{$sql_order}
limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$listall = "<a href='$_SERVER[PHP_SELF]'>처음</a>";
if (isset($stx))
$listall = '<a href="'.$_SERVER['PHP_SELF'].'">전체목록</a>';
$g4[title] = "인기검색어관리";
include_once("./admin.head.php");
$g4['title'] = '인기검색어관리';
include_once('./admin.head.php');
$colspan = 4;
?>
<script type="text/javascript">
<script>
var list_update_php = '';
var list_delete_php = 'popular_list.php';
</script>
<table width=100% cellpadding=3 cellspacing=1>
<form name=fsearch method=get>
<tr>
<td width=50% align=left><?=$listall?> (건수 : <?=number_format($total_count)?>개)</td>
<td width=50% align=right>
<select name=sfl>
<option value='pp_word'>검색어</option>
<option value='pp_date'>등록일</option>
</select>
<input type=text name=stx class=ed required itemname='검색어' value='<?=$stx?>'>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
</form>
</table>
<form name=fpopularlist method=post>
<input type=hidden name=sst value="<?=$sst?>">
<input type=hidden name=sod value="<?=$sod?>">
<input type=hidden name=sfl value="<?=$sfl?>">
<input type=hidden name=stx value="<?=$stx?>">
<input type=hidden name=page value="<?=$page?>">
<input type=hidden name=token value="<?=$token?>">
<table width=100% cellpadding=0 cellspacing=1>
<colgroup width=30>
<colgroup width=>
<colgroup width=150>
<colgroup width=150>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td><input type=checkbox name=chkall value="1" onclick="check_all(this.form)"></td>
<td><?=subject_sort_link("pp_word")?>검색어</a></td>
<td>등록일</td>
<td>등록IP</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
for ($i=0; $row=sql_fetch_array($result); $i++) {
$word = get_text($row[pp_word]);
$list = $i % 2;
echo "<input type=hidden name=pp_id[$i] value='$row[pp_id]'>";
echo "<tr class='list$list col1 ht center'>";
echo "<td height=25><input type=checkbox name=chk[] value='$i'></td>";
echo "<td align='left'>&nbsp; <a href='$_SERVER[PHP_SELF]?sfl=pp_word&stx=$word'>$word</a></td>";
echo "<td>$row[pp_date]</td>";
echo "<td>$row[pp_ip]</td>";
echo "</tr>";
echo "<tr class='list$list col1 ht center'>";
echo "</tr>\n";
}
if ($i == 0)
echo "<tr><td colspan='$colspan' align=center height=100 bgcolor=#ffffff>자료가 없습니다.</td></tr>";
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$qstr&page=");
echo "<table width=100% cellpadding=3 cellspacing=1>";
echo "<tr><td width=50%>";
if ($is_admin == "super")
echo "<input type=button class='btn1' value='선택삭제' onclick=\"btn_check(this.form, 'delete')\">";
echo "</td>";
echo "<td width=50% align=right>$pagelist</td></tr></table>\n";
if ($stx)
echo "<script>document.fsearch.sfl.value = '$sfl';</script>";
?>
<form id="fsearch" name="fsearch" method="get">
<fieldset>
<legend>인기검색어 검색</legend>
<span>
<?=$listall?>
건수 : <?=number_format($total_count)?>개
</span>
<select name="sfl" title="검색대상">
<option value="pp_word"<?=get_selected($_GET['sfl'], "pp_word");?>>검색어</option>
<option value="pp_date"<?=get_selected($_GET['sfl'], "pp_date");?>>등록일</option>
</select>
<input type="text" name="stx" value="<?=$stx?>" title="검색어(필수)" required class="required frm_input">
<input type="submit" value="검색" class="btn_submit">
</fieldset>
</form>
<section class="cbox">
<h2>인기검색어 목록</h2>
<form name="fpopularlist" id="fpopularlist" method="post">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="token" value="<?=$token?>">
<table class="tbl_pop_list">
<thead>
<tr>
<th scope="col"><input type="checkbox" name="chkall" value="1" id="chkall" title="현재 페이지 인기검색어 전체선택" onclick="check_all(this.form)"></th>
<th scope="col"><?=subject_sort_link('pp_word')?>검색어</a></th>
<th scope="col">등록일</th>
<th scope="col">등록IP</th>
</tr>
</thead>
<tbody>
<?
for ($i=0; $row=sql_fetch_array($result); $i++) {
$word = get_text($row['pp_word']);
?>
<tr>
<td class="td_chk">
<input type="checkbox" name="chk[]" value="<?=$row['pp_id']?>" id="chk_<?=$i?>" title="<?=$word?> 선택">
</td>
<td>&nbsp; <a href="<?=$_SERVER['PHP_SELF']?>?sfl=pp_word&amp;stx=<?=$word?>"><?=$word?></a></td>
<td><?=$row['pp_date']?></td>
<td><?=$row['pp_ip']?></td>
</tr>
<?
}
if ($i == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table>
<?if ($is_admin == 'super'){ ?>
<div class="btn_list">
<button>선택삭제</button>
</div>
<?}?>
</form>
</section>
<?=get_paging(G4_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['PHP_SELF']}?$qstr&amp;page=");?>
<script>
$(function() {
$('#fpopularlist').submit(function() {
if(confirm("한번 삭제한 자료는 복구할 방법이 없습니다.\n\n정말 삭제하시겠습니까?")) {
if (!is_checked("chk[]")) {
alert("선택삭제 하실 항목을 하나 이상 선택하세요.");
return false;
}
return true;
} else {
return false;
}
});
});
</script>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,178 +1,103 @@
<?
$sub_menu = "300400";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
if (empty($fr_date)) $fr_date = $g4[time_ymd];
if (empty($to_date)) $to_date = $g4[time_ymd];
if (empty($fr_date)) $fr_date = G4_TIME_YMD;
if (empty($to_date)) $to_date = G4_TIME_YMD;
$qstr = "fr_date=$fr_date&to_date=$to_date";
$qstr = "fr_date={$fr_date}{&amp;to_date}={$to_date}";
$sql_common = " from $g4[popular_table] a ";
$sql_search = " where trim(pp_word) <> '' and pp_date between '$fr_date' and '$to_date' ";
$sql_common = " from {$g4['popular_table']} a ";
$sql_search = " where trim(pp_word) <> '' and pp_date between '{$fr_date}' and '{$to_date}' ";
$sql_group = " group by pp_word ";
$sql_order = " order by cnt desc ";
$sql = " select pp_word
$sql_common
$sql_search
$sql_group ";
$sql = " select pp_word {$sql_common} {$sql_search} {$sql_group} ";
$result = sql_query($sql);
$total_count = mysql_num_rows($result);
$rows = $config[cf_page_rows];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page == "") { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
if ($page == '') { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select pp_word, count(*) as cnt
$sql_common
$sql_search
$sql_group
$sql_order
limit $from_record, $rows ";
$sql = " select pp_word, count(*) as cnt {$sql_common} {$sql_search} {$sql_group} {$sql_order} limit {$from_record}, {$rows} ";
$result = sql_query($sql);
$listall = "<a href='$_SERVER[PHP_SELF]'>처음</a>";
$listall = '';
if (!empty($_GET['fr_date']) || !empty($_GET['to_date']))
$listall = '<a href="'.$_SERVER['PHP_SELF'].'">전체목록</a>';
$g4[title] = "인기검색어순위";
include_once("./admin.head.php");
$g4['title'] = '인기검색어순위';
include_once('./admin.head.php');
$colspan = 3;
?>
<?
//==============================================================================
// jquery date picker
//------------------------------------------------------------------------------
// 참고) ie 에서는 년, 월 select box 를 두번씩 클릭해야 하는 오류가 있습니다.
//------------------------------------------------------------------------------
// jquery-ui.css 의 테마를 변경해서 사용할 수 있습니다.
// base, black-tie, blitzer, cupertino, dark-hive, dot-luv, eggplant, excite-bike, flick, hot-sneaks, humanity, le-frog, mint-choc, overcast, pepper-grinder, redmond, smoothness, south-street, start, sunny, swanky-purse, trontastic, ui-darkness, ui-lightness, vader
// 아래 css 는 date picker 의 화면을 맞추는 코드입니다.
?>
<link type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/themes/base/jquery-ui.css" rel="stylesheet" />
<style type="text/css">
<!--
.ui-datepicker { font:12px dotum; }
.ui-datepicker select.ui-datepicker-month,
.ui-datepicker select.ui-datepicker-year { width: 70px;}
.ui-datepicker-trigger { margin:0 0 -5px 2px; }
-->
</style>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.4/jquery-ui.min.js"></script>
<script type="text/javascript">
/* Korean initialisation for the jQuery calendar extension. */
/* Written by DaeKwon Kang (ncrash.dk@gmail.com). */
jQuery(function($){
$.datepicker.regional['ko'] = {
closeText: '닫기',
prevText: '이전달',
nextText: '다음달',
currentText: '오늘',
monthNames: ['1월(JAN)','2월(FEB)','3월(MAR)','4월(APR)','5월(MAY)','6월(JUN)',
'7월(JUL)','8월(AUG)','9월(SEP)','10월(OCT)','11월(NOV)','12월(DEC)'],
monthNamesShort: ['1월','2월','3월','4월','5월','6월',
'7월','8월','9월','10월','11월','12월'],
dayNames: ['일','월','화','수','목','금','토'],
dayNamesShort: ['일','월','화','수','목','금','토'],
dayNamesMin: ['일','월','화','수','목','금','토'],
weekHeader: 'Wk',
dateFormat: 'yy-mm-dd',
firstDay: 0,
isRTL: false,
showMonthAfterYear: true,
yearSuffix: ''};
$.datepicker.setDefaults($.datepicker.regional['ko']);
$('#fr_date, #to_date').datepicker({
showOn: 'button',
buttonImage: '<?=$g4[path]?>/img/calendar.gif',
buttonImageOnly: true,
buttonText: "달력",
changeMonth: true,
changeYear: true,
showButtonPanel: true,
yearRange: 'c-99:c+99',
maxDate: '+0d'
});
});
</script>
<?
//==============================================================================
?>
<table width=100% cellpadding=3 cellspacing=1>
<form name=fsearch method=get>
<tr>
<td width=50% align=left><?=$listall?> (건수 : <?=number_format($total_count)?>개)</td>
<td width=50% align=right>
기간 :
<input type='text' id='fr_date' name='fr_date' size=11 maxlength=10 value='<?=$fr_date?>' class=ed>
-
<input type='text' id='to_date' name='to_date' size=11 maxlength=10 value='<?=$to_date?>' class=ed>
<input type=image src='<?=$g4[admin_path]?>/img/btn_search.gif' align=absmiddle></td>
</tr>
</form>
</table>
<form name=fpopularrank method=post>
<input type=hidden name=sst value="<?=$sst?>">
<input type=hidden name=sod value="<?=$sod?>">
<input type=hidden name=sfl value="<?=$sfl?>">
<input type=hidden name=stx value="<?=$stx?>">
<input type=hidden name=page value="<?=$page?>">
<input type=hidden name=token value="<?=$token?>">
<table width=100% cellpadding=0 cellspacing=1>
<colgroup width=>
<colgroup width=150>
<colgroup width=150>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>검색어</td>
<td>검색회수</td>
<td>순위</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
for ($i=0; $row=sql_fetch_array($result); $i++) {
$word = get_text($row[pp_word]);
$rank = ($i + 1 + ($rows * ($page - 1)));
$list = $i % 2;
echo "<tr class='list$list col1 ht center'>";
echo "<td align='left'>&nbsp; $word</td>";
echo "<td>$row[cnt]</td>";
echo "<td>$rank</td>";
echo "</tr>";
echo "<tr class='list$list col1 ht center'>";
echo "</tr>\n";
}
if ($i == 0)
echo "<tr><td colspan='$colspan' align=center height=100 bgcolor=#ffffff>자료가 없습니다.</td></tr>";
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
$pagelist = get_paging($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$qstr&page=");
echo "<table width=100% cellpadding=3 cellspacing=1>";
echo "<tr><td width=50%>";
if ($is_admin == "super")
echo "<input type=button class='btn1' value='선택삭제' onclick=\"btn_check(this.form, 'delete')\">";
echo "</td>";
echo "<td width=50% align=right>$pagelist</td></tr></table>\n";
if ($stx)
echo "<script>document.fsearch.sfl.value = '$sfl';</script>";
?>
<form name="fsearch" id="fsearch" method="get">
<fieldset>
<legend>인기검색어 검색</legend>
<span>
<?=$listall?>
건수 <?=number_format($total_count)?>개
</span>
<label for="fr_date">기간설정</label>
<input type="text" name="fr_date" value="<?=$fr_date?>" id="fr_date" title="구간시작일" class="frm_input" maxlength="10"> 부터
<input type="text" name="to_date" value="<?=$to_date?>" id="to_date" title="구간종료일" class="frm_input" maxlength="10"> 까지
<input type="submit" class="btn_submit" value="검색">
</fieldset>
</form>
<section class="cbox">
<h2>인기검색어 순위 및 내역</h2>
<form name="fpopularrank" id="fpopularrank" method="post">
<input type="hidden" name="sst" value="<?=$sst?>">
<input type="hidden" name="sod" value="<?=$sod?>">
<input type="hidden" name="sfl" value="<?=$sfl?>">
<input type="hidden" name="stx" value="<?=$stx?>">
<input type="hidden" name="page" value="<?=$page?>">
<input type="hidden" name="token" value="<?=$token?>">
<table class="tbl_pop_list">
<thead>
<tr>
<th scope="col">순위</th>
<th scope="col">검색어</th>
<th scope="col">검색회수</th>
</tr>
</thead>
<tbody>
<?
for ($i=0; $row=sql_fetch_array($result); $i++) {
$word = get_text($row['pp_word']);
$rank = ($i + 1 + ($rows * ($page - 1)));
?>
<tr>
<td class="td_num"><?=$rank?></td>
<td><?=$word?></td>
<td class="td_bignum"><?=$row['cnt']?></td>
</tr>
<?
}
if ($i == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table>
</form>
</section>
<?
include_once("./admin.tail.php");
echo get_paging(G4_IS_MOBILE ? $config['cf_mobile_pages'] : $config['cf_write_pages'], $page, $total_page, "{$_SERVER['PHP_SELF']}?$qstr&amp;page=");
?>
<?
include_once('./admin.tail.php');
?>

View File

@ -1,51 +1,66 @@
<?
$sub_menu = "100300";
include_once("./_common.php");
$sub_menu = '100300';
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
if (!$config[cf_email_use])
alert("환경설정에서 \'메일발송 사용\'에 체크하셔야 메일을 발송할 수 있습니다.");
if (!$config['cf_email_use'])
alert('환경설정에서 \'메일발송 사용\'에 체크하셔야 메일을 발송할 수 있습니다.');
include_once("$g4[path]/lib/mailer.lib.php");
include_once(G4_LIB_PATH.'/mailer.lib.php');
$g4[title] = "메일 테스트";
include_once("./admin.head.php");
$g4['title'] = '메일 테스트';
include_once('./admin.head.php');
if ($mail) {
check_token();
if (isset($_POST['mail'])) {
$from_name = '메일검사';
$admin = get_admin('super', 'mb_email');
$from_email = $admin['mb_email'];
$from_name = "메일검사";
$from_email = "mail@mail";
$email = explode(",", $mail);
$email = explode(',', $mail);
for ($i=0; $i<count($email); $i++)
mailer($from_name, $from_email, trim($email[$i]), "[메일검사] 제목", "<span style='font-size:9pt;'>[메일검사] 내용<p>이 내용이 제대로 보인다면 보내는 메일 서버에는 이상이 없는것입니다.<p>".date("Y-m-d H:i:s")."<p>이 메일 주소로는 회신되지 않습니다.</span>", 1);
mailer($from_name, $from_email, trim($email[$i]), '[메일검사] 제목', '<span style="font-size:9pt;">[메일검사] 내용<p>이 내용이 제대로 보인다면 보내는 메일 서버에는 이상이 없는것입니다.<p>'.date("Y-m-d H:i:s").'<p>이 메일 주소로는 회신되지 않습니다.</span>', 1);
echo <<<HEREDOC
<SCRIPT type="text/javascript">
alert("{$mail} (으)로 메일을 발송 하였습니다.\\n\\n해당 주소로 메일이 왔는지 확인하여 주십시오.\\n\\n메일이 오지 않는다면 프로그램의 오류가 아닌 메일 서버(sendmail)의 오류일 가능성이 있습니다.\\n\\n이런 경우에는 웹 서버관리자에게 문의하여 주십시오.");
</SCRIPT>
HEREDOC;
echo '<section class=\'cbox\'>';
echo '<h2>결과메세지</h2>';
echo '<p>';
echo '다음 '.count($email).'개의 메일 주소로 테스트 메일 발송이 완료되었습니다.';
echo '</p>';
echo '<ul>';
for ($i=0;$i<count($email);$i++) {
echo '<li>'.$email[$i].'</li>';
}
echo '</ul>';
echo '<p>';
echo '해당 주소로 테스트 메일이 도착했는지 확인해 주십시오.<br>';
echo '만약, 테스트 메일이 오지 않는다면 더 다양한 계정의 메일 주소로 메일을 보내 보십시오.<br>';
echo '그래도 메일이 하나도 도착하지 않는다면 메일 서버(sendmail server)의 오류일 가능성이 높으니, 웹 서버관리자에게 문의하여 주십시오.<br>';
echo '</p>';
echo '</section>';
}
$token = get_token();
?>
<img src='<?=$g4[admin_path]?>/img/icon_title.gif'> <span class=title><?=$g4[title]?></span>
<p>
<form name=fsendmailtest method=post>
<input type=hidden name=token value='<?=$token?>'>
<p>고객님들께서 메일이 오지 않는다고 하면 사용하는 메뉴입니다.
<p>입력한 메일주소로 테스트 메일을 발송합니다.
<p>만약 [메일검사] 라는 내용으로 메일이 도착하지 않는다면 보내는 메일서버와 받는 메일 서버중 문제가 발생했을 가능성이 있습니다.
<p>메일을 보냈는데도 도착하지 않는다면 다른 여러곳으로도 메일을 발송하여 주십시오.
<p>여러곳으로 메일을 발송하시려면 , 로 메일을 구분하십시오.
<p>받는 메일주소 : <input type=text class=ed name=mail size=40 required itemname="E-mail" value="<?=$member[mb_email]?>">
<input type=submit value=" 발 송 " class=btn1>
</form>
<section>
<h2>테스트 메일 발송</h2>
<p>
메일서버가 정상적으로 동작 중인지 확인할 수 있습니다.<br>
아래 입력칸에 테스트 메일을 발송하실 메일 주소를 입력하시면, [메일검사] 라는 제목으로 테스트 메일을 발송합니다.<br>
여러 곳으로 테스트 메일을 발송하시려면 , 로 메일을 구분하십시오.
</p>
<form name="fsendmailtest" method="post">
<fieldset id="fsendmailtest">
<legend>테스트메일 발송</legend>
<label for="mail">받는 메일주소<strong class="sound_only">필수</strong></label>
<input type="text" name="mail" value="<?=$member['mb_email']?>" id="mail" required class="required frm_input" size="80">
<input type="submit" value="발송" class="btn_submit">
</fieldset>
</form>
<p>
만약 [메일검사] 라는 내용으로 테스트 메일이 도착하지 않는다면 보내는 메일서버 혹은 받는 메일서버 중 문제가 발생했을 가능성이 있습니다.<br>
따라서 보다 정확한 테스트를 원하신다면 여러 곳으로 테스트 메일을 발송하시기 바랍니다.<br>
</p>
</section>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -0,0 +1,62 @@
<?
$sub_menu = "100800";
include_once("./_common.php");
if ($is_admin != "super")
alert("최고관리자만 접근 가능합니다.", G4_URL);
$g4['title'] = "세션파일 일괄삭제";
include_once("./admin.head.php");
?>
<div id="session_del">
<p>
완료 메세지가 나오기 전에 프로그램의 실행을 중지하지 마십시오.
</p>
<?
flush();
$list_tag_st = "";
$list_tag_end = "";
if (!$dir=@opendir(G4_DATA_PATH.'/session')) {
echo "<p>세션 디렉토리를 열지못했습니다.</p>";
} else {
$list_tag_st = "<ul>\n<li>완료됨</li>\n";
$list_tag_end = "</ul>\n";
}
$cnt=0;
echo $list_tag_st;
while($file=readdir($dir)) {
if (!strstr($file,'sess_')) continue;
if (strpos($file,'sess_')!=0) continue;
$session_file = G4_DATA_PATH.'/session/'.$file;
if (!$atime=@fileatime($session_file)) {
continue;
}
if (time() > $atime + (3600 * 6)) { // 지난시간을 초로 계산해서 적어주시면 됩니다. default : 6시간전
$cnt++;
$return = unlink($session_file);
//echo "<script>document.getElementById('ct').innerHTML += '{$session_file}<br/>';</script>\n";
echo "<li>{$session_file}</li>\n";
flush();
if ($cnt%10==0)
//echo "<script>document.getElementById('ct').innerHTML = '';</script>\n";
echo "\n";
}
}
echo $list_tag_end;
//echo "<script>document.getElementById('ct').innerHTML += '세션데이터 {$cnt}건 삭제 완료.<br><br>프로그램의 실행을 끝마치셔도 좋습니다.';</script>\n";
echo "<p><span>세션데이터 {$cnt}건 삭제 완료.</span><br>프로그램의 실행을 끝마치셔도 좋습니다.</p>\n";
?>
</div>
<?php
include_once("./admin.tail.php");
?>

View File

@ -1,81 +1,42 @@
## 마이에스큐엘 dump 10.13 Distrib 5.1.66, for redhat-linux-gnu (i386)
##
## Host: 1.226.84.20 Database: yc4kcp
## ######################################################
## Server version 5.0.96-log
##
## Not dumping tablespaces as no INFORMATION_SCHEMA.FILES table on this server
##
##
## Table structure for table `__TABLE_NAME__`
##
CREATE TABLE `__TABLE_NAME__` (
`wr_id` int(11) NOT NULL auto_increment,
`wr_num` int(11) NOT NULL default '0',
`wr_reply` varchar(10) NOT NULL,
`wr_parent` int(11) NOT NULL default '0',
`wr_is_comment` tinyint(4) NOT NULL default '0',
`wr_comment` int(11) NOT NULL default '0',
`wr_comment_reply` varchar(5) NOT NULL,
`ca_name` varchar(255) NOT NULL,
`wr_option` set('html1','html2','secret','mail') NOT NULL,
`wr_subject` varchar(255) NOT NULL,
`wr_content` text NOT NULL,
`wr_link1` text NOT NULL,
`wr_link2` text NOT NULL,
`wr_link1_hit` int(11) NOT NULL default '0',
`wr_link2_hit` int(11) NOT NULL default '0',
`wr_trackback` varchar(255) NOT NULL,
`wr_hit` int(11) NOT NULL default '0',
`wr_good` int(11) NOT NULL default '0',
`wr_nogood` int(11) NOT NULL default '0',
`mb_id` varchar(255) NOT NULL,
`wr_password` varchar(255) NOT NULL,
`wr_name` varchar(255) NOT NULL,
`wr_email` varchar(255) NOT NULL,
`wr_homepage` varchar(255) NOT NULL,
`wr_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
`wr_last` varchar(19) NOT NULL,
`wr_ip` varchar(255) NOT NULL,
`wr_1` varchar(255) NOT NULL,
`wr_2` varchar(255) NOT NULL,
`wr_3` varchar(255) NOT NULL,
`wr_4` varchar(255) NOT NULL,
`wr_5` varchar(255) NOT NULL,
`wr_6` varchar(255) NOT NULL,
`wr_7` varchar(255) NOT NULL,
`wr_8` varchar(255) NOT NULL,
`wr_9` varchar(255) NOT NULL,
`wr_10` varchar(255) NOT NULL,
PRIMARY KEY (`wr_id`),
KEY `wr_num_reply_parent` (`wr_num`,`wr_reply`,`wr_parent`),
KEY `wr_is_comment` (`wr_is_comment`,`wr_id`)
) DEFAULT CHARSET=utf8;
## Dump completed on 2013-02-26 16:04:46
CREATE TABLE `__TABLE_NAME__` (
`wr_id` int(11) NOT NULL auto_increment,
`wr_num` int(11) NOT NULL default '0',
`wr_reply` varchar(10) NOT NULL default '',
`wr_parent` int(11) NOT NULL default '0',
`wr_is_comment` tinyint(4) NOT NULL default '0',
`wr_comment` int(11) NOT NULL default '0',
`wr_comment_reply` varchar(5) NOT NULL default '',
`ca_name` varchar(255) NOT NULL default '',
`wr_option` set('html1','html2','secret','mail') NOT NULL default '',
`wr_subject` varchar(255) NOT NULL default '',
`wr_content` text NOT NULL,
`wr_link1` text NOT NULL,
`wr_link2` text NOT NULL,
`wr_link1_hit` int(11) NOT NULL default '0',
`wr_link2_hit` int(11) NOT NULL default '0',
`wr_trackback` varchar(255) NOT NULL default '',
`wr_hit` int(11) NOT NULL default '0',
`wr_good` int(11) NOT NULL default '0',
`wr_nogood` int(11) NOT NULL default '0',
`mb_id` varchar(255) NOT NULL default '',
`wr_password` varchar(255) NOT NULL default '',
`wr_name` varchar(255) NOT NULL default '',
`wr_email` varchar(255) NOT NULL default '',
`wr_homepage` varchar(255) NOT NULL default '',
`wr_datetime` datetime NOT NULL default '0000-00-00 00:00:00',
`wr_last` varchar(19) NOT NULL default '',
`wr_ip` varchar(255) NOT NULL default '',
`wr_1` varchar(255) NOT NULL default '',
`wr_2` varchar(255) NOT NULL default '',
`wr_3` varchar(255) NOT NULL default '',
`wr_4` varchar(255) NOT NULL default '',
`wr_5` varchar(255) NOT NULL default '',
`wr_6` varchar(255) NOT NULL default '',
`wr_7` varchar(255) NOT NULL default '',
`wr_8` varchar(255) NOT NULL default '',
`wr_9` varchar(255) NOT NULL default '',
`wr_10` varchar(255) NOT NULL default '',
PRIMARY KEY (`wr_id`),
KEY `wr_num_reply_parent` (`wr_num`,`wr_reply`,`wr_parent`),
KEY `wr_is_comment` (`wr_is_comment`,`wr_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

View File

@ -1,39 +1,37 @@
<?
if (!defined("_GNUBOARD_")) exit;
if (!defined('_GNUBOARD_')) exit;
include_once("$g4[path]/lib/visit.lib.php");
include_once(G4_LIB_PATH.'/visit.lib.php');
if (empty($fr_date)) $fr_date = $g4[time_ymd];
if (empty($to_date)) $to_date = $g4[time_ymd];
if (empty($fr_date)) $fr_date = G4_TIME_YMD;
if (empty($to_date)) $to_date = G4_TIME_YMD;
$qstr = "fr_date=$fr_date&to_date=$to_date";
$qstr = "fr_date=".$fr_date."&amp;to_date=".$to_date;
?>
<table width=100% cellpadding=3 cellspacing=1>
<form name=fvisit method=get>
<tr>
<td>
기간 :
<input type='text' name='fr_date' size=11 maxlength=10 value='<?=$fr_date?>' class=ed>
-
<input type='text' name='to_date' size=11 maxlength=10 value='<?=$to_date?>' class=ed>
&nbsp;
<input type=button class=btn1 value=' 접속자 ' onclick="fvisit_submit('visit_list.php');">
<input type=button class=btn1 value=' 도메인 ' onclick="fvisit_submit('visit_domain.php');">
<input type=button class=btn1 value=' 브라우저 ' onclick="fvisit_submit('visit_browser.php');">
<input type=button class=btn1 value=' OS ' onclick="fvisit_submit('visit_os.php');">
<input type=button class=btn1 value=' 시간 ' onclick="fvisit_submit('visit_hour.php');">
<input type=button class=btn1 value=' 요일 ' onclick="fvisit_submit('visit_week.php');">
<input type=button class=btn1 value=' 일 ' onclick="fvisit_submit('visit_date.php');">
<input type=button class=btn1 value=' 월 ' onclick="fvisit_submit('visit_month.php');">
<input type=button class=btn1 value=' 년 ' onclick="fvisit_submit('visit_year.php');">
</td>
</tr>
</form>
</table>
<ul class="anchor">
<li><a href="./visit_list.php">접속자</a></li>
<li><a href="./visit_domain.php">도메인</a></li>
<li><a href="./visit_browser.php">브라우저</a></li>
<li><a href="./visit_os.php">운영체제</a></li>
<li><a href="./visit_hour.php">시간</a></li>
<li><a href="./visit_week.php">요일</a></li>
<li><a href="./visit_date.php">일</a></li>
<li><a href="./visit_month.php">월</a></li>
<li><a href="./visit_year.php">년</a></li>
</ul>
<script type='text/javascript'>
function fvisit_submit(act)
<form name="fvisit" id="fvisit" method="get">
<fieldset>
<legend>기간별 접속자집계 검색</legend>
<input type="text" name="fr_date" value="<?=$fr_date?>" id="fr_date" class="frm_input" size="11" maxlength="10"> 부터
<input type="text" name="to_date" value="<?=$to_date?>" id="to_date" class="frm_input" size="11" maxlength="10"> 까지
<input type="submit" value="검색" class="btn_submit">
</fieldset>
</form>
<script>
function fvisit_submit(act)
{
var f = document.fvisit;
f.action = act;

View File

@ -1,39 +1,22 @@
<?
$sub_menu = "200800";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$g4[title] = "브라우저별 접속자현황";
include_once("./admin.head.php");
include_once("./visit.sub.php");
$g4['title'] = '브라우저별 접속자집계';
include_once('./admin.head.php');
include_once('./visit.sub.php');
$colspan = 5;
?>
<table width=100% cellpadding=0 cellspacing=1 border=0>
<colgroup width=100>
<colgroup width=200>
<colgroup width=100>
<colgroup width=100>
<colgroup width=''>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>순위</td>
<td>브라우저</td>
<td>방문자수</td>
<td>비율(%)</td>
<td>그래프</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
$max = 0;
$sum_count = 0;
$sql = " select * from $g4[visit_table]
where vi_date between '$fr_date' and '$to_date' ";
$sql = " select * from {$g4['visit_table']}
where vi_date between '{$fr_date}' and '{$to_date}' ";
$result = sql_query($sql);
while ($row=sql_fetch_array($result)) {
$s = get_brow($row[vi_agent]);
$s = get_brow($row['vi_agent']);
$arr[$s]++;
@ -41,54 +24,72 @@ while ($row=sql_fetch_array($result)) {
$sum_count++;
}
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
arsort($arr);
foreach ($arr as $key=>$value) {
$count = $arr[$key];
if ($save_count != $count) {
$i++;
$no = $i;
$save_count = $count;
} else {
$no = "";
}
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
$bar = (int)($count / $max * 100);
$graph = "<img src='{$g4[admin_path]}/img/graph.gif' width='$bar%' height='18'>";
$list = ($k++%2);
echo "
<tr class='list$list ht center'>
<td>$no</td>
<td>$key</td>
<td>$count</td>
<td>$s_rate</td>
<td align=left>$graph</td>
</tr>";
}
echo "
<tr><td colspan='$colspan' class='line2'></td></tr>
<tr class='bgcol2 bold col1 ht center'>
<td colspan=2>합계</td>
<td>$sum_count</td>
<td colspan=2>&nbsp;</td>
</tr>";
} else {
echo "<tr><td colspan='$colspan' height=100 align=center>자료가 없습니다.</td></tr>";
}
?>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
</table>
<section class="cbox">
<h2>브라우저별 접속자 수</h2>
<table>
<thead>
<tr>
<th scope="col">순위</th>
<th scope="col">브라우저</th>
<th scope="col">그래프</th>
<th scope="col">접속자수</th>
<th scope="col">비율(%)</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="3">합계</td>
<td><strong><?=$sum_count?></strong></td>
<td>100%</td>
</tr>
</tfoot>
<tbody>
<?
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
arsort($arr);
foreach ($arr as $key=>$value) {
$count = $arr[$key];
if ($save_count != $count) {
$i++;
$no = $i;
$save_count = $count;
} else {
$no = "";
}
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
?>
<tr>
<td class="td_num"><?=$no?></td>
<td class="td_category"><?=$key?></td>
<td>
<div class="visit_bar">
<span style="width:<?=$s_rate?>%"></span>
</div>
</td>
<td class="td_bignum"><?=$count?></td>
<td class="td_num"><?=$s_rate?></td>
</tr>
<?
}
} else {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</tbody>
</table>
</section>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,83 +1,85 @@
<?
$sub_menu = "200800";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$g4[title] = "일별 접속자현황";
include_once("./admin.head.php");
include_once("./visit.sub.php");
$g4['title'] = '일별 접속자집계';
include_once('./admin.head.php');
include_once('./visit.sub.php');
$colspan = 4;
?>
<table width=100% cellpadding=0 cellspacing=1 border=0>
<colgroup width=100>
<colgroup width=100>
<colgroup width=100>
<colgroup width=''>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>년-월-일</td>
<td>방문자수</td>
<td>비율(%)</td>
<td>그래프</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
$max = 0;
$sum_count = 0;
$sql = " select vs_date, vs_count as cnt
from $g4[visit_sum_table]
where vs_date between '$fr_date' and '$to_date'
order by vs_date desc ";
$sql = " select vs_date, vs_count as cnt
from {$g4['visit_sum_table']}
where vs_date between '{$fr_date}' and '{$to_date}'
order by vs_date desc ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$arr[$row[vs_date]] = $row[cnt];
$arr[$row['vs_date']] = $row['cnt'];
if ($row[cnt] > $max) $max = $row[cnt];
if ($row['cnt'] > $max) $max = $row['cnt'];
$sum_count += $row[cnt];
}
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
foreach ($arr as $key=>$value) {
$count = $value;
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
$bar = (int)($count / $max * 100);
$graph = "<img src='{$g4[admin_path]}/img/graph.gif' width='$bar%' height='18'>";
$list = ($k++%2);
echo "
<tr class='list$list ht center'>
<td><a href='./visit_list.php?fr_date=$key&to_date=$key' class=tt>$key</a></td>
<td>".number_format($value)."</td>
<td>$s_rate</td>
<td align=left>$graph</td>
</tr>";
}
echo "
<tr><td colspan='$colspan' class='line2'></td></tr>
<tr class='bgcol2 bold col1 ht center'>
<td>합계</td>
<td>".number_format($sum_count)."</td>
<td colspan=2>&nbsp;</td>
</tr>";
} else {
echo "<tr><td colspan='$colspan' height=100 align=center>자료가 없습니다.</td></tr>";
$sum_count += $row['cnt'];
}
?>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
</table>
<section class="cbox">
<h2>일별 접속자 수</h2>
<table>
<thead>
<tr>
<th scope="col">년-월-일</th>
<th scope="col">그래프</th>
<th scope="col">접속자수</th>
<th scope="col">비율(%)</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="2">합계</td>
<td><strong><?=number_format($sum_count)?></strong></td>
<td>100%</td>
</tr>
</tfoot>
<tbody>
<?
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
foreach ($arr as $key=>$value) {
$count = $value;
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
?>
<tr>
<td class="td_category"><a href="./visit_list.php?fr_date=<?=$key?>&amp;to_date=<?=$key?>"><?=$key?></a></td>
<td>
<div class="visit_bar">
<span style="width:<?=$s_rate?>%"></span>
</div>
</td>
<td class="td_bignum"><?=number_format($value)?></td>
<td class="td_num"><?=$s_rate?></td>
</tr>
<?
}
} else {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</tbody>
</table>
</section>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,39 +1,22 @@
<?
$sub_menu = "200800";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$g4[title] = "도메인별 접속자현황";
include_once("./admin.head.php");
include_once("./visit.sub.php");
$g4['title'] = '도메인별 접속자집계';
include_once('./admin.head.php');
include_once('./visit.sub.php');
$colspan = 5;
?>
<table width=100% cellpadding=0 cellspacing=1 border=0>
<colgroup width=100>
<colgroup width=200>
<colgroup width=100>
<colgroup width=100>
<colgroup width=''>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>순위</td>
<td>접속 도메인</td>
<td>방문자수</td>
<td>비율(%)</td>
<td>그래프</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
$max = 0;
$sum_count = 0;
$sql = " select * from $g4[visit_table]
where vi_date between '$fr_date' and '$to_date' ";
$sql = " select * from {$g4['visit_table']}
where vi_date between '{$fr_date}' and '{$to_date}' ";
$result = sql_query($sql);
while ($row=sql_fetch_array($result)) {
$str = $row[vi_referer];
$str = $row['vi_referer'];
preg_match("/^http[s]*:\/\/([\.\-\_0-9a-zA-Z]*)\//", $str, $match);
$s = $match[1];
$s = preg_replace("/^(www\.|search\.|dirsearch\.|dir\.search\.|dir\.|kr\.search\.|myhome\.)(.*)/", "\\2", $s);
@ -43,61 +26,79 @@ while ($row=sql_fetch_array($result)) {
$sum_count++;
}
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
arsort($arr);
foreach ($arr as $key=>$value) {
$count = $arr[$key];
if ($save_count != $count) {
$i++;
$no = $i;
$save_count = $count;
} else {
$no = "";
}
if (!$key) {
$link = "";
$key = "직접";
} else {
$link = "<a href='./visit_list.php?$qstr&domain=$key' title='상세보기'>";
}
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
$bar = (int)($count / $max * 100);
$graph = "<img src='{$g4[admin_path]}/img/graph.gif' width='$bar%' height='18'>";
$list = ($k++%2);
echo "
<tr class='list$list ht center'>
<td>$no</td>
<td align=left>$link$key</a></td>
<td>$count</td>
<td>$s_rate</td>
<td align=left>$graph</td>
</tr>";
}
echo "
<tr><td colspan='$colspan' class='line2'></td></tr>
<tr class='bgcol2 bold col1 ht center'>
<td colspan=2>합계</td>
<td>$sum_count</td>
<td colspan=2>&nbsp;</td>
</tr>";
} else {
echo "<tr><td colspan='$colspan' height=100 align=center>자료가 없습니다.</td></tr>";
}
?>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
</table>
<section class="cbox">
<h2>도메인별 접속자 수</h2>
<table>
<thead>
<tr>
<th scope="col">순위</th>
<th scope="col">접속 도메인</th>
<th scope="col">그래프</th>
<th scope="col">접속자수</th>
<th scope="col">비율(%)</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="3">합계</td>
<td><strong><?=$sum_count?></strong></td>
<td>100%</td>
</tr>
</tfoot>
<tbody>
<?
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
arsort($arr);
foreach ($arr as $key=>$value) {
$count = $arr[$key];
if ($save_count != $count) {
$i++;
$no = $i;
$save_count = $count;
} else {
$no = '';
}
if (!$key) {
$link = '';
$link2 = '';
$key = '직접';
} else {
$link = '<a href="./visit_list.php?$qstr&amp;domain='.$key.'">';
$link2 = '</a>';
}
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
?>
<tr>
<td class="td_num"><?=$no?></td>
<td class="td_category"><?=$link?><?=$key?><?=$link2?></td>
<td>
<div class="visit_bar">
<span style="width:<?=$s_rate?>%"></span>
</div>
</td>
<td class="td_bignum"><?=$count?></td>
<td class="td_num"><?=$s_rate?></td>
</tr>
<?
}
} else {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</tbody>
</table>
</section>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,82 +1,82 @@
<?
$sub_menu = "200800";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$g4[title] = "시간별 접속자현황";
include_once("./admin.head.php");
include_once("./visit.sub.php");
$g4['title'] = '시간별 접속자집계';
include_once('./admin.head.php');
include_once('./visit.sub.php');
$colspan = 4;
?>
<table width=100% cellpadding=0 cellspacing=1 border=0>
<colgroup width=100>
<colgroup width=100>
<colgroup width=100>
<colgroup width=''>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>시간</td>
<td>방문자수</td>
<td>비율(%)</td>
<td>그래프</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
$max = 0;
$sum_count = 0;
$sql = " select SUBSTRING(vi_time,1,2) as vi_hour, count(vi_id) as cnt
from $g4[visit_table]
where vi_date between '$fr_date' and '$to_date'
group by vi_hour
order by vi_hour ";
$sql = " select SUBSTRING(vi_time,1,2) as vi_hour, count(vi_id) as cnt
from {$g4['visit_table']}
where vi_date between '{$fr_date}' and '{$to_date}'
group by vi_hour
order by vi_hour ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$arr[$row[vi_hour]] = $row[cnt];
$arr[$row['vi_hour']] = $row['cnt'];
if ($row[cnt] > $max) $max = $row[cnt];
if ($row['cnt'] > $max) $max = $row['cnt'];
$sum_count += $row[cnt];
}
$k = 0;
if ($i) {
for ($i=0; $i<24; $i++) {
$hour = sprintf("%02d", $i);
$count = (int)$arr[$hour];
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
$bar = (int)($count / $max * 100);
$graph = "<img src='{$g4[admin_path]}/img/graph.gif' width='$bar%' height='18'>";
$list = ($k++%2);
echo "
<tr class='list$list ht center'>
<td>$hour</td>
<td>".number_format($count)."</td>
<td>$s_rate</td>
<td align=left>$graph</td>
</tr>";
}
echo "
<tr><td colspan='$colspan' class='line2'></td></tr>
<tr class='bgcol2 bold col1 ht center'>
<td>합계</td>
<td>".number_format($sum_count)."</td>
<td colspan=2>&nbsp;</td>
</tr>";
} else {
echo "<tr><td colspan='$colspan' height=100 align=center>자료가 없습니다.</td></tr>";
$sum_count += $row['cnt'];
}
?>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
</table><br><br>
<section class="cbox">
<h2>시간대별 접속자 수</h2>
<table>
<thead>
<tr>
<th scope="col">시간</th>
<th scope="col">그래프</th>
<th scope="col">접속자수</th>
<th scope="col">비율(%)</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="2">합계</td>
<td><strong><?=number_format($sum_count)?></strong></td>
<td>100%</td>
</tr>
</tfoot>
<tbody>
<?
$k = 0;
if ($i) {
for ($i=0; $i<24; $i++) {
$hour = sprintf("%02d", $i);
$count = (int)$arr[$hour];
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
?>
<tr>
<td class="td_category"><?=$hour?></td>
<td>
<div class="visit_bar">
<span style="width:<?=$s_rate?>%"></span>
</div>
</td>
<td class="td_bignum"><?=number_format($count)?></td>
<td class="td_num"><?=$s_rate?></td>
</tr>
<?
}
} else {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</tbody>
</table>
</section>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,115 +1,118 @@
<?
$sub_menu = "200800";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$g4[title] = "접속자현황";
include_once("./admin.head.php");
include_once("./visit.sub.php");
$g4['title'] = '접속자집계';
include_once('./admin.head.php');
include_once('./visit.sub.php');
$colspan = 5;
?>
<table width=100% cellpadding=0 cellspacing=1 border=0>
<colgroup width=100>
<colgroup width=350>
<colgroup width=100>
<colgroup width=100>
<colgroup width=''>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>IP</td>
<td>접속 경로</td>
<td>브라우저</td>
<td>OS</td>
<td>일시</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
//unset($br); // 브라우저
//unset($os); // OS
$sql_common = " from $g4[visit_table] ";
$sql_search = " where vi_date between '$fr_date' and '$to_date' ";
if ($domain) {
$sql_search .= " and vi_referer like '%$domain%' ";
}
$sql_common = " from {$g4['visit_table']} ";
$sql_search = " where vi_date between '{$fr_date}' and '{$to_date}' ";
if (isset($domain))
$sql_search .= " and vi_referer like '%{$domain}%' ";
$sql = " select count(*) as cnt
$sql_common
$sql_search ";
{$sql_common}
{$sql_search} ";
$row = sql_fetch($sql);
$total_count = $row[cnt];
$total_count = $row['cnt'];
$rows = $config[cf_page_rows];
$rows = $config['cf_page_rows'];
$total_page = ceil($total_count / $rows); // 전체 페이지 계산
if ($page == "") $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
if ($page == '') $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$sql = " select *
$sql_common
$sql_search
order by vi_id desc
limit $from_record, $rows ";
$sql = " select *
{$sql_common}
{$sql_search}
order by vi_id desc
limit {$from_record}, {$rows} ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$brow = get_brow($row[vi_agent]);
$os = get_os($row[vi_agent]);
$link = "";
$referer = "";
$title = "";
if ($row[vi_referer]) {
$referer = get_text(cut_str($row[vi_referer], 255, ""));
$referer = urldecode($referer);
if (strtolower($g4['charset']) == 'utf-8') {
if (!is_utf8($referer)) {
$referer = iconv('euc-kr', 'utf-8', $referer);
}
}
else {
if (is_utf8($referer)) {
$referer = iconv('utf-8', 'euc-kr', $referer);
}
}
$title = str_replace(array("<", ">"), array("&lt;", "&gt;"), $referer);
$link = "<a href='$row[vi_referer]' target=_blank title='$title '>";
}
if ($is_admin == 'super')
$ip = $row[vi_ip];
else
$ip = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", "\\1.♡.\\3.\\4", $row[vi_ip]);
if ($brow == '기타') { $brow = "<span title='$row[vi_agent]'>$brow</span>"; }
if ($os == '기타') { $os = "<span title='$row[vi_agent]'>$os</span>"; }
$list = ($i%2);
echo "
<tr class='list$list col1 ht center'>
<td>$ip</td>
<td align=left><nobr style='display:block; overflow:hidden; width:350;'>$link$title</a></nobr></td>
<td>$brow</td>
<td>$os</td>
<td>$row[vi_date] $row[vi_time]</td>
</tr>";
}
if ($i == 0)
echo "<tr><td colspan='$colspan' height=100 align=center>자료가 없습니다.</td></tr>";
echo "<tr><td colspan='$colspan' class='line2'></td></tr>";
echo "</table>";
$page = get_paging($config[cf_write_pages], $page, $total_page, "$_SERVER[PHP_SELF]?$qstr&domain=$domain&page=");
if ($page) {
echo "<table width=100% cellpadding=3 cellspacing=1><tr><td align=right>$page</td></tr></table>";
}
include_once("./admin.tail.php");
?>
<section class="cbox">
<h2>접속자 개요</h2>
<p>IP, 경로, 브라우저, 운영체제, 일시</p>
<table>
<thead>
<tr>
<th scope="col">IP</th>
<th scope="col">접속 경로</th>
<th scope="col">브라우저</th>
<th scope="col">운영체제</th>
<th scope="col">일시</th>
</tr>
</thead>
<tbody>
<?
for ($i=0; $row=sql_fetch_array($result); $i++) {
$brow = get_brow($row['vi_agent']);
$os = get_os($row['vi_agent']);
$link = '';
$link2 = '';
$referer = '';
$title = '';
if ($row['vi_referer']) {
$referer = get_text(cut_str($row['vi_referer'], 255, ''));
$referer = urldecode($referer);
if (strtolower($g4['charset']) == 'utf-8') {
if (!is_utf8($referer)) {
$referer = iconv('euc-kr', 'utf-8', $referer);
}
}
else {
if (is_utf8($referer)) {
$referer = iconv('utf-8', 'euc-kr', $referer);
}
}
$title = str_replace(array('<', '>', '&'), array("&lt;", "&gt;", "&amp;"), $referer);
$link = '<a href="'.$row['vi_referer'].'" target="_blank">';
$link = str_replace('&', "&amp;", $link);
$link2 = '</a>';
}
if ($is_admin == 'super')
$ip = $row['vi_ip'];
else
$ip = preg_replace("/([0-9]+).([0-9]+).([0-9]+).([0-9]+)/", "\\1.♡.\\3.\\4", $row['vi_ip']);
if ($brow == '기타') { $brow = '<span title="'.$row['vi_agent'].'">'.$brow.'</span>'; }
if ($os == '기타') { $os = '<span title="'.$row['vi_agent'].'">'.$os.'</span>'; }
?>
<tr>
<td class="td_category"><?=$ip?></td>
<td><?=$link?><?=$title?><?=$link2?></td>
<td class="td_category"><?=$brow?></td>
<td class="td_category"><?=$os?></td>
<td class="td_time"><?=$row['vi_date']?> <?=$row['vi_time']?></td>
</tr>
<?
}
if ($i == 0)
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
?>
</tbody>
</table>
</section>
<?
if (isset($domain))
$qstr .= "&amp;domain=$domain";
$qstr .= "&amp;page=";
$pagelist = get_paging($config['cf_write_pages'], $page, $total_page, "{$_SERVER['PHP_SELF']}?$qstr");
echo $pagelist;
include_once('./admin.tail.php');
?>

View File

@ -1,84 +1,89 @@
<?
$sub_menu = "200800";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$g4[title] = "월별 접속자현황";
include_once("./admin.head.php");
include_once("./visit.sub.php");
$g4['title'] = '월별 접속자집계';
include_once('./admin.head.php');
include_once('./visit.sub.php');
$colspan = 4;
?>
<table width=100% cellpadding=0 cellspacing=1 border=0>
<colgroup width=100>
<colgroup width=100>
<colgroup width=100>
<colgroup width=''>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>년-월</td>
<td>방문자수</td>
<td>비율(%)</td>
<td>그래프</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
$max = 0;
$sum_count = 0;
$sql = " select SUBSTRING(vs_date,1,7) as vs_month, SUM(vs_count) as cnt
from $g4[visit_sum_table]
where vs_date between '$fr_date' and '$to_date'
group by vs_month
order by vs_month desc ";
$sql = " select SUBSTRING(vs_date,1,7) as vs_month, SUM(vs_count) as cnt
from {$g4['visit_sum_table']}
where vs_date between '{$fr_date}' and '{$to_date}'
group by vs_month
order by vs_month desc ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$arr[$row[vs_month]] = $row[cnt];
$arr[$row['vs_month']] = $row['cnt'];
if ($row[cnt] > $max) $max = $row[cnt];
if ($row['cnt'] > $max) $max = $row['cnt'];
$sum_count += $row[cnt];
}
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
foreach ($arr as $key=>$value) {
$count = $value;
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
$bar = (int)($count / $max * 100);
$graph = "<img src='{$g4[admin_path]}/img/graph.gif' width='$bar%' height='18'>";
$list = ($k++%2);
echo "
<tr class='list$list ht center'>
<td><a href='./visit_date.php?fr_date=$key-01&to_date=$key-31' class=tt>$key</a></td>
<td>".number_format($value)."</td>
<td>$s_rate</td>
<td align=left>$graph</td>
</tr>";
}
echo "
<tr><td colspan='$colspan' class='line2'></td></tr>
<tr class='bgcol2 bold col1 ht center'>
<td>합계</td>
<td>".number_format($sum_count)."</td>
<td colspan=2>&nbsp;</td>
</tr>";
} else {
echo "<tr><td colspan='$colspan' height=100 align=center>자료가 없습니다.</td></tr>";
$sum_count += $row['cnt'];
}
?>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
</table>
<section class="cbox">
<h2>월별 접속자 수</h2>
<table>
<thead>
<tr>
<th scope="col">년-월</th>
<th scope="col">그래프</th>
<th scope="col">접속자수</th>
<th scope="col">비율(%)</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="2">합계</td>
<td><strong><?=number_format($sum_count)?></strong></td>
<td>100%</td>
</tr>
</tfoot>
<tbody>
<?
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
foreach ($arr as $key=>$value) {
$count = $value;
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
?>
<tr>
<td class="td_category"><a href="./visit_date.php?fr_date=<?=$key?>-01&amp;to_date=<?=$key?>-31"><?=$key?></a></td>
<td>
<div class="visit_bar">
<span style="width:<?=$s_rate?>%"></span>
</div>
</td>
<td class="td_bignum"><?=number_format($value)?></td>
<td class="td_num"><?=$s_rate?></td>
</tr>
<?
}
} else {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</tbody>
</table>
</section>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,39 +1,22 @@
<?
$sub_menu = "200800";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$g4[title] = "OS별 접속자현황";
include_once("./admin.head.php");
include_once("./visit.sub.php");
$g4['title'] = 'OS별 접속자집계';
include_once('./admin.head.php');
include_once('./visit.sub.php');
$colspan = 5;
?>
<table width=100% cellpadding=0 cellspacing=1 border=0>
<colgroup width=100>
<colgroup width=200>
<colgroup width=100>
<colgroup width=100>
<colgroup width=''>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>순위</td>
<td>OS</td>
<td>방문자수</td>
<td>비율(%)</td>
<td>그래프</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
$max = 0;
$sum_count = 0;
$sql = " select * from $g4[visit_table]
$sql = " select * from {$g4['visit_table']}
where vi_date between '$fr_date' and '$to_date' ";
$result = sql_query($sql);
while ($row=sql_fetch_array($result)) {
$s = get_os($row[vi_agent]);
$s = get_os($row['vi_agent']);
$arr[$s]++;
@ -41,58 +24,76 @@ while ($row=sql_fetch_array($result)) {
$sum_count++;
}
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
arsort($arr);
foreach ($arr as $key=>$value) {
$count = $arr[$key];
if ($save_count != $count) {
$i++;
$no = $i;
$save_count = $count;
} else {
$no = "";
}
if (!$key) {
$key = "직접";
}
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
$bar = (int)($count / $max * 100);
$graph = "<img src='{$g4[admin_path]}/img/graph.gif' width='$bar%' height='18'>";
$list = ($k++%2);
echo "
<tr class='list$list ht center'>
<td>$no</td>
<td>$key</td>
<td>$count</td>
<td>$s_rate</td>
<td align=left>$graph</td>
</tr>";
}
echo "
<tr><td colspan='$colspan' class='line2'></td></tr>
<tr class='bgcol2 bold col1 ht center'>
<td colspan=2>합계</td>
<td>$sum_count</td>
<td colspan=2>&nbsp;</td>
</tr>";
} else {
echo "<tr><td colspan='$colspan' height=100 align=center>자료가 없습니다.</td></tr>";
}
?>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
</table>
<section class="cbox">
<h2>운영체제별 접속자 수</h2>
<table>
<thead>
<tr>
<th scope="col">순위</th>
<th scope="col">OS</th>
<th scope="col">그래프</th>
<th scope="col">접속자수</th>
<th scope="col">비율(%)</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="3">합계</td>
<td><strong><?=$sum_count?></strong></td>
<td>100%</td>
</tr>
</tfoot>
<tbody>
<?
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
arsort($arr);
foreach ($arr as $key=>$value) {
$count = $arr[$key];
if ($save_count != $count) {
$i++;
$no = $i;
$save_count = $count;
} else {
$no = '';
}
if (!$key) {
$key = '직접';
}
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
?>
<tr>
<td class="td_num"><?=$no?></td>
<td class="td_category"><?=$key?></td>
<td>
<div class="visit_bar">
<span style="width:<?=$s_rate?>%"></span>
</div>
</td>
<td class="td_bignum"><?=$count?></td>
<td class="td_num"><?=$s_rate?></td>
</tr>
<?
}
} else {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</tbody>
</table>
</section>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,78 +1,81 @@
<?
$sub_menu = "200800";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$g4[title] = "요일별 접속자현황";
include_once("./admin.head.php");
include_once("./visit.sub.php");
$g4['title'] = '요일별 접속자집계';
include_once('./admin.head.php');
include_once('./visit.sub.php');
$colspan = 4;
?>
<table width=100% cellpadding=0 cellspacing=1 border=0>
<colgroup width=100>
<colgroup width=100>
<colgroup width=100>
<colgroup width=''>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>요일</td>
<td>방문자수</td>
<td>비율(%)</td>
<td>그래프</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
$weekday = array ('월', '화', '수', '목', '금', '토', '일');
$sum_count = 0;
$sql = " select WEEKDAY(vs_date) as weekday_date, SUM(vs_count) as cnt
from $g4[visit_sum_table]
where vs_date between '$fr_date' and '$to_date'
group by weekday_date
order by weekday_date ";
$sql = " select WEEKDAY(vs_date) as weekday_date, SUM(vs_count) as cnt
from {$g4['visit_sum_table']}
where vs_date between '{$fr_date}' and '{$to_date}'
group by weekday_date
order by weekday_date ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$arr[$row[weekday_date]] = $row[cnt];
$arr[$row['weekday_date']] = $row['cnt'];
$sum_count += $row[cnt];
}
$k = 0;
if ($i) {
for ($i=0; $i<7; $i++) {
$count = (int)$arr[$i];
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
$graph = "<img src='{$g4[admin_path]}/img/graph.gif' width='$rate%' height='18'>";
$list = ($k++%2);
echo "
<tr class='list$list ht center'>
<td>$weekday[$i]</td>
<td>$count</td>
<td>$s_rate</td>
<td align=left>$graph</td>
</tr>";
}
echo "
<tr><td colspan='$colspan' class='line2'></td></tr>
<tr class='bgcol2 bold col1 ht center'>
<td>합계</td>
<td>$sum_count</td>
<td colspan=2>&nbsp;</td>
</tr>";
} else {
echo "<tr><td colspan='$colspan' height=100 align=center>자료가 없습니다.</td></tr>";
$sum_count += $row['cnt'];
}
?>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
</table>
<section class="cbox">
<h2>요일별 접속자 수</h2>
<table>
<thead>
<tr>
<th scope="col">요일</th>
<th scope="col">그래프</th>
<th scope="col">접속자수</th>
<th scope="col">비율(%)</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="2">합계</td>
<td><strong><?=$sum_count?></strong></td>
<td>100%</td>
</tr>
</tfoot>
<tbody>
<?
$k = 0;
if ($i) {
for ($i=0; $i<7; $i++) {
$count = (int)$arr[$i];
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
?>
<tr>
<td class="td_category"><?=$weekday[$i]?></td>
<td>
<div class="visit_bar">
<span style="width:<?=$s_rate?>%"></span>
</div>
</td>
<td class="td_bignum"><?=$count?></td>
<td class="td_num"><?=$s_rate?></td>
</tr>
<?
}
} else {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</tbody>
</table>
</section>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>

View File

@ -1,84 +1,86 @@
<?
$sub_menu = "200800";
include_once("./_common.php");
include_once('./_common.php');
auth_check($auth[$sub_menu], "r");
auth_check($auth[$sub_menu], 'r');
$g4[title] = "연도별 접속자현황";
include_once("./admin.head.php");
include_once("./visit.sub.php");
$g4['title'] = '연도별 접속자집계';
include_once('./admin.head.php');
include_once('./visit.sub.php');
$colspan = 4;
?>
<table width=100% cellpadding=0 cellspacing=1 border=0>
<colgroup width=100>
<colgroup width=100>
<colgroup width=100>
<colgroup width=''>
<tr><td colspan='<?=$colspan?>' class='line1'></td></tr>
<tr class='bgcol1 bold col1 ht center'>
<td>년</td>
<td>방문자수</td>
<td>비율(%)</td>
<td>그래프</td>
</tr>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
<?
$max = 0;
$sum_count = 0;
$sql = " select SUBSTRING(vs_date,1,4) as vs_year, SUM(vs_count) as cnt
from $g4[visit_sum_table]
where vs_date between '$fr_date' and '$to_date'
group by vs_year
order by vs_year desc ";
$sql = " select SUBSTRING(vs_date,1,4) as vs_year, SUM(vs_count) as cnt
from {$g4['visit_sum_table']}
where vs_date between '{$fr_date}' and '{$to_date}'
group by vs_year
order by vs_year desc ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {
$arr[$row[vs_year]] = $row[cnt];
$arr[$row['vs_year']] = $row['cnt'];
if ($row[cnt] > $max) $max = $row[cnt];
if ($row['cnt'] > $max) $max = $row['cnt'];
$sum_count += $row[cnt];
}
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
foreach ($arr as $key=>$value) {
$count = $value;
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
$bar = (int)($count / $max * 100);
$graph = "<img src='{$g4[admin_path]}/img/graph.gif' width='$bar%' height='18'>";
$list = ($k++%2);
echo "
<tr class='list$list ht center'>
<td><a href='./visit_month.php?fr_date=$key-01-01&to_date=$key-12-31' class=tt>$key</a></td>
<td>".number_format($value)."</td>
<td>$s_rate</td>
<td align=left>$graph</td>
</tr>";
}
echo "
<tr><td colspan='$colspan' class='line2'></td></tr>
<tr class='bgcol2 bold col1 ht center'>
<td>합계</td>
<td>".number_format($sum_count)."</td>
<td colspan=2>&nbsp;</td>
</tr>";
} else {
echo "<tr><td colspan='$colspan' height=100 align=center>자료가 없습니다.</td></tr>";
$sum_count += $row['cnt'];
}
?>
<tr><td colspan='<?=$colspan?>' class='line2'></td></tr>
</table>
<section class="cbox">
<h2>연간 접속자 수</h2>
<table>
<thead>
<tr>
<th scope="col">년</th>
<th scope="col">그래프</th>
<th scope="col">접속자수</th>
<th scope="col">비율(%)</th>
</tr>
</thead>
<tfoot>
<tr>
<td colspan="2">합계</td>
<td><strong><?=number_format($sum_count)?></strong></td>
<td>100%</td>
</tr>
</tfoot>
<tbody>
<?
$i = 0;
$k = 0;
$save_count = -1;
$tot_count = 0;
if (count($arr)) {
foreach ($arr as $key=>$value) {
$count = $value;
$rate = ($count / $sum_count * 100);
$s_rate = number_format($rate, 1);
?>
<tr>
<td class="td_category"><a href="./visit_month.php?fr_date=<?=$key?>-01-01&amp;to_date=<?=$key?>-12-31"><?=$key?></a></td>
<td>
<div class="visit_bar">
<span style="width:<?=$s_rate?>%"></span>
</div>
</td>
<td class="td_bignum"><?=number_format($value)?></td>
<td class="td_num"><?=$s_rate?></td>
</tr>
<?
}
} else {
echo '<tr><td colspan="'.$colspan.'" class="empty_table">자료가 없습니다.</td></tr>';
}
?>
</tbody>
</table>
</section>
<?
include_once("./admin.tail.php");
include_once('./admin.tail.php');
?>