자바스크립트 confirm 에서 "예" 클릭시만 php 실행 시키려면 어떻게 해야 하나요!?
본문
신고 기능을 만들고자..scrap 을 보고 제작해 보았는데요.
테이블 만들고
쿼리까지 작성했는데요,
신고하기 버튼을 눌렀을 때
confirm 으로 한번 더 확인하고 싶은데요..
그냥 신고하기 버튼을 누르면 바로 DB에 들어가 버리네요-_-;;
쿼리문 위에 confirm 을 넣어도 마찬가지입니다;
report_popin.php 파일입니다.
<?php
include_once('./_common.php');
include_once(G5_PATH.'/head.sub.php');
if (!$is_member || $member['mb_level'] <= 1)
{
$href = './login.php?'.$qstr.'&url='.urlencode('./board.php?bo_table='.$bo_table.'&wr_id='.$wr_id);
echo '<script> alert_close(\'회원만 접근 가능합니다.\'); top.location.href = \''.str_replace('&', '&', $href).'\'; </script>';
exit;
}
// 게시글 존재하는지
if(!$write['wr_id'])
alert_close('게시글이 존재하지 않습니다.');
$sql = " select count(*) as cnt from g5_report
where rp_udt_id = '{$member['mb_id']}'
and rp_board = '$bo_table'
and rp_wr_id = '$wr_id' ";
$row = sql_fetch($sql);
if ($row['cnt'])
{
echo '
<script>
if (confirm(\'이미 신고하신 글 입니다.\'))
window.close();
else
window.close();
</script>
<noscript>
<p>이미 신고하신 글 입니다.</p>
<a href="./board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'">돌아가기</a>
</noscript>';
exit;
}
$rp_reason = trim($_POST['rp_reason']);
$rp_reason_txt = trim($_POST['rp_reason_txt']);
// 신고할 권한이 있고 게시글이 존재한다면
if ($rp_reason && ($member['mb_level'] > 1))
{
function console_log($data){
echo "<script>console.log('PHP_Console:".$data."');</script>";
}
$wr = get_write($write_table, $wr_id);
// 원글이 존재한다면
if ($wr['wr_id'])
{
$rpt_table = 'g5_report';
$rp_rpt_id = $member['mb_id'];
$rp_rpt_name = addslashes(clean_xss_tags($board['bo_use_name'] ? $member['mb_name'] : $member['mb_nick']));
$sql = " insert into $rpt_table
set rp_wr_id = '{$wr['wr_id']}',
rp_board = '$bo_table',
rp_wr_subject = '{$wr['wr_subject']}',
rp_wr_content = '{$wr['wr_content']}',
rp_udt_id = '{$wr['mb_id']}',
rp_udt_name = '{$wr['wr_name']}',
rp_rpt_id = '{$member['mb_id']}',
rp_rpt_name = '{$member['mb_nick']}',
rp_ip = '{$_SERVER['REMOTE_ADDR']}',
rp_wr_datetime = '{$wr['wr_datetime']}',
rp_datetime = '".G5_TIME_YMDHIS."',
rp_ca_name = '{$wr['ca_name']}',
rp_reason = '$rp_reason',
rp_reason_text = '$rp_reason_txt',
rp_wr_link1 = '{$wr['wr_link1']}',
rp_wr_link2 = '{$wr['wr_link2']}',
rp_wr_file = '{$wr['wr_file']}',
rp_1 = '$rp_1',
rp_2 = '$rp_2',
rp_3 = '$rp_3',
rp_4 = '$rp_4',
rp_5 = '$rp_5',
rp_6 = '$rp_6',
rp_7 = '$rp_7',
rp_8 = '$rp_8',
rp_9 = '$rp_9',
rp_10 = '$rp_10'";
sql_query($sql);
}
}
delete_cache_latest($bo_table);
echo <<<HEREDOC
<script>
if (confirm('이 글을 정말 신고 하시겠습니까?'))
alert('신고 되었습니다.');
else
window.close();
window.close();
</script>
<noscript>
<p>이 글을 정말 신고하시겠습니까?.</p>
<a href="./report_popin_update.php">신고하기</a>
</noscript>
HEREDOC;
?>
report_popin.skin.php스킨파일입니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
$report_skin_url = G5_SKIN_URL.'/report/basic';
add_stylesheet('<link rel="stylesheet" href="'.$report_skin_url.'/style.css">', 0);
$today = date("Y-m-d H:i:s");
$sql = " select count(*) as cnt from g5_report
where rp_udt_id = '{$member['mb_id']}'
and rp_board = '$bo_table'
and rp_wr_id = '$wr_id' ";
$row = sql_fetch($sql);
if ($row['cnt'])
{
echo '
<script>
if (confirm(\'이미 신고하신 글 입니다.\'))
window.close();
else
window.close();
</script>
<noscript>
<p>이미 신고하신 글 입니다.</p>
<a href="./board.php?bo_table='.$bo_table.'&wr_id='.$wr_id.'">돌아가기</a>
</noscript>';
exit;
}
?>
<!-- 신고 시작 { -->
<div id="report_do" class="new_win mbskin">
<header id="win_title">
<img src="<?php echo G5_IMG_URL ?>/logo_60.png" alt="<?php echo $config['cf_title']; ?>" class="win_logo">
<h1>신고하기</h1>
<button type="button" onclick="window.close();" class="win_close">
<img src="<?php echo G5_IMG_URL ?>/btn_close.png" alt="닫기">
</button>
</header>
<form id="freportpopin"name="freportpopin" action="./report_popin_update.php" method="post">
<input type="hidden" name="rp_wr_id" value="<?php echo $wr_id ?>">
<input type="hidden" name="rp_board" value="<?php echo $bo_table ?>">
<input type="hidden" name="rp_wr_subject" value="<?php echo $write['wr_subject'] ?>">
<input type="hidden" name="rp_wr_content" value="<?php echo strip_tags(trim($write['wr_content'])) ?>">
<input type="hidden" name="rp_udt_id" value="<?php echo $write['mb_id'] ?>">
<input type="hidden" name="rp_udt_name" value="<?php echo $write['wr_name'] ?>">
<input type="hidden" name="rp_rpt_id" value="<?php echo $member['mb_id'] ?>">
<input type="hidden" name="rp_rpt_name" value="<?php echo $member['mb_nick'] ?>">
<input type="hidden" name="rp_ip" value="<?php echo $write['wr_ip'] ?>">
<input type="hidden" name="rp_wr_datetime" value="<?php echo $write['datetime']; ?>">
<input type="hidden" name="rp_datetime" value="<?php echo $today; ?>">
<input type="hidden" name="rp_ca_name" value="<?php echo $write['ca_name']; ?>">
<input type="hidden" name="bo_table" value="<?php echo $bo_table ?>">
<input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
<input type="hidden" name="rp_reason" value="">
<div class="tbl_frm01 tbl_wrap report_wrap">
<h2>
<?php echo $write['ca_name'].$write['wr_subject']; // 신고 게시글 제목 ?>
</h2>
<div class="rpt_reason">
<p>※ 아래의 신고 사유를 클릭하여 선택해 주세요</p>
<ul>
<li>
<button type="button" class="btn_reason" value="회원비난/비하">회원비난/비하</button>
</li>
<li>
<button type="button" class="btn_reason" value="욕설/비속어">욕설/비속어</button>
</li>
<li>
<button type="button" class="btn_reason" value="타회원 권리침해">타회원 권리침해</button>
</li>
<li>
<button type="button" class="btn_reason" value="사기/회원기만">사기/회원기만</button>
</li>
<li>
<button type="button" class="btn_reason" value="회원정보 무단수집">회원정보 무단수집</button>
</li>
<li>
<button type="button" class="btn_reason" value="비인가 회원모집">비인가 회원모집</button>
</li>
<li>
<button type="button" class="btn_reason" value="비매너 게시글">비매너 게시글</button>
</li>
<li>
<button type="button" class="btn_reason" value="허위사실 유포">허위사실 유포</button>
</li>
<li>
<button type="button" class="btn_reason" value="이용방해·선동">이용방해·선동</button>
</li>
<li>
<button type="button" class="btn_reason" value="협박/스토킹">협박/스토킹</button>
</li>
<li>
<button type="button" class="btn_reason" value="불쾌감 조성">불쾌감 조성</button>
</li>
<li>
<button type="button" class="btn_reason" value="도배글">도배글</button>
</li>
<li>
<button type="button" class="btn_reason" value="운영진 사칭">운영진 사칭</button>
</li>
<li>
<button type="button" class="btn_reason" value="게시판 용도 부적절">게시판 용도 부적절</button>
</li>
<li>
<button type="button" class="btn_reason" value="종교분쟁글">종교분쟁글</button>
</li>
<li>
<button type="button" class="btn_reason" value="정치분쟁글">정치분쟁글</button>
</li>
<li>
<button type="button" class="btn_reason" value="외설적 표현물">외설적 표현물</button>
</li>
<li>
<button type="button" class="btn_reason" value="청소년 유해매체물">청소년 유해매체물</button>
</li>
<li>
<button type="button" class="btn_reason" value="혐오물">혐오물</button>
</li>
<li>
<button type="button" class="btn_reason" value="저작물">저작물</button>
</li>
<li>
<button type="button" class="btn_reason" value="무단광고/홍보">무단광고/홍보</button>
</li>
<li>
<button type="button" class="btn_reason" value="도박·마약권장">도박·마약권장</button>
</li>
<li>
<button type="button" class="btn_reason" value="선교/포교">선교/포교</button>
</li>
<li>
<button type="button" class="btn_reason" value="성별갈등 조장">성별갈등 조장</button>
</li>
<li>
<button type="button" class="btn_reason" value="성희롱">성희롱</button>
</li>
<li>
<button type="button" class="btn_reason" value="지역감정 유발">지역감정 유발</button>
</li>
<li>
<button type="button" class="btn_reason" value="특정집단 비하">특정집단 비하</button>
</li>
<li>
<button type="button" class="btn_reason" value="기타 사유">기타 사유</button>
</li>
</ul>
</div>
<div class="rpt_reason_txt">
<textarea name="rp_reason_txt" cols="4" placeholder="기타 추가할 내용을 작성해주세요." id="rp_reason_txt"></textarea>
</div>
<p class="rpt_txt">
· 정상적인 게시물을 허위신고한 경우 신고자가 제재를 받을 수 있습니다.
</p>
<p class="rpt_txt">
· 신고사유를 보다 자세히 작성해주시면 운영진이 올바른 판단을 하는데 큰 도움이 됩니다.
</p>
<div class="win_btn">
<input type="submit" value="신고하기" class="btn_submit">
<button type="button" onclick="window.close();" class="btn_close">취소</button>
</div>
</div>
</form>
</div>
<!-- } 스크랩 끝 -->
<script type="text/javascript">
$(document).ready(function(){
$('.btn_reason').click(function(){
$('.btn_reason').removeClass('selected');
$(this).addClass('selected');
var rp_reason = $(this).val();
$('input[name="rp_reason"]').val(rp_reason);
});
$('#freportpopin').submit(function(){
if ($('.btn_reason').hasClass('selected'))
{
;
} else {
alert("신고 사유를 선택해 주세요.");
return false;
}
if ($('.selected').length > 1)
{
alert("신고 사유를 1개만 선택해 주세요");
$('.btn_reason').removeClass('selected');
return false;
}
});
});
</script>
bbs 파일입니다
<?php
include_once('./_common.php');
include_once(G5_PATH.'/head.sub.php');
if ($is_guest) {
$href = './login.php?'.$qstr.'&url='.urlencode('./board.php?bo_table='.$bo_table.'&wr_id='.$wr_id);
$href2 = str_replace('&', '&', $href);
echo <<<HEREDOC
<script>
alert('회원만 접근 가능합니다.');
opener.location.href = '$href2';
window.close();
</script>
<noscript>
<p>회원만 접근 가능합니다.</p>
<a href="$href">로그인하기</a>
</noscript>
HEREDOC;
exit;
}
echo <<<HEREDOC
<script>
if (window.name != 'win_report') {
alert('올바른 방법으로 사용해 주십시오.');
window.close();
}
</script>
HEREDOC;
if ($write['wr_is_comment'])
alert_close('코멘트는 신고 할 수 없습니다.');
$wr = get_write($write_table, $wr_id);
if($wr['mb_id'] == $member['mb_id']){
alert_close('자신의 글은 신고할 수 없습니다.');
}
$sql = " select count(*) as cnt from g5_report
where rp_rpt_id = '{$member['mb_id']}'
and rp_board = '$bo_table'
and rp_wr_id = '$wr_id' ";
$row = sql_fetch($sql);
if ($row['cnt']) {
echo <<<HEREDOC
<script>
alert('이미 신고하신 글 입니다.');
window.close();
</script>
<noscript>
<p>이미 신고하신 글 입니다.</p>
<a href="./board.php?bo_table={$bo_table}&wr_id=$wr_id">돌아가기</a>
</noscript>
HEREDOC;
exit;
}
$report_skin_path = G5_SKIN_PATH.'/report/basic';
include_once($report_skin_path.'/report_popin.skin.php');
include_once(G5_PATH.'/tail.sub.php');
?>
답변을 작성하시기 전에 로그인 해주세요.