2011-09-09 1 views
7

Per favore guidami con codice di esempio per l'invio di sms attraverso il sito web. Come includere il gateway sms. Per favore dimmi, posso usare way2sms.com come gateway?Invio di SMS tramite gateway gratuito

è il modo giusto di utilizzare? per favore suggeriscimi solo questa parte del codice funziona?

<?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(); 
} 

?> 

qui è la mia class.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) 
    { 

    } 
} 

?> 

al posto di username e password, che username e password devo usare?

+2

Probabilmente è necessario chiedere loro, non noi –

risposta

16

Sì, o si potrebbe utilizzare i gateway come previsto dai vettori wireless, come allora è semplice come l'invio loro una e-mail con PHP's mail function.

Dove (numero) è necessario includere il numero di telefono a 10 cifre. Ciò significa che devi includere il loro prefisso.

AT & T (Number) @ txt.att.net

T-Mobile (Number) @ tmomail.net

Sprint (Numero) @ messaging.sprintpcs.com

Verizon (Number) @ vtext.com O (Number) @ vzwpix.com

+0

grazie mille. Proverò solo – priya

+0

Non dimenticare il voto alto. :) –

+0

per favore suggeriscimi, devo contattare il supporto di way2sms.com per fare il gateway sms o ottenere i dettagli? scusa. non ne so nulla quindi sto chiedendo da zero. – priya

1

Sembra bene, tranne una riga cambiamento questo

if($result=='true') 
to 
if($result == true) 
+0

@ JapanPro, grazie. Per favore guidami come usarlo nel mio sito web? e come impostare il gateway sms? se uso questo codice è sufficiente inviare SMS tramite il sito web? – priya

+0

Ho modificato il codice per favore suggeriscimi – priya

+0

qualcuno può aiutarmi per favore? – priya