관리자 모드 내 전체 온라인 서식의 label,input 연결 확인 #369 /속성 정리완료

This commit is contained in:
rollydream
2013-03-12 10:48:42 +09:00
parent de5b4e50ba
commit 06f7fe2f02
75 changed files with 1779 additions and 878 deletions

View File

@ -1,27 +1,29 @@
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
function editor_html($id, $content, $ckeditor=true, $class="")
function editor_html($id, $content, $ckeditor=true, $class="")
{
global $g4;
static $js = true;
$html = "";
$html .= "<span class=\"sound_only\">웹에디터 시작</span>";
if ($js) {
$html .= PHP_EOL.'<script src="'.G4_CKEDITOR_URL.'/ckeditor.js"></script>';
$html .= PHP_EOL.'<script>var g4_ckeditor_url = "'.G4_CKEDITOR_URL.'";</script>';
$html .= PHP_EOL.'<script src="'.G4_CKEDITOR_URL.'/config.js"></script>';
$html .= "\n".'<script src="'.G4_CKEDITOR_URL.'/ckeditor.js"></script>';
$html .= "\n".'<script>var g4_ckeditor_url = "'.G4_CKEDITOR_URL.'";</script>';
$html .= "\n".'<script src="'.G4_CKEDITOR_URL.'/config.js"></script>';
$js = false;
}
$ckeditor_class = $ckeditor ? "ckeditor" : "";
$html .= "\n<textarea id=\"$id\" name=\"$id\" class=\"$ckeditor_class $class\" style=\"width:100%;\">$content</textarea>";
$html .= "\n<span class=\"sound_only\">웹 에디터 끝</span>";
return $html;
}
// textarea 로 값을 넘긴다. javascript 반드시 필요
function get_editor_js($id, $ckeditor=true)
function get_editor_js($id, $ckeditor=true)
{
if ( $ckeditor ) {
return "var {$id}_editor_data = CKEDITOR.instances.{$id}.getData();\n";

View File

@ -1,7 +1,7 @@
<?php
include_once("./_common.php");
class gcaptcha
class gcaptcha
{
// 이미지크기 폭
var $width = 70;
@ -77,13 +77,13 @@ class gcaptcha
return mt_rand($from, $to);
}
function run()
function run()
{
global $g4;
// The text to draw
$captcha_key = $this->get_captcha_key();
set_session('ss_captcha_cnt', 0);
set_session('ss_captcha_key', $captcha_key);
@ -125,7 +125,7 @@ class gcaptcha
imagejpeg($im, G4_DATA_PATH.'/cache/'.$this->captcha_filename.'.jpg');
imagedestroy($im);
$this->make_wav($this->captcha_filename.'.wav');
$this->make_wav($this->captcha_filename.'.wav');
}
function get_captcha_filename()
@ -152,7 +152,7 @@ class gcaptcha
}
/*
사용법 :
사용법 :
$gcaptcha = new gcaptcha();
$gcaptcha->set_captcha_length(mt_rand(4, 6));
$gcaptcha->set_position(mt_rand(0, 10), mt_rand(15, 20));
@ -172,15 +172,16 @@ function captcha_html($class='captcha')
$obj = new gcaptcha();
$obj->run();
$rand = rand();
$jpg_file_url = G4_DATA_URL.'/cache/'.$obj->captcha_filename.'.jpg';
$wav_file_url = G4_DATA_URL.'/cache/'.$obj->captcha_filename.'.wav';
$html .= PHP_EOL.'<script>var g4_gcaptcha_url = "'.G4_GCAPTCHA_URL.'";</script>';
$html .= PHP_EOL.'<script src="'.G4_GCAPTCHA_URL.'/gcaptcha.js"></script>';
$html .= "\n".'<script>var g4_gcaptcha_url = "'.G4_GCAPTCHA_URL.'";</script>';
$html .= "\n".'<script src="'.G4_GCAPTCHA_URL.'/gcaptcha.js"></script>';
$html .= '<fieldset id="captcha" class="'.$class.'">';
$html .= '<legend class="sound_only">자동등록방지</legend>';
$html .= '<img src="'.$jpg_file_url.'?_='.rand().'" alt="자동등록방지 숫자">';
$html .= '<a href="'.$wav_file_url.'" id="captcha_wav" target="_blank"><img src="'.G4_GCAPTCHA_URL.'/img/sound.gif" alt="숫자를 음성으로 듣기"></a>';
$html .= '<img src="'.$jpg_file_url.'?_='.$rand.'" alt="자동등록방지 숫자">';
$html .= '<a href="'.$wav_file_url.'?_='.$rand.'" id="captcha_wav" target="_blank"><img src="'.G4_GCAPTCHA_URL.'/img/sound.gif" alt="숫자를 음성으로 듣기"></a>';
$html .= '<input type="text" id="captcha_key" name="captcha_key" class="captcha_box frm_input" size="6" maxlength="6" required title="자동등록방지 숫자 입력">';
$html .= '<p class="sound_only">자동등록방지 숫자를 순서대로 입력하세요.</p>';
$html .= '</fieldset>';

View File

@ -1,74 +0,0 @@
<?php
include_once("./_common.php");
// prepare an array of wavfiles
$wavs_dir = $g4['path'].'/plugin/captcha/wavs/';
$number = (string)$_SESSION['ss_captcha_key'];
$wavs = array();
for($i=0;$i<strlen($number);$i++){
$file = $wavs_dir.$number[$i].'.wav';
$wavs[] = $file;
}
header('Content-type: audio/x-wav');
header('Content-Disposition: attachment;filename=captcha.wav');
echo joinwavs($wavs);
/**
* Join multiple wav files
*
* All wave files need to have the same format and need to be uncompressed.
* The headers of the last file will be used (with recalculated datasize
* of course)
*
* @link http://ccrma.stanford.edu/CCRMA/Courses/422/projects/WaveFormat/
* @link http://www.thescripts.com/forum/thread3770.html
*/
function joinwavs($wavs)
{
$fields = join('/',array( 'H8ChunkID', 'VChunkSize', 'H8Format',
'H8Subchunk1ID', 'VSubchunk1Size',
'vAudioFormat', 'vNumChannels', 'VSampleRate',
'VByteRate', 'vBlockAlign', 'vBitsPerSample' ));
$data = '';
$info = array();
foreach($wavs as $wav){
$fp = fopen($wav,'rb');
$header = fread($fp,36);
$info = unpack($fields,$header);
// read optional extra stuff
if($info['Subchunk1Size'] > 16){
$header .= fread($fp,($info['Subchunk1Size']-16));
}
// read SubChunk2ID
$header .= fread($fp,4);
// read Subchunk2Size
$size = unpack('vsize',fread($fp, 4));
$size = $size['size'];
// read data
$data .= fread($fp,$size);
}
return ''
.pack('a4', 'RIFF')
.pack('V', strlen($data) + 36)
.pack('a4', 'WAVE')
.pack('a4', 'fmt ')
.pack('V', $info['Subchunk1Size']) // 16
.pack('v', $info['AudioFormat']) // 1
.pack('v', $info['NumChannels']) // 1
.pack('V', $info['SampleRate']) // 8000
.pack('V', $info['ByteRate']) // 8000
.pack('v', $info['BlockAlign']) // 1
.pack('v', $info['BitsPerSample']) // 8
.pack('a4', 'data')
.pack('V', strlen($data))
.$data;
}
?>

View File

@ -1,45 +0,0 @@
<?
include_once('./_common.php');
$g4['title'] = 'E-mail 중복확인';
include_once(G4_PATH.'/head.sub.php');
$mb_email = trim($mb_email);
if ($member[mb_id]) // 수정중 중복확인이면
$sql = " select mb_email from {$g4[member_table]} where mb_email = '{$mb_email}' and mb_id <> '{$member[mb_id]}' ";
else
$sql = " select mb_email from {$g4[member_table]} where mb_email = '{$mb_email}' ";
$row = sql_fetch($sql);
if ($row[mb_email]) {
echo <<<HEREDOC
<script>
alert(''.$mb_email.'은(는) 이미 다른 회원이 사용하는 E-mail이므로 사용하실 수 없습니다.');
//opener.fmbform.mb_email_enabled.value = "0"; // 새창으로 열 경우에...
parent.document.getElementById('mb_email_enabled').value = -1;
window.close();
</script>
HEREDOC;
} else {
if (!preg_match("/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/", $mb_email)) {
echo <<<HEREDOC
<script>
alert(''.$mb_email.'은(는) E-mail 주소 형식이 아니므로 사용하실 수 없습니다.');
parent.document.getElementById('mb_email_enabled').value = '';
window.close();
</script>
HEREDOC;
} else {
echo <<<HEREDOC
<script>
alert(''.$mb_email.'은(는) 중복된 E-mail이 없습니다.'.PHP_EOL.PHP_EOL.'사용하셔도 좋습니다.');
parent.document.getElementById('mb_email_enabled').value = 1;
window.close();
</script>
HEREDOC;
}
}
include_once(G4_PATH.'/tail.sub.php');
?>

View File

@ -1,39 +0,0 @@
<?
include_once('./_common.php');
$g4['title'] = '회원아이디 중복확인';
include_once(G4_PATH.'/head.sub.php');
$mb_id = trim($mb_id);
$mb = get_member($mb_id);
if ($mb[mb_id]) {
?>
<script>
alert('<?=$mb_id?>은(는) 이미 가입된 회원아이디 이므로 사용하실 수 없습니다.');
parent.document.getElementById(\"mb_id_enabled\").value = -1;
window.close();
</script>';
<?
} else {
if (preg_match("/[\,]?{$mb_id}/i", $config[cf_prohibit_id])) {
?>
<script>';
alert('<?=$mb_id?>은(는) 예약어로 사용하실 수 없는 회원아이디입니다.');
parent.document.getElementById(\"mb_id_enabled\").value = -2;
window.close();';
</script>';
<?
} else {
?>
<script>
alert('<?=$mb_id?>은(는) 중복된 회원아이디가 없습니다. 사용하셔도 좋습니다.');
parent.document.getElementById(\"mb_id_enabled\").value = 1;';
window.close();';
</script>';
<?
}
}
include_once(G4_PATH.'/tail.sub.php');
?>

View File

@ -1,51 +0,0 @@
<?
include_once('./_common.php');
$g4['title'] = '별명 중복확인';
include_once(G4_PATH.'/head.sub.php');
$mb_nick = trim($mb_nick);
// 별명은 한글, 영문, 숫자만 가능
if (!check_string($mb_nick, _G4_HANGUL_ + _G4_ALPHABETIC_ + _G4_NUMERIC_)) {
?>
<script>
alert('별명은 공백없이 한글, 영문, 숫자만 입력 가능합니다.');
parent.document.getElementById('mb_nick_enabled').value = '';
window.close();
</script>
<?
exit;
}
$mb = sql_fetch(" select mb_nick from $g4[member_table] where mb_nick = '$mb_nick' ");
if ($mb[mb_nick]) {
?>
<script>
alert('<?=$mb_nick?> 은(는) 이미 다른분께서 사용하고 있는 별명이므로 사용하실 수 없습니다.');
parent.document.getElementById('mb_nick_enabled').value = -1;
window.close();
</script>
<?
} else {
if (preg_match("/[\,]?{$mb_nick}/i", $config[cf_prohibit_id])) {
?>
<script>
alert('<?=$mb_nick?> 은(는) 예약어로 사용하실 수 없는 별명입니다.');
parent.document.getElementById('mb_nick_enabled').value = -2;
window.close();
</script>
<?
} else {
?>
<script>
alert('<?=$mb_nick?> 은(는) 별명으로 사용할 수 있습니다.');
parent.document.getElementById('mb_nick_enabled').value = 1;
window.close();
</script>
<?
}
}
include_once(G4_PATH.'/tail.sub.php');
?>

View File

@ -5,16 +5,16 @@ include_once(G4_GCAPTCHA_PATH.'/gcaptcha.lib.php');
if ($is_guest)
alert_close('회원만 이용하실 수 있습니다.');
if (!$member['mb_open'] && $is_admin != 'super' && $member['mb_id'] != $mb_id)
if (!$member['mb_open'] && $is_admin != 'super' && $member['mb_id'] != $mb_id)
alert_close("자신의 정보를 공개하지 않으면 다른분에게 쪽지를 보낼 수 없습니다. 정보공개 설정은 회원정보수정에서 하실 수 있습니다.");
$content = "";
// 탈퇴한 회원에게 쪽지 보낼 수 없음
if ($me_recv_mb_id)
if ($me_recv_mb_id)
{
$mb = get_member($me_recv_mb_id);
if (!$mb['mb_id'])
alert_close('회원정보가 존재하지 않습니다.'.PHP_EOL.PHP_EOL.'탈퇴하였을 수 있습니다.');
alert_close('회원정보가 존재하지 않습니다.\\n\\n탈퇴하였을 수 있습니다.');
if (!$mb['mb_open'] && $is_admin != 'super')
alert_close('정보공개를 하지 않았습니다.');
@ -23,10 +23,10 @@ if ($me_recv_mb_id)
$row = sql_fetch(" select me_memo from {$g4['memo_table']} where me_id = '{$me_id}' and (me_recv_mb_id = '{$member['mb_id']}' or me_send_mb_id = '{$member['mb_id']}') ");
if ($row['me_memo'])
{
$content = PHP_EOL.PHP_EOL.PHP_EOL.' >'
.PHP_EOL.' >'
.PHP_EOL.' >'.preg_replace("/\n/", "\n> ", get_text($row[me_memo], 0))
.PHP_EOL.' >'
$content = "\n\n\n".' >'
."\n".' >'
."\n".' >'.preg_replace("/\n/", "\n> ", get_text($row['me_memo'], 0))
."\n".' >'
.' >';
}

View File

@ -43,7 +43,7 @@ while ($row = sql_fetch_array($result))
{
$nick = cut_str($member['mb_nick'], $config['cf_cut_name']);
if (!$row2['wr_is_comment'] && $config['cf_use_copy_log'])
$row2['wr_content'] .= PHP_EOL.'<div class="content_'.$sw.'">[이 게시물은 '.$nick.'님에 의해 '.G4_TIME_YMDHIS.' '.$board['bo_subject'].'에서 '.($sw == 'copy' ? '복사' : '이동').' 됨]</div>';
$row2['wr_content'] .= "\n".'<div class="content_'.$sw.'">[이 게시물은 '.$nick.'님에 의해 '.G4_TIME_YMDHIS.' '.$board['bo_subject'].'에서 '.($sw == 'copy' ? '복사' : '이동').' 됨]</div>';
$sql = " insert into $move_write_table
set wr_num = '$next_wr_num',

View File

@ -33,7 +33,7 @@ $total_page = ceil($total_count / $rows); // 전체 페이지 계산
if (!$page) $page = 1; // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함
$group_select = '<select name="gr_id" id="gr_id" title="검색대상" onchange="select_change();"><option value="">전체그룹';
$group_select = '<select name="gr_id" id="gr_id" title="검색대상"><option value="">전체그룹';
$sql = " select gr_id, gr_subject from {$g4['group_table']} order by gr_id ";
$result = sql_query($sql);
for ($i=0; $row=sql_fetch_array($result); $i++) {

View File

@ -37,7 +37,7 @@ if ($w == '')
// 관리자에게 보내는 메일
$admin = get_admin('super');
$from_email = $member['mb_email'] ? $member['mb_email'] : $admin['mb_email'];
mailer($name, $from_email, $admin['mb_email'], '설문조사 기타의견 메일', $content, 1);
mailer($name, $from_email, $admin['mb_email'], '['.$config['cf_title'].'] 설문조사 기타의견 메일', $content, 1);
}
}
else if ($w == 'd')

View File

@ -194,7 +194,7 @@ if ($w == '') {
// 회원님께 메일 발송
if ($config['cf_email_mb_member']) {
$subject = '회원가입을 축하드립니다.';
$subject = '['.$config['cf_title'].'] 회원가입을 축하드립니다.';
$mb_md5 = md5($mb_id.$mb_email.G4_TIME_YMDHIS);
$certify_href = G4_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&amp;mb_md5='.$mb_md5;
@ -209,7 +209,7 @@ if ($w == '') {
// 최고관리자님께 메일 발송
if ($config['cf_email_mb_super_admin']) {
$subject = $mb_nick .' 님께서 회원으로 가입하셨습니다.';
$subject = '['.$config['cf_title'].'] '.$mb_nick .' 님께서 회원으로 가입하셨습니다.';
ob_start();
include_once ('./register_form_update_mail2.php');
@ -295,7 +295,7 @@ if ($w == '') {
// 인증메일 발송
if ($old_email != $mb_email && $config['cf_use_email_certify']) {
$subject = '인증확인 메일입니다.';
$subject = '['.$config['cf_title'].'] 인증확인 메일입니다.';
$mb_md5 = md5($mb_id.$mb_email.$member['mb_datetime']);
$certify_href = G4_BBS_URL.'/email_certify.php?mb_id='.$mb_id.'&amp;mb_md5='.$mb_md5;
@ -320,7 +320,7 @@ if ($msg)
if ($w == "") {
goto_url(G4_BBS_URL.'/register_result.php');
} else if ($w == 'u') {
$row = sql_fetch(" select mb_password from {$g4['member_table']} where mb_id = '{$member[mb_id]}' ");
$row = sql_fetch(" select mb_password from {$g4['member_table']} where mb_id = '{$member['mb_id']}' ");
$tmp_password = $row['mb_password'];
if ($old_email != $mb_email && $config['cf_use_email_certify']) {

View File

@ -121,9 +121,7 @@ else if (strstr($view['wr_option'], 'html2'))
$view['content'] = conv_content($view['wr_content'], $html);
if (strstr($sfl, 'content'))
$view['content'] = search_font($stx, $view['content']);
//$view['content'] = preg_replace("/(\<img )([^\>]*)(\>)/i", "\\1 onclick='image_window(this)'", $view['content']);
//$view['rich_content'] = preg_replace("/{img\:([0-9]+)[:]?([^}]*)}/ie", "view_image(\$view, '\\1', '\\2')", $view['content']);
$view['rich_content'] = preg_replace("/{이미지\:([0-9]+)[:]?([^}]*)}/ie", "view_image(\$view, '\\1', '\\2')", $view['content']);
$is_signature = false;
@ -133,8 +131,6 @@ if ($board['bo_use_signature'] && $view['mb_id']) {
$mb = get_member($view['mb_id']);
$signature = $mb['mb_signature'];
//$signature = bad_tag_convert($signature);
// 081022 : CSRF 보안 결함으로 인한 코드 수정
$signature = conv_content($signature, 1);
}

View File

@ -114,7 +114,7 @@ else
include_once($board_skin_path.'/view_comment.skin.php');
if (!$member['mb_id']) // 비회원일 경우에만
echo '<script src="'.G4_JS_URL.'/md5.js"></script>'.PHP_EOL;
echo '<script src="'.G4_JS_URL.'/md5.js"></script>'."\n";
@include_once($board_skin_path.'/view_comment.tail.skin.php');
?>

View File

@ -48,7 +48,7 @@ if (empty($wr['wr_id']))
// 이 옵션을 사용 안 함으로 설정할 경우 어떤 스크립트도 실행 되지 않습니다.
//if (!trim($_POST["wr_content"])) die ("내용을 입력하여 주십시오.");
if ($member[mb_id])
if ($is_member)
{
$mb_id = $member['mb_id'];
// 4.00.13 - 실명 사용일때 댓글에 별명으로 입력되던 오류를 수정
@ -67,7 +67,7 @@ if ($w == 'c') // 댓글 입력
{
/*
if ($member[mb_point] + $board[bo_comment_point] < 0 && !$is_admin)
alert('보유하신 포인트('.number_format($member[mb_point]).')가 없거나 모자라서 댓글쓰기('.number_format($board[bo_comment_point]).')가 불가합니다.'.PHP_EOL.PHP_EOL.'포인트를 적립하신 후 다시 댓글를 써 주십시오.');
alert('보유하신 포인트('.number_format($member[mb_point]).')가 없거나 모자라서 댓글쓰기('.number_format($board[bo_comment_point]).')가 불가합니다.\\n\\n포인트를 적립하신 후 다시 댓글를 써 주십시오.');
*/
// 댓글쓰기 포인트설정시 회원의 포인트가 음수인 경우 댓글를 쓰지 못하던 버그를 수정 (곱슬최씨님)
$tmp_point = ($member['mb_point'] > 0) ? $member['mb_point'] : 0;
@ -193,7 +193,7 @@ if ($w == 'c') // 댓글 입력
$warr = array( ''=>'입력', 'u'=>'수정', 'r'=>'답변', 'c'=>'댓글 ', 'cu'=>'댓글 수정' );
$str = $warr[$w];
$subject = $board['bo_subject'].' 게시판에 '.$str.'글이 올라왔습니다.';
$subject = '['.$config['cf_title'].'] '.$board['bo_subject'].' 게시판에 '.$str.'글이 올라왔습니다.';
// 4.00.15 - 메일로 보내는 댓글의 바로가기 링크 수정
$link_url = G4_BBS_URL."/board.php?bo_table=".$bo_table."&amp;wr_id=".$wr_id."&amp;".$qstr."#c_".$comment_id;
@ -281,7 +281,7 @@ else if ($w == 'cu') // 댓글 수정
and wr_is_comment = 1 ";
$row = sql_fetch($sql);
if ($row['cnt'] && !$is_admin)
alert('이 댓글와 관련된 답변댓글 존재하므로 수정 할 수 없습니다.');
alert('이 댓글와 관련된 답변댓글 존재하므로 수정 할 수 없습니다.');
$sql_ip = "";
if (!$is_admin)

View File

@ -349,7 +349,7 @@ if ($w == '' || $w == 'r') {
// 쓰기 포인트 부여
if ($w == '') {
if ($notice) {
$bo_notice = $wr_id.PHP_EOL.$board['bo_notice'];
$bo_notice = $wr_id."\n".$board['bo_notice'];
sql_query(" update {$g4['board_table']} set bo_notice = '{$bo_notice}' where bo_table = '{$bo_table}' ");
}
@ -561,7 +561,8 @@ if (!($w == 'u' || $w == 'cu') && $config['cf_email_use'] && $board['bo_use_emai
$warr = array( ''=>'입력', 'u'=>'수정', 'r'=>'답변', 'c'=>'코멘트', 'cu'=>'코멘트 수정' );
$str = $warr[$w];
$subject = '"'.$board['bo_subject'].'" 게시판에 '.$str.'글이 올라왔습니다.';
$subject = '['.$config['cf_title'].'] '.$board['bo_subject'].' 게시판에 '.$str.'글이 올라왔습니다.';
$link_url = G4_BBS_URL.'/board.php?bo_table='.$bo_table.'&amp;wr_id='.$wr_id.'&amp;'.$qstr;
include_once(G4_LIB_PATH.'/mailer.lib.php');