php 휴대전화로

php 휴대전화로

QA

php 휴대전화로

답변 1

본문

안녕하세요 고수님들

자문을 구하고자 글을 올립니다1794740244_1616458234.3183.png1794740244_1616458242.0664.png

위 사진처럼 작업을 하고싶은데요

동적리스트에서 해당값을 select 후 content 입력 및 send 처리를하면 휴대전화로 sms가 발송되는 페이지인데요

제가 구현을 하고싶은데 사진의 도메인에서 오픈소스를 받아서 진행하고있는데1794740244_1616458365.5128.png

동적리스트는 필요없어서 필요한 리스트만 구현해놓은 상황입니다.

왼쪽상단에 검색창도 한번 해봤구요

저는 자그마한 웹에이전시 회사다니는 3주된 웹개발자입니다..

잘모르고 부족하니 조금만 자세하게 상세하게 알 수 있게끔 답변해주시면 감사하겠습니다

아래에 소스 남기겠습니다

 

 

list code


<?
include_once('./_common.php');
    $sql_order = " order by SEQ desc";

    if($sfl == "PRICE"){
        $search_common .= " and `PRICE` like '%".$keyword."%' ";
        $qstr .= "&sfl=PRICE";
    }
    if($sfl == "PRICE_TIME"){
    $search_common .= " and `PRICE_TIME` like '%".$keyword."%' ";
    $qstr .= "&sfl=PRICE_TIME";
}
?>
<form method="GET" name="searchForm" action="<?=$PHP_SELF;?>" style="float:left;" class="local_sch01 local_sch">
    <select name="sfl" id="sfl" style="padding : 3px;">
        <option value="PRICE" <? if($_GET['sfl'] == "PRICE") echo "selected"; ?>>금액</option>
        <option value="PRICE_TIME" <? if($_GET['sfl'] == "PRICE_TIME") echo "selected"; ?>>납기일</option>
    </select>
    <input name="keyword" type="text" class="frm_input" value="<?=$_GET['keyword'];?>" style="width:200px;" placeholder="검색어">
    <input type="submit" value="검색" class="btn_submit">
</form>
<?
    $sql = "select * from domains_list where `CHECK` ='ON'" ;
    $result = sql_query($sql);
    $opt_string="";
while ($row = sql_fetch_array($result)){
    $opt_string.="<option >".$row['NAME']." , ".$row['SITE_OWNER']." ,".$row['SITE_OWNER_PHN']." , ".$row['SITE_OWNER_2'].", ".$row['SITE_OWNER_PHN_2']."</option>";
}
$params = "siteCode=".$siteCode."&subCode=".$subCode;
?>
    <form name="sms_frm" method="post" action="./mb_sms/sms_action.php" onsubmit="return CheckSendSMS();">
    <input type="hidden" name="siteCode" value="<?=$siteCode?>" />
    <input type="hidden" name="subCode" value="<?=$subCode?>" />
    <input type="hidden" name="mode" value="list" />
    <input type="hidden" name="sms_byte" id="sms_byte" value="0" />
    <input type="hidden" name="sms_code" id="sms_code" value="<?=$sms_code?>" />
    <input type="hidden" name="receiver_cnt" id="receiver_cnt" value="<?=$receiver_cnt?>" />
    <table width="100%" cellpadding="0" cellspacing="0" border="0">
        <tr>
            <td width="170">
                <table width="100%" cellpadding="0" cellspacing="0" border="0">
                    <tr><td height="52" style="background:url('/src/img/smsbg_01.gif') no-repeat;"> </td></tr>
                    <tr>
                        <td height="183" style="padding:0 15px 0 15px; background:url('/src/img/smsbg_02.gif') repeat-y;">
                            <div style="height:160px; background-color:#FFFFFF;">
                                <textarea name="sms_txt" id="sms_txt" rows="12" cols="20" style="width:140px; height:153px; overflow:hidden; border:none;" onkeydown="CheckSMSBytes(this);" onkeyup="CheckSMSBytes(this);" onfocus="FocusInputTxt(this);" onblur="BlurInputTxt(this);" isDefault="true">전송할 내용을 입력해 주세요.</textarea>
                            </div>
                            <div style="height:23px; background-color:#FFFFFF; text-align:center;">
                                <input type="submit" name="sBtn" value="전송" class="hand" />
                            </div>
                        </td>
                    </tr>
                    <tr><td height="52" style="background:url('') no-repeat;"> </td></tr>
                </table>
            </td>
            <td style="padding-left:15px;" valign="top" width=360>
                <select multiple name="receiver_list[]" id="receiver_list" style="width:350px; height:247px;"><?=$opt_string?></select><br />
                <button type='button' class='btn btn-sm btn-danger'  onclick="DeleteSelectedItem('');">삭제</button>
                <button type='button' class='btn btn-sm btn-danger'  onclick="DeleteSelectAll('');">전체삭제</button>
                <span id="send_total"><span>
            </td>
        </tr>
    </table>
    </form>
    <br />
 

 

 

sms_action code


<?
include_once('../_common.php');

$tbl = "inko_member_sms";

if($_POST){
    foreach($_POST as $key => $value){
        if(is_array($value)){
            foreach($value as $k => $v){ $value[$k] = F_Injection($v); }
        }else{ $_POST[$key] = F_Injection($value); }
    }
    $r_mode = $_POST['mode'];
    $r_siteCode = $_POST['siteCode'];
    $r_subCode = $_POST['subCode'];
    F_isNull($r_mode);
    F_isNull($r_siteCode);
    F_isNull($r_subCode);
    
    
    
    //리턴경로 설정
    $return_url = _ADMIN_."?siteCode=".$r_siteCode."&subCode=".$r_subCode;
    $r_ms_code = $_POST['sms_code'];
    $r_byte = (int)$_POST['sms_byte'];
    $r_cnt = $_POST['receiver_cnt'];
    $r_message = $_POST['sms_txt'];
    $r_tmp = array(); $i=0;
    foreach($_POST['receiver_list'] as $key => $value){
        $r_tmp[$i] = $value; $i++;
    }
    if(F_isblank($r_ms_code)){ F_goBack("발송 회원 구분이 넘어오지 않았습니다."); }
    if($r_byte < 1){ F_goBack("전송할 내용이 넘어오지 않았습니다."); }
    if(F_isblank($r_message)){ F_goBack("전송할 내용이 넘어오지 않았습니다."); }
    if($r_cnt < 1){ F_goBack("전송할 회원정보가 넘어오지 않았습니다."); }
    //한번에 전송가능한 최대 수 만큼 자르기(50명씩 자르기)
    $i=0;
    foreach($r_tmp as $key => $value){
        $k = $key+1;
        $tmp[$i][] = $value;
        if($k%50==0){ $i++; }
    }

    $sql = "SELECT * FROM `inko_site_config`";
    $inko_info = $db -> fetch($sql);
    $sms_userid = $inko_info["sc_sms_id"];
    $sms_passwd = $inko_info["sc_sms_pw"];
    $sms_sender = $inko_info["sc_adm_mobile"]; 

    $exc_time = time();
    $receiver = "";
    $total_cnt = 0;
    for($i=0; $i<count($tmp); $i++){     //50개씩 나눈것 합쳐서 문자 발송
        $sms_receiver = join(",", $tmp[$i]);
        $sms_message = urlencode($r_message);     //전송 메세지
        $sms_url = "/MSG/send/web_admin_send.htm?";
        $sms_url .= "userid=".$sms_userid."&passwd=".$sms_passwd."&sender=".$sms_sender."&receiver=".$sms_receiver;     //파라메터 설정
        $sms_url .="&message=".$sms_message."&encode=1";     //파라메터 설정
        $return_data = F_SendSMS($sms_url);
        $return_data = explode("|", $return_data);
        $result = $return_data[0];     //전송결과
        $send_no = $return_data[2];     //발송건수
        $total_cnt += $send_no;
        if($result < 9){     //요청된 회원수 만큼 발송중 에러 발생 시 디비에 결과 입력하고 되돌아가기
            switch($result){
                case "1" : $sr_txt = "메세지 전송에 실패하였습니다.(필수 파라메터 누락)"; break;
                case "2" : $sr_txt = "메세지 전송에 실패하였습니다.(존재하지 않는 아이디)"; break;
                case "3" : $sr_txt = "메세지 전송에 실패하였습니다.(비밀번호 불일치)"; break;
                case "4" : $sr_txt = "메세지 전송에 실패하였습니다.(잔액부족)"; break;
                case "5" : $sr_txt = "메세지 전송에 실패하였습니다.(수신 번호 오류)"; break;
                case "6" : $sr_txt = "메세지 전송에 실패하였습니다.(보내는 번호 오류)"; break;
                case "7" : $sr_txt = "메세지 전송에 실패하였습니다.(서비스 이용중지)"; break;
                case "9" : default : $sr_txt = "문자가 전송되었습니다."; break;
            }
            $sql = "INSERT INTO `".$tbl."` SET ";
            $sql .= "`ms_code` = '".$r_ms_code."', ";
            $sql .= "`ms_send_date` = ".$exc_time.", ";
            $sql .= "`ms_send_msg` = '".$r_message."', ";
            $sql .= "`ms_send_rs_code` = ".$result.", ";
            $sql .= "`ms_send_rs_txt` = '".$sr_txt."', ";
            $sql .= "`ms_send_no` = '".$send_no."' ";
            $db -> query($sql);
            $msg = "전송중 문제가 발생했습니다.\\n\\n발송 건수 : ".$send_no."\\n\\nError Code :: ".$sr_txt;
            F_goBack($msg, $return_url);
        }
    }
    //요청된 회원 수만큼 정상적으로 발송이 되었으면 디비 입력 후 되돌아가기
    $sr_txt = "문자가 전송되었습니다.";
    $sql = "INSERT INTO `".$tbl."` SET ";
    $sql .= "`ms_code` = '".$r_ms_code."', ";
    $sql .= "`ms_send_date` = ".$exc_time.", ";
    $sql .= "`ms_send_msg` = '".$r_message."', ";
    $sql .= "`ms_send_rs_code` = ".$result.", ";
    $sql .= "`ms_send_rs_txt` = '".$sr_txt."', ";
    $sql .= "`ms_send_no` = '".$total_cnt."' ";
    $db -> query($sql);
    $msg = "전송되었습니다.\\n\\n발송 건수 : ".$total_cnt;
    F_goBack($msg, $return_url);
}
?>

이 질문에 댓글 쓰기 :

답변 1

저도 잘 하는 편은 아닌데 그냥 단순히 생각 하면

jquery 로 해야 할거 같고, 

1. select 되어 있는 값을 선택시 select 값을 가져옴

 

2. 왼쪽 보낼 메시지 부분 sms_txt id 값에 select 값 집어 넣기

 

3. 들어가기 전에 문자 길이 (문자 전송은 단문과, 장문이 있는데 바이트 숫자 체크 하는 부분) 확인

 

4. 코드는 돌려 보지 않았지만 대충 다음 페이지로 전송 값 보냈을때 여러 전화번호가 있으면 작동 하는 부분은 있는 것으로 보아 여러개 전화번호에 문자가 가는지 확인

 

 

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 18
© SIRSOFT
현재 페이지 제일 처음으로