테스트 사이트 - 개발 중인 베타 버전입니다

자바스크립트 confirm 에서 "예" 클릭시만 php 실행 시키려면 어떻게 해야 하나요!? 채택완료

lacomparte 7년 전 조회 2,506

신고 기능을 만들고자..scrap 을 보고 제작해 보았는데요.

테이블 만들고

쿼리까지 작성했는데요,

 

신고하기 버튼을 눌렀을 때

confirm 으로 한번 더 확인하고 싶은데요..

 

그냥 신고하기 버튼을 누르면 바로 DB에 들어가 버리네요-_-;;

쿼리문 위에 confirm 을 넣어도 마찬가지입니다;

 

 

report_popin.php 파일입니다.

</p>

<p><?php

include_once('./_common.php');</p>

<p>include_once(G5_PATH.'/head.sub.php');</p>

<p>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;

}</p>

<p>// 게시글 존재하는지

if(!$write['wr_id'])

    alert_close('게시글이 존재하지 않습니다.');</p>

<p>$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);</p>

<p>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;

}</p>

<p>

$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>";

    }</p>

<p>

    $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']));</p>

<p>

        $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);

    }

}</p>

<p>delete_cache_latest($bo_table);</p>

<p>echo <<<HEREDOC

<script>

    if (confirm('이 글을 정말 신고 하시겠습니까?'))

        alert('신고 되었습니다.');

    else

        window.close();

    window.close();

</script>

<noscript>

<p>이 글을 정말 신고하시겠습니까?.</p>

<a href="./report_popin_update.php">신고하기</a>

</noscript>

HEREDOC;

?>

 </p>

<p>

 

report_popin.skin.php스킨파일입니다.

</p>

<p><?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가</p>

<p>// 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");</p>

<p>$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);</p>

<p>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;

}</p>

<p>?></p>

<p><!-- 신고 시작 { -->

<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=""></p>

<p>        <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');</p>

<p>            var rp_reason = $(this).val();

            $('input[name="rp_reason"]').val(rp_reason);

        });</p>

<p>        $('#freportpopin').submit(function(){

            if ($('.btn_reason').hasClass('selected'))

            {

                ;

            } else {

                alert("신고 사유를 선택해 주세요.");

                return false;

            }</p>

<p>            if ($('.selected').length > 1)

            {

                alert("신고 사유를 1개만 선택해 주세요");

                $('.btn_reason').removeClass('selected');

                return false;

            }</p>

<p>        });

    });</p>

<p></script></p>

<p>

 

 

bbs 파일입니다

</p>

<p><?php

include_once('./_common.php');</p>

<p>include_once(G5_PATH.'/head.sub.php');</p>

<p>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;

}</p>

<p>echo <<<HEREDOC

<script>

    if (window.name != 'win_report') {

        alert('올바른 방법으로 사용해 주십시오.');

        window.close();

    }

</script>

HEREDOC;</p>

<p>if ($write['wr_is_comment'])

    alert_close('코멘트는 신고 할 수 없습니다.');</p>

<p>$wr = get_write($write_table, $wr_id);

if($wr['mb_id'] == $member['mb_id']){

    alert_close('자신의 글은 신고할 수 없습니다.');

}</p>

<p>$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);</p>

<p>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;

}</p>

<p>$report_skin_path = G5_SKIN_PATH.'/report/basic';

include_once($report_skin_path.'/report_popin.skin.php');</p>

<p>include_once(G5_PATH.'/tail.sub.php');

?>

 </p>

<p>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
7년 전

신고하기 버튼이 submit으로 되어 있어서 그런것 같은데요. 

버튼으로 만드시고 스크립트쪽에서 submit 보내셔야 할 것 같습니다

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

l
lacomparte
7년 전
[code]
$('.btn_submit').click(function(){
if ($('.selected').length > 1) {
alert("신고 사유를 1개만 선택해 주세요");
$('.btn_reason').removeClass('selected');
return false;
} else if ($('.selected').length < 1) {
alert("신고 사유를 선택해 주세요")
return false;
} else {
if (confirm("정말로 신고하시겠습니까?")) {
$('#freportpopin').submit();
alert("신고 되었습니다.");

return true;
window.close();
}
window.close();
}
});
[/code]

이렇게 처리 해도 될까요?
report_popin_update.php 에는
마지막 스크립트를
[code]
echo <<<HEREDOC
<script>
window.close();
</script>
HEREDOC;
[/code]

이렇게 수정했습니다.

동작은 정상작동합니다. 감사합니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인