Просьба привести пример кода для отправки sms через веб-сайт. Как включить sms-шлюз. Скажите, пожалуйста, могу ли я использовать way2sms.com в качестве шлюза?
это правильный способ использования? пожалуйста, предложите мне только эту большую часть кода?
<?php error_reporting(E_ALL); ob_implicit_flush(true); include_once "class.curl.php"; include_once "class.sms.php"; $smsapp=new sms(); $smsapp->setGateway('way2sms'); echo "Logging in ... "; $smsapp->login('10 digit number','way2sms password'); echo "Sending SMS ... "; $result=$smsapp->send('receipient number','text message'); if($result=='true') { echo "Message sent"; } else { echo "Error encountered : ".$smsapp->getLastError(); } ?>
вот мой класс.curl.php
<?php class sms { var $username; var $password; var $curl; var $server; var $loginDone; var $debugMode; var $data; var $error; public function __construct() { $this->curl=new cURL(); // $this->curl->setProxy(""); $this->loginDone=false; $this->debugMode=false; $this->data=array(); } public function setGateway($serverName) { switch($serverName) { case '160by2': $this->server='160by2'; break; case 'way2sms': $this->server='way2sms'; break; case 'airtel': $this->server='airtel'; break; default : $this->server='way2sms'; } } public function login($username,$password) { $server=$this->server; call_user_func(array($this,"login_$server"),$username,$password); $this->loginDone=true; } public function send($number,$msg) { $server=$this->server; if($this->loginDone) return call_user_func(array($this,"send_$server"),$number,$msg); else { echo "<h2>Please login first before sending SMS</h2>"; } } private function login_way2sms($username,$password) { $out=($this->curl->post("http://www.way2sms.com","1=1")); $pattern="/Location:(.+?)\n/"; preg_match($pattern,$out,$matches); $domain=trim($matches[1]); $this->data['domain']=$domain; $out= $this->curl->post("{$domain}auth.cl","username=$username&password=$password&Submit=Sign+in"); $pattern="/Location:(.+?)\n/"; preg_match($pattern,$out,$matches); $referer=trim($matches[1]); $this->data['referer']=$referer; } private function send_way2sms($number,$msg) { $domain=$this->data['domain']; $html=$this->curl->post("{$domain}jsp/InstantSMS.jsp?val=0","1=1",$this->data['referer']); if($this->debugMode) { echo "<h2>After logging in, the HTML returned by server is</h2>"; echo $html; } $pattern = '/name="Action".+?value="(.*)"/'; preg_match($pattern, $html, $matches); $custfrom=$matches[1]; $msg=urlencode($msg); $html=$this->curl->post("{$domain}FirstServletsms?custid=","custid=undefined&HiddenAction=instantsms&Action={$custfrom}&login=&pass=&MobNo=$number&textArea=$msg"); $pattern = '/class="style1">(.+?)<\/span>/'; preg_match($pattern, $html, $matches); $out=($matches[1]); if(!preg_match("/successfully/",$out)) { $this->setError($out); return false; } else { return true; $this->setError("No errors"); } } public function getLastError() { return $this->error; } private function setError($error) { $this->error=$error; } private function login_160by2($username,$password) { // $out2=$this->curl->get("http://m.160by2.com"); $out=$this->curl->post("http://m.160by2.com/LoginCheck.asp?l=1&txt_msg=&mno=","txtUserName=$username&txtPasswd=$password&RememberMe=Yes&cmdSubmit=Login"); $pattern="/MyMenu.asp\?Msg=(.+?)&/"; preg_match($pattern,$out,$matches); $id=trim($matches[1]); $this->data['id']=$id; } private function send_160by2($number,$msg) { $msg=urlencode($msg); $id=$this->data['id']; $out1=$this->curl->post("http://m.160by2.com/SaveCompose.asp?l=1","txt_mobileno=$number&txt_msg=$msg&cmdSend=Send+SMS&TID=&T_MsgId=&Msg=$id"); //echo $out1; $pattern = '/\<table.+?\>(.+)\<\/table/s'; preg_match($pattern, $out1, $matches); $out=strip_tags(@$matches[1]); if(count($matches)<1) { $pattern="/\<div.+?background:.+?yellow.+?\>(.+?)\<\/div\>/s"; preg_match($pattern,$out1,$matches); $out=strip_tags($matches[1]); } // // echo "out is $out"; if(!preg_match("/successfully/i",$out)) { $this->setError($out); return false; } else { return true; $this->setError("No errors"); } } private function login_airtel($username,$password) { $this->data['username']=$username; $this->data['password']=$password; } private function send_airtel($number,$msg) { } } ?>
вместо имени пользователя и пароля, которые должны использовать имя пользователя и пароль?
Да, или вы можете использовать шлюзы, как это предусмотрено самими беспроводными операторами, так как тогда это так же просто, как отправить им электронное письмо с почтовой функцией PHP .
Где (Номер) , вы должны указать их 10-значный номер телефона. Таким образом, это означает, что вы должны указать код своей зоны.
AT & T (Number) @ txt.att.net
T-Mobile (Number) @ tmomail.net
Sprint (Number) @ messaging.sprintpcs.com
Verizon (Number) @ vtext.com OR (Number) @ vzwpix.com
Код, который вы используете, полностью устарел. Way2sms меняют способ аутентификации. Если вы хотите использовать новый код, то вот решение: http://ritesh-chandora.blogspot.in/2012/02/php-code-for-sending-free-sms.html этот блог предоставит новый способ отправки смс без труда.
Кажется, это хорошо, за исключением одной строки
if($result=='true') to if($result == true)