본문이나 리스트에서 바로 내용 수정시 문자 발송하게 하기 문의 드립니다.

본문이나 리스트에서 바로 내용 수정시 문자 발송하게 하기 문의 드립니다.

QA

본문이나 리스트에서 바로 내용 수정시 문자 발송하게 하기 문의 드립니다.

본문

안녕하세요.
검색하여 아래와 같은 방법으로 본문-수정을 거치지 않고 내용 바로 수정가능하게 하려고 합니다.

 

1.
본문(view)에서 바로 수정.

view.skin.php에 아래 내용 추가

<?php
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가
if($wr_10){
 sql_query("update $write_table set wr_10='$wr_10' where wr_id='$wr_id'");
 $view['wr_10'] = $wr_10;
}
?>
<script>
$(function(){
  $("input:radio[name='wr_10']").click(function(){
   location.href="도메인/bbs/board.php?bo_table=<?php echo $bo_table?>&wr_id=<?php echo $wr_id?>&wr_10="+$(this).val();
  });
});
</script>
<input type="radio" name="wr_10" value="1" <?php echo ($wr_10 == "1" || $wr_10 == "") ? " checked" : "";?> class="frm_input0" id="wr_10"> 1
<input type="radio" name="wr_10" value="2" <?php echo ($wr_10 == "2") ? " checked" : "";?> class="frm_input0" id="wr_10"> 2
<input type="radio" name="wr_10" value="3" <?php echo ($wr_10 == "3") ? " checked" : "";?> class="frm_input0" id="wr_10"> 3

원하는대로 수정은 되고 있습니다.
그런데 기존에는 내용 수정을 하면 write_update.skin.php에 설정한대로 문자가 발송되는데, 
이렇게 수정하면 문자 발송이 안되네요. 
2.
리스트에서 바로 수정.
list.skin.php에 아래 내용 추가

<select name="wr_10" id="wr_10_<?php echo $i;?>" onchange="wr10_chk('<?php echo $i;?>','<?php echo $list[$i]['wr_id'];?>',this.value);">
    <option value="" >예약상태</option>
    <option value="1" <? if($list[$i]['wr_10'] == '1') echo " selected "; ?>>1</option>
    <option value="2" <? if($list[$i]['wr_10'] == '2') echo " selected "; ?>>2</option>
    <option value="3" <? if($list[$i]['wr_10'] == '3') echo " selected "; ?>>3</option>
</select>
<script>
 var wr10_chk = function(wr_num,wr_id,field) {
    $.ajax({
        type:"post",
        url:"<?php echo $board_skin_url;?>/list_up.php",
        data:
        {
            bo_table : g5_bo_table,
            wr_num : wr_num,
            wr_id : wr_id,
            wr_10 : field
        },
        dataType:"html",
        success:function(res){
            $("#wr_10_"+wr_num).val(res);
            if(res)
                alert(res+"(으)로 변경되었습니다");
            else
                alert("변경 실패");
        }
    });
}
</script>
 
list_up.php (게시판 스킨 폴더에 추가)
==========
<?php
include_once("./_common.php");
$write_table = $g5['write_prefix'].$_POST['bo_table'];
$sql = " update ".$write_table." set wr_10 = '".$_POST['wr_10']."' where wr_id = '".$_POST['wr_id']."' ";
sql_query($sql);
$sql = "select * from ".$write_table." where wr_id = '".$_POST['wr_id']."' ";
$row = sql_fetch($sql);
 
if($row['wr_10'])
  echo $row['wr_10'];
else
 echo '';

이것 역시 원하는대로 수정은 되고 있습니다. 
(단, 1번은 수정시 수정 내용이 바로 적용되는데, 이건 수정하고 새로고침해야 수정된 내용을 확인 할 수 있습니다.)

 

이것 역시 문자 발송이 안되서 list_up.php 내용하단에 write_update.skin.php 에 있는 문자 보내기 설정 내용을 넣었지만 역시나 작동을 하지 않습니다.

 

아래는 write_update.skin.php의 문자 보내기 부분입니다.


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

$wr_3 = "$tel1-$tel2-$tel3"; 
$sql3  = "update $write_table set wr_3 = '$wr_3' where wr_id = '$wr_id' ";
sql_query($sql3);
$wr_url = get_pretty_url($bo_table, $wr_id);
$wr_url = str_replace($bo_table, $bo_table . '1', $wr_url);
$sms_contents = "문자내용";
$sms_title = "타이틀;
$sms_title2 = "타이틀";
    
if ($wr_10 == "2") {
$sms_contents2 = "문자내용";
}
if ($wr_10 == "3") {
$sms_contents2 = "문자내용";
}
$receive_number = preg_replace("/[^0-9]/", "", $sms5['cf_phone']);  // 수신자번호
$send_number = preg_replace("/[^0-9]/", "", $sms5['cf_phone']); // 발신자번호
$receive_number2 = preg_replace("/[^0-9]/", "", $wr_3);  // 고객번호

if( $w=="" && !$is_admin ) {
    if ($config['cf_sms_use'] == 'icode')
    {
        if($config['cf_sms_type'] == 'LMS') {
            include_once(G5_LIB_PATH.'/icode.lms.lib.php');
            $port_setting = get_icode_port_type($config['cf_icode_id'], $config['cf_icode_pw']);
            // SMS 모듈 클래스 생성
            if($port_setting !== false) {
                $SMS = new LMS;
                $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);
                $strDest     = array();
                $strDest[]   = $receive_number;
                $strCallBack = $send_number;
                $strCaller   = iconv_euckr(trim($config['cf_title']));
                $strSubject  = iconv_euckr($sms_title);
                $strURL      = '';
                $strData     = iconv_euckr($sms_contents);
                $strDate     = '';
                $nCount      = count($strDest);
                $res = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);
                $SMS->Send();
                $SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
            }
        } else {
            include_once(G5_LIB_PATH.'/icode.sms.lib.php');
            $SMS = new SMS; // SMS 연결
            $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
            $SMS->Add($receive_number, $send_number, $config['cf_icode_id'], iconv_euckr(stripslashes($sms_contents)), "");
            $SMS->Send();
            $SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
        }
    }
        }
// 2, 3
if($w=="u" && $is_admin )  {
    if ($config['cf_sms_use'] == 'icode')
    {
        if($config['cf_sms_type'] == 'LMS') {
            include_once(G5_LIB_PATH.'/icode.lms.lib.php');
            $port_setting = get_icode_port_type($config['cf_icode_id'], $config['cf_icode_pw']);
            // SMS 모듈 클래스 생성
            if($port_setting !== false) {
                $SMS = new LMS;
                $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $port_setting);
                $strDest     = array();
                $strDest[]   = $receive_number2;
                $strCallBack = $send_number;
                $strCaller   = iconv_euckr(trim($config['cf_title']));
                $strSubject  = iconv_euckr($sms_title2);
                $strURL      = '';
                $strData     = iconv_euckr($sms_contents2);
                $strDate     = '';
                $nCount      = count($strDest);
                $res = $SMS->Add($strDest, $strCallBack, $strCaller, $strSubject, $strURL, $strData, $strDate, $nCount);
                $SMS->Send();
                $SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
            }
        } else {
            include_once(G5_LIB_PATH.'/icode.sms.lib.php');
            $SMS = new SMS; // SMS 연결
            $SMS->SMS_con($config['cf_icode_server_ip'], $config['cf_icode_id'], $config['cf_icode_pw'], $config['cf_icode_server_port']);
            $SMS->Add($receive_number2, $send_number, $config['cf_icode_id'], iconv_euckr(stripslashes($sms_contents2)), "");
            $SMS->Send();
            $SMS->Init(); // 보관하고 있던 결과값을 지웁니다.
        }
    }
            
        }

 

어떻게 해야 1번이나 2번 사용시 문자보내기가 가능할까요?
아시는 분 도움 주시면 정말 감사하겠습니다.

이 질문에 댓글 쓰기 :

답변 4

저기보면 문자 내용 이랑 그런거 한글로 써있는데 그대로 기재하면 될거에요

밑에 api 로 연결된 부분 기능은 냅두시구요~ 그대로 위에 변수에 기재만 하면되요

친절하신 답변 감사합니다.
write_update.skin.php 의
$wr_3 = "$tel1-$tel2-$tel3"; 부터 모든 내용을
list_up.php 하단에 넣었는데 작동이 안되더라고요.
오히려wr_3의 값이 삭제가 되어 버리고요.

$wr_3 = "번호"
임의로 "번호"에 핸드폰번호를 넣으라는 말씀이신가요?
저 번호가 수신번호라서 wr_3을 불러와야 하는 건데...

지금 write가 이런 구조로 되어 있습니다.
            <?php
            $wr_3 = explode("-",$write['wr_3']);
            $tel1 = $wr_3[0];
            $tel2 = $wr_3[1];
            $tel3 = $wr_3[2];
            ?>
            <tr>
                <th scope="row"><label for="wr_name">휴대전화<strong class="sound_only">필수</strong></label></th>
                <td><div class="d-md-none request"><label for="wr_name">휴대전화<strong class="sound_only">필수</strong></label></div>
                    <select name="tel1" id="tel1" class="frm_input required tel1" required>
                        <option value="010" <?=($tel1 == "010")?'selected':'';?>>010</option>
                    </select> -
                    <input name="tel2" class="frm_input tel2 required" type="text" maxlength="4" id="tel2" value="<?=$tel2?>"> -
                    <input name="tel3" class="frm_input tel2 required" type="text" maxlength="4" id="tel3" value="<?=$tel3?>">
                </td>
            </tr>

그리고...
가장 중요한건 $wr_3 = "010-XXXX-XXXX"이런식으로 임의로 숫자를 적어 놓으면 wr_3의 값이 임의로 적어 놓은 숫자로 바뀌기는 하는데,
문자는 역시나 발송이 되지 않고 있습니다.

이 글을 참고했고,
https://sir.kr/qa/494503
채택된 답변을 보면 그냥은 안되고 수정을 해야 하는거 같은데,
댓글과 같은 스타일로 수정을 해봐도 안되더라고요.
아마도 중간에 생략했다는 내용이 중요한듯한데, 제가 그걸 잘 몰라서...

친절하신 답변 감사합니다.
세크티님께서 처음 남겨주신 답변도 같은 내용인거 같은데,
그걸 어떤식으로 구현을 해야 하는지 모르겠어서 문의를 드렸습니다.
제가 링크로 남긴 곳의 댓글에 대략적인 방법이 있어서 따라해 봤지만 중간 내용이 생략되어 있어서 실행이 안되더라고요.
일단 다시한번 해보겠습니다.

계속 시간내주셔서 감사합니다.
새로 댓글에 첨부한 화면처럼
wr_num, wr_id, wr_10값은 가져오는 걸로 보여지고 나머지는 이전화 동일합니다.

참고했던 링크의 댓글 보고 이런식으로 해보기도 했지만 아무런 변화는 없고요.
$wr_10 = $row['wr_10'];
$wr_3 = $row['$wr_3'];
$wr_name = $row['$wr_name'];

네~ 아이코드가 답답한게 매뉴얼이 없다보니~ 이게 api 에서도 에러코드를 나와야지 확인 가능하거든요
만약에 저 변수들 제대로 입력해서도 문제가 된다면 api를 바꾸던지 해야되요

결국 실패했습니다.
그리고 지금보니 list_up.php에 문자 관련 소스 넣고
번호, 제목, 내용 등 임의로 넣어도 문자 발송자체가 안되고 있네요.
쩝... 그냥 포기해야겠습니다.

write_update.skin.php은 수정페이지서 수정했을때만 실행됩니다.

write_update.skin.php의 내용을 함수로 만들어서 wr_10이 수정되는곳에 각각 넣는방식으로 변경하셔야합니다

1888667148_1705230972.7437.png

변수에서 값이 없는거에요
테스트 할때는 $wr_name = "테스트"; 이렇게 임의로 넣어서 하시고
외부에서 ajax 로 땡겨 올떄는 post로 해서 넘겨주면되요

1888667148_1705234938.9397.png

1888667148_1705234944.2574.png

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

회원로그인

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