728x90
PHP 위지윅 에디터로 DB에 저장된 게시글을 열람하는 코드 예시이다.
파일 다운로드하는 코드를 jQuery 로 구현하려고 했으나 원하지 않는 결과가 나와서 a href 링크를 그대로 활용하여 코드를 구현했다.
<?php
error_reporting(0);
/*
ini_set("display_startup_errors", 1);
ini_set("display_errors", 1);
error_reporting(E_ALL);
// */
require_once 'path.php';// root 폴더를 기준으로 상대적인 경로 자동 구하기
require_once $g['path_root'].'sessionChk.php';
require_once $g['path_root'].'deviceChk.php';
require_once $g['path_root'].'ipFiltering.php';
require_once $g['path_config'].'config.php';
require_once $g['path_config'].'dbconnect.php';
require_once $g['path_class'].'dbDataClass.php';
require_once $g['path_class'].'dbconnect.php';
require_once $g['path_class'].'adminClass.php';
require_once $g['path_class'].'bbsClass.php';
$a = new adminClass();
$b = new bbsClass();
$d = new LegacyDBClass;
$idx = preg_replace("/[^0-9]/", "", $_GET['idx']); // 숫자 이외 제거
$curPage = isset($_GET['p']) ? $d->XSSFilter($_GET['p']) : 1;
$R = $d->getDbData('bbs_data', 'idx='.$idx, '*');
$html = ($R['html'] == 1) ? 'HTML' : 'TEXT';
// 쿠키를 이용한 중복 조회수 증가 방지
if(!empty($R['idx']) && empty($_COOKIE['bbs_data_'.$R['idx']])) {
if(strcmp($_SESSION['userID'],$R['userID']) !== 0){ // 등록자 본인이 아니면
$d->getDbUpdate('bbs_data','hit=hit+1','idx='.$R['idx']); // 확인 필요
setcookie('bbs_data_'.$R['idx'], TRUE, time() + (60 * 60 * 24), '/');
}
}
$status = array('','접수','처리중','처리완료','처리불가');
$imgpath="../img/etc/";
?>
<table class="table table-bordered table-hover table-sm" cellspacing="0" width="100%">
<tr>
<td style="width:70px;">제목</td>
<td class="text-left"><?php echo $R['subject']?></td>
</tr>
<tr>
<td>내용</td>
<td class="text-left"><?php echo $b->conv_content($R['content']);?></td>
</tr>
<tr>
<td>등록자</td>
<td class="text-left"><?php echo $d->letterMasking($R['userNM']);?></td>
</tr>
<tr>
<td>첨부파일</td>
<td class="text-left">
<a href="bbsFiledown.php?idx=<?=$R['idx'];?>">
<span class="badge badge-pill badge-secondary" id="attachFile" data-toggle="tooltip" title="누르면 다운로드 가능합니다.">
<?php echo $R['realname'];?></span>
</a>
</td>
</tr>
</table>
<?php include_once $g['path_admin'].'bbsComment.php';?>
<div class="table-responsive text-nowrap">
<div class="float-left info">
<button class="btn btn-md btn-outline-default m-0 px-3 py-2 z-depth-0 waves-effect" type="button" id="BBSHome">목록</button>
<div id="bbsView" data-id="<?=$R['idx'];?>" curPage="<?=$curPage;?>"></div>
</div>
<div class="float-right info">
<?php if($R['userID'] == $_SESSION['userID']):?>
<a href="bbsWrite.php" class="btn btn-md btn-outline-default m-0 px-3 py-2 z-depth-0 waves-effect" id="bbsModify">수정</a>
<?php endif;?>
<?php if($R['userID'] == $_SESSION['userID'] ):?>
<button class="btn btn-md btn-outline-default m-0 px-3 py-2 z-depth-0 waves-effect" type="button" id="bbsDelete">삭제</button>
<?php endif;?>
</div>
</div>
<script>
$('#BBSHome').click(function(e) {
e.preventDefault();
var uri = "bbsList.php";
var page = $('#bbsView').attr('curPage');
MemberListTable('','',page,uri,'','','','','');
});
$('#bbsModify').click(function(e){
e.preventDefault();
var uri = $(this).attr('href');
var idx = $('#bbsView').attr('data-id');
var page = $('#bbsView').attr('curPage');
MemberListTable('','',page,uri,'','','','',idx);
});
$('#bbsDelete').click(function(e){
e.preventDefault();
var idx = $('#bbsView').attr('data-id');
var curPage = $('#bbsView').attr('curPage');
var verify = confirm('삭제하시겠습니까? \n 복구할 수 없습니다.');
if (verify) {
$.ajax({
url:'bbsDelete.php',
type: 'POST',
data: {
idx:encrypt.encrypt(idx)
},
dataType:'text',
success:function(msg){
if (msg == 1) {
alert('삭제되었습니다.');
var uri = "bbsList.php";
MemberListTable('','',curPage,uri,'','','','',0);
} else if(msg == -2){
alert('삭제 권한이 없습니다.');
} else {
alert('삭제중 오류가 발생하였습니다.');
}
},
error: function(jqXHR, textStatus, errorThrown){
alert("ajax error : " + textStatus + "\n" + errorThrown);
}
});
}
});
$('#bbsStatus').click(function(e){
e.preventDefault();
var uri = "bbsStatus.php";
var idx = $('#bbsView').attr('data-id');
var page = $('#bbsView').attr('curPage');
MemberListTable('','',page,uri,'','','','',idx);
});
$('#comment_form').click(function(e){
e.preventDefault();
var comment = $("textarea[name=comment]");
if(comment.val() ==''){
alert('댓글을 입력하세요');
comment.focus();
return false;
}
var page = $("input[name=p]").val();
var idx = $("input[name=parentid]").val();
$.ajax({
url:'bbsCommentChk.php',
type: 'POST',
data: {
mode:$("input[name=mode]").val(),
parentid:idx,
comment:$("textarea[name=comment]").val()
},
dataType:'text',
success:function(msg){
if(msg == 1){
alert('등록했습니다.');
uri = "bbsView.php";
MemberListTable('','',page,uri,'','','','',idx);
} else if(msg==-2){
alert('수정권한이 없습니다.');
return false;
} else {
alert('데이터를 다시 한번 확인하세요\n'+msg);
return false;
}
},
error: function(jqXHR, textStatus, errorThrown){
alert("ajax error : " + textStatus + "\n" + errorThrown);
}
});
});
$(".comment_del").click(function(){
var idx = $(this).parent().parent().attr('id');
var page = $("input[name=p]").val();
CommnetDelete(page,idx);
});
function CommnetDelete(curPage,idx){
var verify = confirm('삭제하시겠습니까? \n 복구할 수 없습니다.');
if (verify) {
$.ajax({
url:'bbsCommentDelete.php',
type: 'POST',
data: {
idx:encrypt.encrypt(idx)
},
dataType:'text',
success:function(msg){
if (msg == 1) {
uri = "bbsView.php";
var idx = $("input[name=parentid]").val();
MemberListTable('','',curPage,uri,'','','','',idx);
} else if(msg == -2){
alert('삭제 권한이 없습니다.');
} else {
//alert('삭제중 오류가 발생하였습니다.\n'+msg);
alert('삭제중 오류가 발생하였습니다.');
}
},
error: function(jqXHR, textStatus, errorThrown){
alert("ajax error : " + textStatus + "\n" + errorThrown);
}
});
}
}
</script>
|
728x90
'Web 프로그램 > 테이블, 게시판, 검색' 카테고리의 다른 글
PHP 위지윅 에디터 파일 다운로드 (0) | 2023.07.02 |
---|---|
PHP 위지윅 에디터 글쓰기 DB 저장 처리 (0) | 2023.06.28 |
PHP 위지윅 에디터 글쓰기 기능 (0) | 2023.06.28 |
bootstrap4 paging with PHP (0) | 2022.02.27 |
XSS(cross-site scripting) filtering function in PHP (0) | 2018.05.01 |