332 lines
15 KiB
PHP
332 lines
15 KiB
PHP
<?
|
||
$sub_menu = '300100';
|
||
include_once('./_common.php');
|
||
|
||
if ($w == "u")
|
||
check_demo();
|
||
|
||
auth_check($auth[$sub_menu], 'w');
|
||
|
||
if ($member[mb_password] != sql_password($_POST["admin_password"])) {
|
||
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 ($img = $_FILES[bo_image_tail][name]) {
|
||
if (!preg_match('/\.(gif|jpg|png)$/i', $img)) {
|
||
alert('하단 이미지가 gif, jpg, png 파일이 아닙니다.');
|
||
}
|
||
}
|
||
|
||
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';
|
||
|
||
// 게시판 디렉토리 생성
|
||
@mkdir($board_path, 0707);
|
||
@chmod($board_path, 0707);
|
||
|
||
// 디렉토리에 있는 파일의 목록을 보이지 않게 한다.
|
||
$file = $board_path . '/index.php';
|
||
$f = @fopen($file, 'w');
|
||
@fwrite($f, '');
|
||
@fclose($f);
|
||
@chmod($file, 0606);
|
||
|
||
// 분류에 & 나 = 는 사용이 불가하므로 2바이트로 바꾼다.
|
||
$src_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]" ';
|
||
|
||
if ($bo_image_head_del) {
|
||
@unlink('$board_path/$bo_image_head_del');
|
||
$sql_common .= ' , bo_image_head = "" ';
|
||
}
|
||
|
||
if ($bo_image_tail_del) {
|
||
@unlink('$board_path/$bo_image_tail_del');
|
||
$sql_common .= ' , bo_image_tail = "" ';
|
||
}
|
||
|
||
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",
|
||
bo_count_write = "0",
|
||
bo_count_comment = "0",
|
||
$sql_common ';
|
||
sql_query($sql);
|
||
|
||
// 게시판 테이블 생성
|
||
$file = file('./sql_write.sql');
|
||
$sql = implode($file, '\n');
|
||
|
||
$create_table = $g4[write_prefix] . $bo_table;
|
||
|
||
// sql_board.sql 파일의 테이블명을 변환
|
||
$source = array('/__TABLE_NAME__/', '/;/');
|
||
$target = array($create_table, '');
|
||
$sql = preg_replace($source, $target, $sql);
|
||
sql_query($sql, FALSE);
|
||
} else if ($w == 'u') {
|
||
// 게시판의 글 수
|
||
$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];
|
||
|
||
// 게시판의 코멘트 수
|
||
$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];
|
||
|
||
// 글수 조정
|
||
if ($proc_count) {
|
||
// 원글을 얻습니다.
|
||
$sql = ' select wr_id from $g4[write_prefix]$bo_table where wr_is_comment = 0 ';
|
||
$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 ';
|
||
$row2 = sql_fetch($sql2);
|
||
|
||
sql_query(' update $g4[write_prefix]$bo_table set wr_comment = "$row2[cnt]" where wr_id = "$row[wr_id]" ');
|
||
}
|
||
}
|
||
|
||
// 공지사항에는 등록되어 있지만 실제 존재하지 않는 글 아이디는 삭제합니다.
|
||
$bo_notice = '';
|
||
$lf = '';
|
||
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])
|
||
{
|
||
$bo_notice .= $lf . $tmp_wr_id;
|
||
$lf = '\n';
|
||
}
|
||
}
|
||
}
|
||
|
||
$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" ';
|
||
}
|
||
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" ';
|
||
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 ($s) {
|
||
$sql = ' update $g4[board_table]
|
||
set bo_table = bo_table
|
||
{$s}
|
||
where gr_id = "$gr_id" ';
|
||
sql_query($sql);
|
||
}
|
||
|
||
|
||
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);
|
||
}
|
||
|
||
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);
|
||
}
|
||
|
||
goto_url('./board_form.php?w=u&bo_table=$bo_table&$qstr');
|
||
?>
|