1
0
Fork 0
HANYANG_MES/home_dir/www/ksvc_old/kbrd/kbrd.ajax.php

264 lines
11 KiB
PHP

<?php
include_once "{$_SERVER['DOCUMENT_ROOT']}/common.inc.php";
$retval = array(
"code" => 0,
"mesg" => "",
"data" => array(),
);
if( !$_REQUEST['board_id'] ) return;
$ret_mode = $_REQUEST['ret_mode'];
$mesg = "";
$kbrd_obj = new Board($_REQUEST['board_id']);
switch( true ){
case $_REQUEST['mode'] == "getBoardList" :
$kbrd_list = $kbrd_obj->getBoardPage();
break;
case $_REQUEST['mode'] == "getContentsPage" :
$kbrd_cont_list = $kbrd_obj->getContentsPage($_REQUEST);
break;
case $_REQUEST['mode'] == "putContents" : $ret_mode = "action";
$retval['mesg'] = array();
if( !$_REQUEST['board_id'] ){
$retval['mesg'][] = "잘못된 접근방식입니다.";
}else if( !$kbrd_obj->chkUseOnly("input") ){ //쓰기권한이 있는지 확인
$retval['mesg'][] = "이용 권한이 없습니다.";
}else{
if( $kbrd_obj->board_info['ness_name'] && !$_REQUEST['uname'] ){
$retval['mesg'][] = "이름을 입력하지 않았습니다.";
}
if( !$kbrd_obj->isAdmin() && !$kbrd_obj->chkSecretAuth($_REQUEST['cid']) ){ //비밀번호를 체크하지 않는 권한을 가졌는지 체크
if( $kbrd_obj->board_info['ness_passwd'] && !$_REQUEST['passwd'] ){ //비밀번호 필수항목에 입력안하면
$retval['mesg'][] = "비밀번호를 입력하지 않았습니다.";
}
if( $_REQUEST['passwd'] && strlen($_REQUEST['passwd']) < 6 ){ //비밀번호를 입력했는데 6자 이하면
$retval['mesg'][] = "비밀번호는 6자 이상이어야 합니다.";
}
if( $_REQUEST['cid'] && $kbrd_obj->board_info['ness_passwd'] && !$kbrd_obj->chkPasswd( $_REQUEST['cid'], $_REQUEST['passwd'] ) ){
$retval['mesg'][] = "입력하신 비밀번호가 일치하지 않습니다.";
}
}
if( $kbrd_obj->board_info['ness_title'] && !$_REQUEST['title'] ){
$retval['mesg'][] = "제목을 입력하지 않았습니다.";
}
if( $kbrd_obj->board_info['ness_homepage'] && !$_REQUEST['homepage'] ){
$retval['mesg'][] = "홈페이지를 입력하지 않았습니다.";
}elseif( !chkValiDomain($_REQUEST['homepage']) ){
$retval['mesg'][] = "홈페이지 형식이 올바르지 않습니다.";
}
if( $kbrd_obj->board_info['ness_mail'] && !$_REQUEST['mail'] ){
$retval['mesg'][] = "메일을 입력하지 않았습니다.";
}else if( !chkValiMail($_REQUEST['mail']) ){
$retval['mesg'][] = "메일 형식이 올바르지 않습니다.";
}
if( $kbrd_obj->board_info['ness_mobile'] && !$_REQUEST['mobile'] ){
$retval['mesg'][] = "연락처를 입력하지 않았습니다.";
}elseif( !chkValiPhone($_REQUEST['mobile']) ){
$retval['mesg'][] = "연락처 형식이 올바르지 않습니다.";
}
if( $kbrd_obj->board_info['ness_contents'] && !$_REQUEST['contents'] ){
$retval['mesg'][] = "내용을 입력하지 않았습니다.";
}
// if( !$_REQUEST['cid'] && $kbrd_obj->board_info['ness_image'] && !count($_FILES['image']['name']) ){ //최초 입력일경우에 체크
// $retval['mesg'][] = "이미지 파일을 입력하지 않았습니다.";
// }
// if( !$_REQUEST['cid'] && $kbrd_obj->board_info['ness_file'] && !count($_FILES['file']['name']) ){ //최초 입력일경우에 체크
// $retval['mesg'][] = "첨부파일을 입력하지 않았습니다.";
// }
// if( !$_REQUEST['cid'] && $kbrd_obj->board_info['ness_movie'] && !count($_FILES['movie']['name']) ){ //최초 입력일경우에 체크
// $retval['mesg'][] = "동영상을 입력하지 않았습니다.";
// }
if( !$_REQUEST['cid'] && $kbrd_obj->board_info['ness_image'] && !$kbrd_obj->chkHasImageFile($_REQUEST) ){ //최초 입력일경우에 체크
$retval['mesg'][] = "이미지 파일을 입력하지 않았습니다.";
}
if( !$_REQUEST['cid'] && $kbrd_obj->board_info['ness_file'] && !$kbrd_obj->chkHasFile($_REQUEST) ){ //최초 입력일경우에 체크
$retval['mesg'][] = "첨부 파일을 입력하지 않았습니다.";
}
}
print_r($retval);
if( count($retval['mesg']) ){
$retval['code'] = false;
}else{
if( $_REQUEST['cid'] ){
$rst = $kbrd_obj->setContents($_REQUEST);
$exemode = "수정";
}else{
$rst = $kbrd_obj->putContents($_REQUEST);
$exemode = "등록";
if( $rst ) $move_page = "./kbrd_list.php?board_id={$_REQUEST['board_id']}";
}
if( $rst ){
$retval['mesg'][] = "{$exemode}되었습니다.";
}else{
$retval['mesg'][] = "{$exemode}중 오류가 발생하였습니다.";
}
}
break;
// case $_REQUEST['mode'] == "getContents" : $ret_mode = "error_action";
// $retval['mesg'] = array();
// if( !$_REQUEST['board_id'] ){
// $retval['mesg'][] = "잘못된 접근방식입니다.";
// }else if( !$kbrd_obj->chkUseOnly( "read" ) ){ //읽기권한이 있는지 확인
// $retval['mesg'][] = "이용 권한이 없습니다.";
// }else{
// $kbrd_cont = $kbrd_obj->getContents($_REQUEST['cid']);
// if( ($kbrd_cont['secret'] || $_REQUEST['use_secret']) && !$kbrd_obj->chkSecretAuth($kbrd_cont) ){ //비밀글 모드이거나, 수정진입인데 비밀번호 통과권한이 없으면.
// $ret_mode = "action";
// $move_page = "./kbrd_secret.php?board_id={$_REQUEST['board_id']}&cid={$kbrd_cont['cid']}";
// }
// }
// break;
case $_REQUEST['mode'] == "getContents" : //내용 불러오기
case $_REQUEST['mode'] == "mgetContents" : $ret_mode = "error_action"; //수정용 내용 불러오기
$kbrd_cont = $kbrd_obj->getContents($_REQUEST['cid']);
if( $_REQUEST['mode'] == "getContents" ){
$needmode = "read"; //필요 권한
$secmode = $kbrd_cont['secret']; //비밀글모드
}
if( $_REQUEST['mode'] == "mgetContents" ){
$needmode = "input"; //필요권한
$secmode = true; //비밀글모드
}
$retval['mesg'] = array();
if( !$_REQUEST['board_id'] ){
$retval['mesg'][] = "잘못된 접근방식입니다.";
}else if( !$kbrd_obj->chkUseOnly( $needmode ) ){ //권한이 있는지 확인
$retval['mesg'][] = "이용 권한이 없습니다.";
}else{
$kbrd_cont['files'] = $kbrd_obj->getFiles($kbrd_cont['cid'])?:array();
if( $secmode && !$kbrd_obj->chkSecretAuth($kbrd_cont) ){ //비밀글 모드인데 비밀번호 통과권한이 없으면.
$ret_mode = "action";
$move_page = "./kbrd_secret.php?board_id={$_REQUEST['board_id']}&cid={$kbrd_cont['cid']}";
}else if( $_REQUEST['mode'] == "getContents" && $kbrd_obj->addContentsViews($_REQUEST['cid']) ){ //조회수 카운트 올림
$kbrd_cont['views'] += 1;
}
}
case $_REQUEST['mode'] == "" : //새글 등록
// if( $kbrd_obj->DB->tableExists( $kbrd_obj->TB_kbrd_attach ) ){
// //require_once _INCLUDE_PATH_."/vendor/tinymce5/tinymce_file_board.php";
// }
break;
case $_REQUEST['mode'] == "delContents" : $ret_mode = "error_action";
$retval['mesg'] = array();
if( !$_REQUEST['board_id'] ){
$retval['mesg'][] = "잘못된 접근방식입니다.";
}else if( !$kbrd_obj->chkUseOnly( "write" ) ){ //권한이 있는지 확인
$retval['mesg'][] = "이용 권한이 없습니다.";
}else if( !$kbrd_obj->chkSecretAuth($_REQUEST['cid']) ){ //비밀번호 통과권한이 있는지 확인
$retval['mesg'][] = "이용 권한이 없습니다.";
}else{
$rst = $kbrd_obj->delContents($_REQUEST['cid']);
if( $rst ){
$retval['mesg'][] = "삭제 되었습니다.";
$move_page = base64url_decode($_REQUEST['referer']);
}else{
$retval['mesg'][] = "삭제중 오류가 발생하였습니다.";
}
}
break;
case $_REQUEST['mode'] == "putOpinion" : $ret_mode = "ajax";
if( !$_REQUEST['opinion'] ){
$retval['mesg'] = "내용을 입력하지 않았습니다.";
}else if( !$_REQUEST['uname'] ){
$retval['mesg'] = "작성자를 입력하지 않았습니다.";
}else if( !$_REQUEST['passwd'] ){
$retval['mesg'] = "비밀번호를 입력하지 않았습니다.";
}else{
$retval['code'] = $kbrd_obj->putOpinion($_REQUEST);
$retval['mesg'] = "등록되지 않았습니다.";
}
break;
case $_REQUEST['mode'] == "getOpinionList" :
$opinion_list = $kbrd_obj->getOpinionList($_REQUEST['cid']);
break;
case $_REQUEST['mode'] == "getOpinionSubList" :
$opinion_sublist = $kbrd_obj->getOpinionSubList($_REQUEST['cid'], $_REQUEST['uid']);
break;
case $_REQUEST['mode'] == "delOpinion" : $ret_mode = "ajax";
if( !$_REQUEST['board_id'] || !$_REQUEST['cid'] || !$_REQUEST['uid'] || !$_REQUEST['oid'] ){
$retval['mesg'] = "잘못된 접근방식입니다.";
}else if( !$_REQUEST['passwd'] ){
$retval['mesg'] = "비밀번호를 입력하지 않았습니다.";
}else if( !$kbrd_obj->chkOpinionPasswd( $_REQUEST['cid'], $_REQUEST['oid'], $_REQUEST['passwd'] ) ){
$retval['mesg'] = "비밀번호가 일치하지 않습니다.";
}else{
$retval['code'] = $kbrd_obj->delOpinion($_REQUEST);
$retval['mesg'] = "삭제되지 않았습니다.";
}
break;
case $_REQUEST['mode'] == "rejOpinion" : $ret_mode = "ajax";
if( !$_REQUEST['board_id'] || !$_REQUEST['cid'] || !$_REQUEST['uid'] || !$_REQUEST['oid'] ){
$retval['mesg'] = "잘못된 접근방식입니다.";
}else if( !$kbrd_obj->isAdmin() ){
$retval['mesg'] = "권한이 없습니다.";
}else{
$retval['code'] = $kbrd_obj->delOpinion($_REQUEST);
$retval['mesg'] = "차단되지 않았습니다.";
}
break;
case $_REQUEST['mode'] == "chkSecret" : $ret_mode = "error_action";
$retval['mesg'] = array();
if( !$_REQUEST['board_id'] || !$_REQUEST['cid'] ){
$retval['mesg'][] = "잘못된 접근방식입니다.";
}else if( !$_REQUEST['passwd'] ){
$retval['mesg'][] = "비밀번호를 입력하지 않았습니다.";
}else if( !$kbrd_obj->chkPasswd( $_REQUEST['cid'], $_REQUEST['passwd'] ) ){
$retval['mesg'][] = "비밀번호가 일치하지 않습니다.";
}else{
if( $_REQUEST['referer'] ){
$ret_mode = "action";
$move_page = $_REQUEST['referer'];
}
}
break;
}
if( is_array($retval['mesg']) && count($retval['mesg']) ){ //메세지가 있으면 합친다.
$mesg = implode("\\n\\n",$retval['mesg']);
}else{
$mesg = $retval['mesg'];
}
switch( $ret_mode ){
case "ajax" :
echo json_encode($retval);
break;
case "error_action" :
if( $mesg ){
alert($mesg);
if( $move_page ){
move_page($move_page);
}else{
hback();
}
}
break;
case "action" :
if( $mesg ){
alert($mesg);
}
if( $move_page ){
move_page($move_page);
}else{
hback();
}
break;
}