Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > จะส่ง sms ผ่าน Api ยังไงโดยที่ให้ไปดึงเบอร์โทรมาจากฐานข้อมูล my sql ช่วยหน่อยยยค่ะ



 

จะส่ง sms ผ่าน Api ยังไงโดยที่ให้ไปดึงเบอร์โทรมาจากฐานข้อมูล my sql ช่วยหน่อยยยค่ะ

 



Topic : 112355



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์




ไฟล์ index.php

Code (PHP)
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>SBUYSMS.COM</title>

<style type="text/css">
BODY{
    margin:5px;
    padding:0;
    font-family:Tahoma;
    color:#000000; 
    font-size:13px
}
TD{
    font-size:13px
}
.Table{
    background-color:#C0C0C0
}
.Even{
    background-color:#F0F0F0
}
.Odd{
    background-color:#FFFFFF
}
</style>
    
</head>	
<body>

<div style="margin:10px 0px 10px 0px; font-weight:bold">ตัวอย่างการส่งข้อความ ผ่าน SMS API ของ WWW.SBUYSMS.COM</div>

<form action="send.php" method="post">
<table cellpadding="5" cellspacing="1" border="0" width="600" class="Table">
<tr class="Even">
    <td>username</td>
    <td><input type="text" name="username">
    </td>
</tr>
<tr class="Odd">
    <td>password</td>
    <td><input type="password" name="password"> 
    </td>
</tr>
<tr class="Even">
    <td>msisdn</td>
    <td><input type="text" name="msisdn">เบอร์โทร(0899999999,0822222222)</td>
</tr>
<tr class="Odd">
    <td>message</td>
    <td><textarea name="message" rows="5" cols="50"></textarea></td>
</tr>
<tr class="Even">
    <td>sender</td>
    <td><input type="text" name="sender">
    (SBUYSMS)</td>
</tr>
<tr class="Odd">
    <td>ScheduledDelivery</td>
    <td><input type="text" name="ScheduledDelivery"> 
    (20111129:2215) (เวลาส่ง 05,10,15,20,30....)</td>
</tr>
<tr class="Even">
    <td>&nbsp;</td>
    <td><input type="submit" name="send" value="send sms"></td>
</tr>
</table>
</form>

</body>
</html>





ไฟล์ function.php

Code (PHP)
<?php
class XmlToArray {
    var $xml='';

    /**
    * Default Constructor
    * @param $xml = xml data
    * @return none
    */

    function XmlToArray($xml){
       $this->xml = $xml;   
    }

    /**
    * _struct_to_array($values, &$i)
    *
    * This is adds the contents of the return xml into the array for easier processing.
    * Recursive, Static
    *
    * @access    private
    * @param    array  $values this is the xml data in an array
    * @param    int    $i  this is the current location in the array
    * @return    Array
    */

    function _struct_to_array($values, &$i){
        $child = array();
        if (isset($values[$i]['value'])) array_push($child, $values[$i]['value']);
       
        while ($i++ < count($values)) {
            switch ($values[$i]['type']) {
                case 'cdata':
                array_push($child, $values[$i]['value']);
                break;
               
                case 'complete':
                    $name = $values[$i]['tag'];
                    if(!empty($name)){
                    $child[$name]= ($values[$i]['value'])?($values[$i]['value']):'';
                    if(isset($values[$i]['attributes'])) {                   
                        $child[$name] = $values[$i]['attributes'];
                    }
                }   
              break;
               
                case 'open':
                    $name = $values[$i]['tag'];
                    $size = isset($child[$name]) ? sizeof($child[$name]) : 0;
                    $child[$name][$size] = $this->_struct_to_array($values, $i);
                break;
               
                case 'close':
                return $child;
                break;
            }
        }
        return $child;
    }
    //_struct_to_array
   
    /**
    * createArray($data)
    *
    * This is adds the contents of the return xml into the array for easier processing.
    *
    * @access    public
    * @param    string    $data this is the string of the xml data
    * @return    Array
    */
    function createArray() {
        $xml    = $this->xml;
        $values = array();
        $index  = array();
        $array  = array();
        $parser = xml_parser_create();
        xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
        xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
        xml_parse_into_struct($parser, $xml, $values, $index);
        xml_parser_free($parser);
        $i = 0;
        $name = $values[$i]['tag'];
        $array[$name] = isset($values[$i]['attributes']) ? $values[$i]['attributes'] : '';
        $array[$name] = $this->_struct_to_array($values, $i);
        return $array;
    }//createArray
   
   
}//XmlToArray 

function xml($xml){
    $xmlObj    = new XmlToArray($xml);
    $arrayData = $xmlObj->createArray();
    return $arrayData;
}
?>




ไฟล์ send.php

Code (PHP)
<?php
/*
* ตัวอย่างการส่งข้อความ ผ่าน SMS API ของ WWW.SBUYSMS.COM
*/
require_once("function.php");

$url = "http://www.sbuysms.com/api.php";
$username = $_POST['username'];
$password = $_POST['password'];
$msisdn = $_POST['msisdn'];
$message = $_POST['message'];
$sender = $_POST['sender'];
$ScheduledDelivery = $_POST['ScheduledDelivery'];

$param = "command=send&username=$username&password=$password&msisdn=$msisdn&message=$message&sender=$sender&ScheduledDelivery=$ScheduledDelivery";

$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
$result = curl_exec ($ch);
curl_close ($ch);

$xml = xml($result);
$count = count($xml['SBUYSMS']['QUEUE']);
if($count > 0){
	$count_pass = 0;
	$count_fail = 0;
	$used_credit = 0;
	for($i=0;$i<$count;$i++){
		if($xml['SBUYSMS']['QUEUE'][$i]['Status'] == 1){
            //$Transaction = $xml['SBUYSMS']['QUEUE'][$i]['Transaction'];
            //$Msisdn = $xml['SBUYSMS']['QUEUE'][$i]['Msisdn'];
            //$UsedCredit = $xml['SBUYSMS']['QUEUE'][$i]['UsedCredit'];
            $used_credit += $UsedCredit;
			$count_pass++;
        }else{
			$count_fail++;
		}
	}

	if($count_pass > 0){
        echo "สามารถส่งออกได้จำนวน $count_pass หมายเลข, ใช้เครดิตทั้งหมด $used_credit เครดิต";
    }
	if($count_fail > 0){
        echo "ไม่สามารถส่งออกได้จำนวน $count_fail หมายเลข";
    }
}else{
    echo $xml['SBUYSMS']['Detail'];
}
?>




Tag : PHP, MySQL







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-11-05 09:08:42 By : llooll View : 4949 Reply : 22
 

 

No. 1



โพสกระทู้ ( 73 )
บทความ ( 0 )



สถานะออฟไลน์


ตอนนี้เป็นยังไงหรอครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-05 15:04:43 By : armdbz
 


 

No. 2



โพสกระทู้ ( 15 )
บทความ ( 0 )



สถานะออฟไลน์


ตอนนนี้สามารถส่ง sms ได้ค่ะ แต่ต้องใช้วิธีการกรอกหมายเลขโทรศัพท์เข้าไปค่ะ
คืออยากจะให้สามารถดึงเบอร์โทรศัพท์ขึ้นมาเลย ว่าจะส่งเป็นรายคน หรือส่งทั้งหมด โดยที่ไม่จำเป็นต้องกรอกหมายเลขโทรศัพท์เข้าไป
พอจะมีวิธีบ้างไหมค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-05 15:34:21 By : llooll
 

 

No. 3



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


HTML ตัวส่ง
Code (JavaScript)
<tr class="Even">
    <td>msisdn</td>
    <td><input type="checkbox" name="sendall" value="1">SendAll&nbsp;
		<input type="text" name="msisdn">เบอร์โทร(0899999999,0822222222)</td>
</tr>



send.php
Code (PHP)
<?php
if(isset($_POST['sendall']){
   include('sendall.php'); // new program php for send from table
}else{
     // ส่วนของโปรแกรมเดิม
}
?>



ประวัติการแก้ไข
2014-11-05 17:30:01
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-05 17:29:41 By : Chaidhanan
 


 

No. 4

Guest


พอจะมีตัวอย่างการประยุกต์ใช้บ้างไหม
พอดีไม่มีความรู้เรื่องนี้เลย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 13:37:44 By : gfff
 


 

No. 5



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


ถ้าไม่เขียนเอง ลอง ประกาศจ้างดูครับ ผมว่าจากโค๊ดที่มีอยู่แล้ว
ซัก 1000 ก็มีคนรับนะครับ แบบไม่มีความรู้เลย
แต่ถ้าอยากเขียนเอง ลองโครงสร้างแบบที่ผมบอกครับ

send.php เดิม เปลี่ยน เป็น send2.php

แล้ว send.php เอาตัวอย่างที่ผมทำให้ดู เป็นไกด์ ผมว่าน่าจะทำเองได้นะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 13:51:28 By : Chaidhanan
 


 

No. 6



โพสกระทู้ ( 3,750 )
บทความ ( 0 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์
Facebook

ตอบความคิดเห็นที่ : 4 เขียนโดย : gfff เมื่อวันที่ 2014-11-17 13:37:44
รายละเอียดของการตอบ ::
คำสั่ง select telephone from เลยครับ ดึงเฉพาะเบอร์โทรศัพท์หรือจะดึงอะไรมาลงก็แล้วแต่ครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 14:17:39 By : Dragons_first
 


 

No. 7

Guest


เริ่มไม่ถูก เลยค่ะ ไม่รู้จะจับมาเขี้ยนยังไง ??
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 16:47:37 By : gfff
 


 

No. 8



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


โค๊ดที่เอามา โชว์ เขียนเอง หรือ เอามาจากไหนครับ เพราะมันดู โปรฯ น่ะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 16:51:12 By : Chaidhanan
 


 

No. 9

Guest


ใช้บริการ sms api ของ http://sbuysms.com/ ในการส่งอ่าค่ะ ซึ่งเขาจะมีตัวอย่าง source code ให้ใช้แต่ไม่รู้จะเอามาประยุกต์ยังไง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 17:07:53 By : gfff
 


 

No. 10



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


บันทัดที่ 45 แก้ตามด้านล่าง
กำหนด เลือก ระว่างส่งจาก database หรือส่ง รายเบอร์
Code (XML)
<tr class="Even">
	<td>msisdn</td>
	<td><input type="checkbox" name="sendall" value="1"  
		onclick="this.form.msisdn.disabled=this.checked"  >Send From Database<br>
		<input type="text" name="msisdn">เบอร์โทร(0899999999,0822222222)</td>
</tr>




เปลี่ยน ไฟล์ send.php เป็น send2.php


ส่วน send.php ตัวใหม่
Code (PHP)
<?php
if(isset($_POST['sendall'])){
	// ส่งจาก database
	$url = "send2.php"; $send = '';
	foreach( $_POST as $k=>$vl) $send .= ($send>''? '&' : '') . "$k=$vl";
	//////////////////////////////////////////////////////////////////////////
	// ส่วนติดต่อกับ database ปรับใช้งานตามจริง
	$mysql=new mysqli('host', 'user', 'psw', 'database');
	$rs=$mysql->query('select msisdn from table where 1'); // ชื่อ ตาราง  where อย่างไร
	$nodes = array();
	while($ro=$rs->fetch_assoc()){ 	$nodes[] = $send . "&msisdn=$ro[msisdn]"; }
	/////////////////// ส่วน ทำการส่ง //////////////////////////////////////////
	$curl_arr = array(); $master = curl_multi_init();
	for($i = 0; $i < $node_count; $i++) {
		$curl_arr[$i] = curl_init($url);
		curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true);
		curl_setopt($curl_arr[$i], CURLOPT_POSTFIELDS, $nodes[$i]);
		curl_multi_add_handle($master, $curl_arr[$i]);
	}
	$active=null;
	do { $mrc=curl_multi_exec($master, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM );
	while ($active && $mrc == CURLM_OK) {
		if (curl_multi_select($master) != -1) {
			do { $mrc = curl_multi_exec($master, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM);
		}
	}
	/////////////////////// ส่วน แสดง รายงาน การส่ง //////////////////////////////////
	$txt="$content:TrueMoveH:".date('Y-m-d H:i:s', hk_time)."\n";
	for($i = 0; $i < $node_count; $i++) {
		$txt.=$i . ":" . curl_multi_getcontent($curl_arr[$i]) . "\n";
	}
	echo $txt.='================='."\n";
}else{
     include( 'send2.php'); // ส่งแค่ รายการเดียว includำ ของเดิม
}
?>


ถ้าอย่างไรก็เปิด php document ศึกษา ชุดคำสั่งดูนะครับ ไม่อยากให้ไปแล้วแปะ โดยไม่ศึกษานะครับ


ประวัติการแก้ไข
2014-11-17 17:24:51
2014-11-17 17:25:31
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 17:23:28 By : Chaidhanan
 


 

No. 11

Guest


ถ้าไม่เข้าใจ ประยุกต์ไม่ได้ ก็จ้างคุณ Chaidhanan เลยครับ แกเทพสุดในนี้แล้ว
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 17:28:42 By : สอง
 


 

No. 12



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


แฮะๆ คงไม่ถึงขนาดนั้นหรอกครับ คำตอบแรกๆ แบบไม่เข้าใจ จขกท น่ะครับ เลย หงุดหงิดนิดหน่อย
พออธิบายมาก็เข้าใจ ก็ขอโทษด้วยนะครับ ส่วนโค๊ดก็ลองดูนะครับ

ปล. ไม่ได้เทสต์เลยนะครับ ผิดพลาดยังไงก็มาโพสต์ต่อนะครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 17:36:20 By : Chaidhanan
 


 

No. 13

Guest


ขอบคุณค่ะ ลองดู แล้ว ว เจอ ERROR: INVALID PARAMETER
ตัวแปลผิดพลาดตรงในส่วนของไฟล์ send.php ใหม่หรืออป่าวค่ะ ?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 18:26:39 By : gfff
 


 

No. 14



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


ลองเอาโค๊ดส่วนที่แก้ไขแล้ว มาดู อีกทีครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 19:06:09 By : Chaidhanan
 


 

No. 15

Guest


send.php

Code (PHP)
<?php
if(isset($_POST['sendall'])){
	// ส่งจาก database
	$url = "send2.php"; $send = '';
	foreach( $_POST as $k=>$vl) $send .= ($send>''? '&' : '') . "$k=$vl";
	//////////////////////////////////////////////////////////////////////////
	// ส่วนติดต่อกับ database ปรับใช้งานตามจริง
	$mysql=new mysqli('localhost', 'root', 'root', 'project'); // ส่วนที่แก้ไขเข้าไปค่ะ
	$rs=$mysql->query('select msisdn from member where user_id=99603'); // ส่วนที่แก้ไขเข้าไปค่ะจะลองดูว่าสามารถดึงเบอร์โทรจากฐานข้อมูลได้หรือไม่
	$nodes = array();
	while($ro=$rs->fetch_assoc()){ 	$nodes[] = $send . "&msisdn=$ro[msisdn]"; }
	/////////////////// ส่วน ทำการส่ง //////////////////////////////////////////
	$curl_arr = array(); $master = curl_multi_init();
	for($i = 0; $i < $node_count; $i++) {
		$curl_arr[$i] = curl_init($url);
		curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true);
		curl_setopt($curl_arr[$i], CURLOPT_POSTFIELDS, $nodes[$i]);
		curl_multi_add_handle($master, $curl_arr[$i]);
	}
	$active=null;
	do { $mrc=curl_multi_exec($master, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM );
	while ($active && $mrc == CURLM_OK) {
		if (curl_multi_select($master) != -1) {
			do { $mrc = curl_multi_exec($master, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM);
		}
	}
	/////////////////////// ส่วน แสดง รายงาน การส่ง //////////////////////////////////
	$txt="$content:TrueMoveH:".date('Y-m-d H:i:s', hk_time)."\n";
	for($i = 0; $i < $node_count; $i++) {
		$txt.=$i . ":" . curl_multi_getcontent($curl_arr[$i]) . "\n";
	}
	echo $txt.='================='."\n";
}else{
     include( 'send2.php'); // ส่งแค่ รายการเดียว includ ของเดิม
}
?>

sms.php

<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>SBUYSMS.COM</title>

<style type="text/css">
BODY{
    margin:5px;
    padding:0;
    font-family:Tahoma;
    color:#000000; 
    font-size:13px
}
TD{
    font-size:13px
}
.Table{
    background-color:#C0C0C0
}
.Even{
    background-color:#F0F0F0
}
.Odd{
    background-color:#FFFFFF
}
</style>
    
</head>	
<body>

<div style="margin:10px 0px 10px 0px; font-weight:bold">ตัวอย่างการส่งข้อความ ผ่าน SMS API ของ WWW.SBUYSMS.COM</div>

<form action="send.php" method="post">
<table cellpadding="5" cellspacing="1" border="0" width="600" class="Table">
<tr class="Even">
    <td>username</td>
    <td><input type="text" name="username">
    (pochoo)</td>
</tr>
<tr class="Odd">
    <td>password</td>
    <td><input type="password" name="password"> 
    (123413523)</td>
</tr>
<tr class="Even">
	<td>msisdn</td>
	<td><input type="checkbox" name="sendall" value="1"  
		onclick="this.form.msisdn.disabled=this.checked"  >Send From Database<br>
		<input type="text" name="msisdn">เบอร์โทร(0899999999,0822222222)</td>
</tr>
<tr class="Odd">
    <td>message</td>
    <td><textarea name="message" rows="5" cols="50"></textarea></td>
</tr>
<tr class="Even">
    <td>sender</td>
    <td><input type="text" name="sender">
    (SBUYSMS)</td>
</tr>
<tr class="Odd">
    <td>ScheduledDelivery</td>
    <td><input type="text" name="ScheduledDelivery"> 
    (20111129:2215) (เวลาส่ง 05,10,15,20,30....)</td>
</tr>
<tr class="Even">
    <td>&nbsp;</td>
    <td><input type="submit" name="send" value="send sms"></td>
</tr>
</table>
</form>

</body>
</html>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 19:46:44 By : gfff
 


 

No. 16

Guest


/////////////////////// ส่วน แสดง รายงาน การส่ง //////////////////////////////////
$txt="$content:TrueMoveH:".date('Y-m-d H:i:s', hk_time)."\n"; //ตรงส่วน$content:TrueMoveH มันจำกัดแค่เบอ์ของทรูอย่างเดียวหรอค่ะ ?
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 19:50:52 By : gfff
 


 

No. 17



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


เอา TrueMoveH ออกครับ 55555 ผมก๊อปมา ลยไม่หมด


ปล.
$content = content ที่ส่งชื่ออะไร ของผมมันมีหลาย content ครับ
TrueMoveH บอกว่างานนี้ส่ง TrueMoveH

โปรแกรมส่ง SMS ของผมแยกส่ง DTAC AIS TrueMove TrueMoveH ครับ TrueMoveH นี้ คล้ายกับ โจทย์ จขกท น่ะครับ
เลยหยิบมาประยุกต์ให้ครับ


ประวัติการแก้ไข
2014-11-17 21:02:28
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 20:57:13 By : Chaidhanan
 


 

No. 18

Guest


มันบอกว่าส่งพารามิเตอร์ไปไม่ครบอ่าค่ะ
ต้องแก้ในส่วนไหนค่ะ งงหมดแล้ว แหะๆๆ !!
$url = "http://www.sbuysms.com/api.php";
$username = $_POST['username'];
$password = $_POST['password'];
$msisdn = $_POST['msisdn'];
$message = $_POST['message'];
$sender = $_POST['sender'];
$ScheduledDelivery = $_POST['ScheduledDelivery'];
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 21:03:37 By : gfff
 


 

No. 19



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


จากโค๊ดที่แก้แล้ว สามารถส่งแบบรายการเดียวได้ไหมครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 22:01:25 By : Chaidhanan
 


 

No. 20

Guest


ไม่ได้ค่ะ มันขึ้นว่าส่งพารามิเตอไปไม่ครบ จากไฟล์ send.php
หนูไม่รู้ว่าจะต้องเพิ่มเข้าไปหรือไม่
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-17 22:05:16 By : gfff
 


 

No. 21



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



สถานะออฟไลน์


ก่อนแก้ไขได้ backup ของเก่าไว้หรือยังครับ งานแบบนี้ ต้องทำสำเนาไว้ก่อนนะครับ
ผมก็ลืมเน้นตรงนี้ไป

ผมปรับให้ใหม่แล้ว file send.phjp ใช้ตัวเก่า เพิ่ม บันทัดตรวจสอบตัวแปร

ไฟล์ เริ่มต้น เป็น PHP ส่งข้อความเข้าตัวมันเอง แล้วค่อยวิเคราะห์ส่งต่ออีกครั้ง


ไฟล์ เริ่มต้น
Code (PHP)
<?php
if(isset($_POST['sendall'])){
	// ส่งจาก database
	$url = "send.php"; $xsend = '';
	foreach( $_POST as $k=>$vl) $xsend .= ($xsend>''? '&' : '') . "$k=$vl";
	//////////////////////////////////////////////////////////////////////////
	echo "Post  ",$xsend , "<br>";
	// ส่วนติดต่อกับ database ปรับใช้งานตามจริง
	$mysql=new mysqli('localhost', 'test', 'test', 'test');
	$rs=$mysql->query('select msisdn from mobile where 1'); // ชื่อ ตาราง  where อย่างไร
	$nodes = array();
	while($ro=$rs->fetch_assoc()) $nodes[] = $xsend . "&msisdn=$ro[msisdn]";
	echo '<pre>' , print_r( $nodes, true), '</pre>';
	/////////////////// ส่วน ทำการส่ง //////////////////////////////////////////
	$curl_arr = array(); $master = curl_multi_init();
	for($i = 0; $i < $node_count; $i++) {
		$curl_arr[$i] = curl_init($url);
		curl_setopt($curl_arr[$i], CURLOPT_RETURNTRANSFER, true);
		curl_setopt($curl_arr[$i], CURLOPT_POSTFIELDS, $nodes[$i]);
		curl_multi_add_handle($master, $curl_arr[$i]);
	}
	$active=null;
	do { $mrc=curl_multi_exec($master, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM );
	while ($active && $mrc == CURLM_OK) {
		if (curl_multi_select($master) != -1) {
			do { $mrc = curl_multi_exec($master, $active); } while ($mrc == CURLM_CALL_MULTI_PERFORM);
		}
	}
	/////////////////////// ส่วน แสดง รายงาน การส่ง //////////////////////////////////
	$txt="$content:TrueMoveH:".date('Y-m-d H:i:s', hk_time)."\n";
	for($i = 0; $i < $node_count; $i++) {
		$txt.=$i . ":" . curl_multi_getcontent($curl_arr[$i]) . "\n";
	}
	echo $txt.='================='."\n";
}elseif(isset($_POST['send'])){
     include( 'send.php'); // ส่งแค่ รายการเดียว include ของเดิม
}
?>
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>SBUYSMS.COM</title>
<style type="text/css">
BODY{ margin:5px; padding:0; font-family:Tahoma; color:#000000; font-size:13px }
TD{ font-size:13px }
.Table{ background-color:#C0C0C0 }
.Even{ background-color:#F0F0F0 }
.Odd{ background-color:#FFFFFF }
</style>
</head>	
<body>
<div style="margin:10px 0px 10px 0px; font-weight:bold">ตัวอย่างการส่งข้อความ ผ่าน SMS API ของ WWW.SBUYSMS.COM</div>
<form action="" method="post">
<table cellpadding="5" cellspacing="1" border="0" width="600" class="Table">
<tr class="Even">
	<td>username</td>
	<td><input type="text" name="username">
	</td>
</tr>
<tr class="Odd">
	<td>password</td>
	<td><input type="password" name="password"> 
	</td>
</tr>
<tr class="Even">
	<td>msisdn</td>
	<td>
		<input type="checkbox" name="sendall" value="1" 
				onclick="this.form.msisdn.disabled=this.checked"  >Send From Database<br>
		<input type="text" name="msisdn">เบอร์โทร(0899999999,0822222222)</td>
</tr>
<tr class="Odd">
	<td>message</td>
	<td><textarea name="message" rows="5" cols="50"></textarea></td>
</tr>
<tr class="Even">
	<td>sender</td>
	<td><input type="text" name="sender">
	(SBUYSMS)</td>
</tr>
<tr class="Odd">
	<td>ScheduledDelivery</td>
	<td><input type="text" name="ScheduledDelivery"> 
	(20111129:2215) (เวลาส่ง 05,10,15,20,30....)</td>
</tr>
<tr class="Even">
	<td>&nbsp;</td>
	<td><input type="submit" name="send" value="send sms"></td>
</tr>
</table>
</form>
</body>
</html>


ไฟล์ send.php
Code (PHP)
<?php
/*
* ตัวอย่างการส่งข้อความ ผ่าน SMS API ของ WWW.SBUYSMS.COM
*/
require_once("function.php");

$url = "http://www.sbuysms.com/api.php";
$username = $_POST['username'];
$password = $_POST['password'];
$msisdn = $_POST['msisdn'];
$message = $_POST['message'];
$sender = $_POST['sender'];
$ScheduledDelivery = $_POST['ScheduledDelivery'];

$param = "command=send&username=$username&password=$password&msisdn=$msisdn&message=$message&sender=$sender&ScheduledDelivery=$ScheduledDelivery";
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
echo $url, '?',$param; exit; // มารค์บันทัดนี้ออก เมื่อตรวจสอบ ตัวแปรถูกต้องแล้ว
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
$agent = "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $param);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
$result = curl_exec ($ch);
curl_close ($ch);

$xml = xml($result);
$count = count($xml['SBUYSMS']['QUEUE']);
if($count > 0){
	$count_pass = 0;
	$count_fail = 0;
	$used_credit = 0;
	for($i=0;$i<$count;$i++){
		if($xml['SBUYSMS']['QUEUE'][$i]['Status'] == 1){
            //$Transaction = $xml['SBUYSMS']['QUEUE'][$i]['Transaction'];
            //$Msisdn = $xml['SBUYSMS']['QUEUE'][$i]['Msisdn'];
            //$UsedCredit = $xml['SBUYSMS']['QUEUE'][$i]['UsedCredit'];
            $used_credit += $UsedCredit;
			$count_pass++;
        }else{
			$count_fail++;
		}
	}

	if($count_pass > 0){
        echo "สามารถส่งออกได้จำนวน $count_pass หมายเลข, ใช้เครดิตทั้งหมด $used_credit เครดิต";
    }
	if($count_fail > 0){
        echo "ไม่สามารถส่งออกได้จำนวน $count_fail หมายเลข";
    }
}else{
    echo $xml['SBUYSMS']['Detail'];
}
?>



ประวัติการแก้ไข
2014-11-18 08:32:55
2014-11-18 08:34:38
2014-11-18 08:37:16
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-11-18 08:28:52 By : Chaidhanan
 


 

No. 22

Guest


เราว่าลองไปใช้งานผู้ให้บริการ sms platform ไหมคะส่วนใหญ่เค้าจะมี coding เตรียมไว้ให้แล้ว
ทางผู้ใช้งานแค่ใส่เบอร์โทร กับข้อความที่ตนเองต้องการส่งไป

ลองใช้งาน http://movider.co ไหมคะ เค้าเป็นแบรนด์ที่ทำ gateway sms ทั่วโลก
หรือถ้าอยากส่งในไทยก็มีราคาพิเศษในไทยให้ เพราะเค้าเป็นบริษัทคนไทยค่ะ

เราว่าถ้าอยากสะดวกแบบนี้น่าจะดีกว่านะคะ เราเป็นคนที่ไม่ค่อยรู้เรื่องแต่ยังใช้งานได้ง่ายมากค่ะ
ทดลองใช้ได้นะ เค้ามีให้ทดลองใช้ฟรีค่ะ ที่ลิงค์นี้เลย https://dashboard.movider.co/sign-up
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2020-06-23 23:35:47 By : Rainni
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : จะส่ง sms ผ่าน Api ยังไงโดยที่ให้ไปดึงเบอร์โทรมาจากฐานข้อมูล my sql ช่วยหน่อยยยค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 04
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่