Php 전송관련 질문입니다

Php 전송관련 질문입니다

QA

Php 전송관련 질문입니다

본문

기존에 있던 홈페이지에서 가지고온 스킨입니다.

 

손댄건 CSS 정도 이고 여분필드 추가한정도 입니다.

 

간편상담 내용 입력후 상담 신청누르면 접수 되었다는 문구는 뜨는데

 

막상 관리자 최근글에 보면 제목도 없고 내용도 등록이 안되어있는 현상이 발생합니다.

 

게시글 전송이 안되는걸로 보아 [스킨게시판]/write.skin.php 가 문제인거 같긴한데...

 

입사 이제 2주차.... html만 배우고 하려하니 ㅠㅠ 어렵네요

 

어디를 손봐야 제대로 전송이 될까요 관리자 최신글에서는 성함+"님의 간편상담 요청" 이런 형식으로

 

보게 하고 싶습니다

 


<!-- s: sub-visual subbg-1 -->
<!-- <div class="sub-visual subbg-4">
    <p class="p-title">고객센터</p>
    <p class="p-txt"></p>
</div> -->
<!-- e: sub-visual subbg-1 -->
<!-- s: sub-navigation -->
<!-- <div class="sub-navigation">
    <div class="boxy-warp">
        <?php
        include_once(G5_THEME_PATH.'/lsnb_include/l_snb4.php');
        ?>
    </div>
</div> -->
<!-- e: sub-navigation -->
<div class="boxy-warp sub-contents sub-page">
    <div class="r-sub-con">
        <!-- <div class="top-nav-box">
            <h2>
                <span title="법률자료실">법률자료실</span>
            </h2>
            <div class="r-con">
                <i class="fas fa-home"></i>
                <i class="fas fa-chevron-right"></i>
                <span class="depth-1">고객센터</span>
                <i class="fas fa-chevron-right"></i>
                <span class="depth-2">법률자료실</span>
            </div>
        </div> -->
        <?php
        if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
        // add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨
        $wr_1 = "$hp1-$hp2-$hp3";
        ?>
        <script type="text/javascript">
        function checkFrm(obj) {
         if(obj.wr_6.checked == false) {
            alert('개인정보 활동동의에 체크해주세요.');
            obj.wr_6.focus();
            return false;
         }
        }
        </script>
        <style type="text/css">
        
        .ed {border: 2px solid #cccccc;
                                background-color: #ededec; font-family:돋움;}
        .style1 {
            color: #FF0000;
            font-size: 14px;
            font-weight: bold;
        }
        .style2 {color: #000000}
        .style3 {color: #666666}
    
        </style>

        <section id="bo_w">
                
                <span class="style1">
                <!-- 게시물 작성/수정 시작 { -->
                </span>
                <form name=frm method=post action="<?=$g5['path']?>/bbs/write_update.php" onsubmit="return checkFrm(this);">
                <input type=hidden name=w        value="">
                <input type=hidden name=bo_table value="quick">
                <input type=hidden name=wr_id    value="">
                <input type=hidden name=sca      value="">
                <input type=hidden name=sfl      value="">
                <input type=hidden name=stx      value="">
                <input type=hidden name=spt      value="">
                <input type=hidden name=sst      value="">
                <input type=hidden name=sod      value="">
                <input type=hidden name=s    value="s">
                <input type=hidden name=wr_subject  value="빠른 상담 신청">
                <input type=hidden name=wr_content  value="빠른 상담 신청">
                        <input type=hidden name="wr_1"  value="">
                
                <?php
                $option = '';
                $option_hidden = '';
                if ($is_notice || $is_html || $is_secret || $is_mail) {
                        $option = '';
                        if ($is_notice) {
                                $option .= "\n".'<input type="checkbox" id="notice" name="notice" value="1" '.$notice_checked.'>'."\n".'<label for="notice">공지</label>';
                        }
                        if ($is_html) {
                                if ($is_dhtml_editor) {
                                        $option_hidden .= '<input type="hidden" value="html1" name="html">';
                                } else {
                                        $option .= "\n".'<input type="checkbox" id="html" name="html" onclick="html_auto_br(this);" value="'.$html_value.'" '.$html_checked.'>'."\n".'<label for="html">html</label>';
                                }
                        }
                        if ($is_secret) {
                                if ($is_admin || $is_secret==1) {
                                        $option .= "\n".'<input type="checkbox" id="secret" name="secret" value="secret" '.$secret_checked.'>'."\n".'<label for="secret">비밀글</label>';
                                } else {
                                        $option_hidden .= '<input type="hidden" name="secret" value="secret">';
                                }
                        }
                        if ($is_mail) {
                                $option .= "\n".'<input type="checkbox" id="mail" name="mail" value="mail" '.$recv_email_checked.'>'."\n".'<label for="mail">답변메일받기</label>';
                        }
                }
                echo $option_hidden;
                ?>
                <div class="tbl_frm01 tbl_wrap">
                        <table>
                        <tbody>
                        
                        <?php if ($is_admin) { ?>
                            <?php } ?>
                     
                        
                        <?php for ($i=1; $is_link && $i<=G5_LINK_COUNT; $i++) { ?>
                        <?php } ?>
                        
                        <!--
                        <?php if ($option) { ?>
                        <tr>
                                <th scope="row">옵션</th>
                                <td><?php echo $option ?></td>
                        </tr>
                        <?php } ?>
                        -->
                        <?php if ($is_category) { ?>
                        <?php } ?>
                        
                        <tr>
                            <th scope="row"><div align="center">
                                    <label for="wr_name">이름<strong class="sound_only">필수</strong></label>
                            </div></th>
                            <td class="wr_name">
                                <input type="text" name="wr_name" value="<?php echo $name ?>" id="wr_name2" required class="frm_input required" size="15" maxlength="15">            </td>
                        </tr>
                        <tr>
                                <th scope="row"><div align="center">
                                    <label for="wr_name">휴대폰<strong class="sound_only">필수</strong></label>
                                </div></th>
                            <td class="wr_name">
                        <select name="wr_7" itemname="휴대폰" required >
                            <option value="010">010</option>
                            <option value="011">011</option>
                            <option value="016">016</option>
                            <option value="017">017</option>
                            <option value="018">018</option>
                            <option value="019">019</option>
                         </select>
                        <input name="wr_8" type="text" required class='ed' style="width:35px;border:1px solid #ddd;padding: 2px;" maxlength="4" itemname="휴대폰"/>
                        <input name="wr_9" type="text" required class='ed' style="width:35px;border:1px solid #ddd;padding: 2px;" maxlength="4" itemname="휴대폰"/></td>
                        </tr>
         <tr>
                                <th scope="row"><div align="center">
                                    <label for="wr_name">메모<strong class="sound_only">필수</strong></label>
                                </div></th>
                                                        <td class="wr_content">
                                        <?php if($write_min || $write_max) { ?>
                                        <!-- 최소/최대 글자 수 사용 시 -->
                                        <p id="char_count_desc">이 게시판은 최소 <strong><?php echo $write_min; ?></strong>글자 이상, 최대 <strong><?php echo $write_max; ?></strong>글자 이하까지 글을 쓰실 수 있습니다.</p>
                                        <?php } ?>
                                        <?php echo $editor_html; // 에디터 사용시는 에디터로, 아니면 textarea 로 노출 ?>
                                        <?php if($write_min || $write_max) { ?>
                                        <!-- 최소/최대 글자 수 사용 시 -->
                                        <div id="char_count_wrap"><span id="char_count"></span>글자</div>
                                        <?php } ?>
                                </td>
                        </tr>
                        <!-- <tr align="center">
                        <td height="57" colspan="2"><br><span class="style2"> *소중한 고객님의 정보는 상담 및 가입을 위해서만 사용됩니다.</span><br><br>
                                        <input name="wr_6" type="checkbox" value="<?=$write[wr_6]?>" required >
                                        <span class="style2">개인정보 활용동의</span>
                                <a href="../privacy.html" target="_blank"><img src="../img/privacy.gif" width="50" height="16" border="0"></a></td>
                        </tr> -->
                         </tbody>
                        </table>
                    </div>
                    <div class="btn_confirm">
                            <input type="submit" value="작성완료" id="btn_submit" accesskey="s" class="btn_submit">
                            <a style="padding:12px;" href="javascript:history.back();" class="btn_cancel">취소</a>
                    </div>
                </form>
             
        </section>
        <!-- } 게시물 작성/수정 끝 -->
    </div>
</div>

 

이 질문에 댓글 쓰기 :

답변 3

그누보드 버전은 최근 1~2년것 같은데 form 같은건 옛날것 같아요.

form 부분 시작을

    <form name="fwrite" id="fwrite" action="<?php echo $action_url ?>" onsubmit="return fwrite_submit(this);" method="post" enctype="multipart/form-data" autocomplete="off" style="width:<?php echo $width; ?>">
    <input type="hidden" name="uid" value="<?php echo get_uniqid(); ?>">
    <input type="hidden" name="w" value="<?php echo $w ?>">
    <input type="hidden" name="bo_table" value="quick">
    <input type="hidden" name="wr_id" value="<?php echo $wr_id ?>">
    <input type="hidden" name="sca" value="<?php echo $sca ?>">
    <input type="hidden" name="sfl" value="<?php echo $sfl ?>">
    <input type="hidden" name="stx" value="<?php echo $stx ?>">
    <input type="hidden" name="spt" value="<?php echo $spt ?>">
    <input type="hidden" name="sst" value="<?php echo $sst ?>">
    <input type="hidden" name="sod" value="<?php echo $sod ?>">
    <input type="hidden" name="page" value="<?php echo $page ?>">

 

이렇게 바꿔보시고

 

위에 붉은색으로 칠한 테이블로 값이 넘어갑니다. 올려주신  form 기준 g5_write_quick이네요.

 

하단에 </form>

아래에

 

    <script>
    <?php if($write_min || $write_max) { ?>
    // 글자수 제한
    var char_min = parseInt(<?php echo $write_min; ?>); // 최소
    var char_max = parseInt(<?php echo $write_max; ?>); // 최대
    check_byte("wr_content", "char_count");

    $(function() {
        $("#wr_content").on("keyup", function() {
            check_byte("wr_content", "char_count");
        });
    });

    <?php } ?>
    function html_auto_br(obj)
    {
        if (obj.checked) {
            result = confirm("자동 줄바꿈을 하시겠습니까?\n\n자동 줄바꿈은 게시물 내용중 줄바뀐 곳을<br>태그로 변환하는 기능입니다.");
            if (result)
                obj.value = "html2";
            else
                obj.value = "html1";
        }
        else
            obj.value = "";
    }

    function fwrite_submit(f)
    {
        <?php echo $editor_js; // 에디터 사용시 자바스크립트에서 내용을 폼필드로 넣어주며 내용이 입력되었는지 검사함   ?>

        var subject = "";
        var content = "";
        $.ajax({
            url: g5_bbs_url+"/ajax.filter.php",
            type: "POST",
            data: {
                "subject": f.wr_subject.value,
                "content": f.wr_content.value
            },
            dataType: "json",
            async: false,
            cache: false,
            success: function(data, textStatus) {
                subject = data.subject;
                content = data.content;
            }
        });

        if (subject) {
            alert("제목에 금지단어('"+subject+"')가 포함되어있습니다");
            f.wr_subject.focus();
            return false;
        }

        if (content) {
            alert("내용에 금지단어('"+content+"')가 포함되어있습니다");
            if (typeof(ed_wr_content) != "undefined")
                ed_wr_content.returnFalse();
            else
                f.wr_content.focus();
            return false;
        }

        if (document.getElementById("char_count")) {
            if (char_min > 0 || char_max > 0) {
                var cnt = parseInt(check_byte("wr_content", "char_count"));
                if (char_min > 0 && char_min > cnt) {
                    alert("내용은 "+char_min+"글자 이상 쓰셔야 합니다.");
                    return false;
                }
                else if (char_max > 0 && char_max < cnt) {
                    alert("내용은 "+char_max+"글자 이하로 쓰셔야 합니다.");
                    return false;
                }
            }
        }

        <?php echo $captcha_js; // 캡챠 사용시 자바스크립트에서 입력된 캡챠를 검사함  ?>

        document.getElementById("btn_submit").disabled = "disabled";

        return true;
    }
    </script>

 

이렇게 끝납니다.

 

확인해보세요~

1) form 내용이 서브밋 되어 처리되는 파일은 /bbs/write_update.php 입니다.

/bbs/write_update.php 의 상단에 다음의 코드를 넣어 form 값이 정상적으로 넘어갔는지 체크해보면 도움이 될 수 있습니다.

 

print_r2($_POST);

exit;

 

문제가 될만한 부분에 array 인 경우에는 print_r() 또는 print_r2() 함수로 출력하여 내용이 정상적으로 전달되고 있는지... array 가 아닌 경우에는 echo $sql; 구문 등으로 어떤 부분에서 문제가 생기고 있는지부터.. 범위를 점점 줄여나가는 방식으로 접근하는 것이 좋습니다. 

 

"어떤 부분에서 문제가 있는 것 같은데.." 식으로 추상적으로 찾으면.. 며칠/몇달이 걸릴 수도 있습니다.

 

2) 메인 페이지의 빠른상담신청의 Form 과 서브 페이지의 빠른상담신청의 Form 이 서로 다릅니다.

상담 테이블이 'online' 인지, 'quick' 인지..

token 정보는 넘기는 것인지.. 안넘겨도 되는 것인지.. 등을 살펴봐야 될 듯 합니다.

/bbs/write_update.php 에서 디버깅용 코드를 넣어가면서 echo $~; exit; 확인하면 됩니다.

 

 

* 메인

<form name="frm" method="post" action="/bbs/write_update.php" onsubmit="return checkFrm(this);">
<input type="hidden" name="token" value="669cd36aafb9eb8f1ea0d60635933652">
<input type="hidden" name="bo_table" value="online">
<input type="hidden" name="wr_8" value="">

~

 

* 서브

<form name=frm method=post action="<?=$g5['path']?>/bbs/write_update.php" onsubmit="return checkFrm(this);">
<input type=hidden name=w        value="">
<input type=hidden name=bo_table value="quick">
~`

답변을 작성하시기 전에 로그인 해주세요.
전체 59,519
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT