Guys here is code written in php for sending sms through your way2sms account. (UPDATED 13/06/2012)
This Code works fine for your small application where you want to send message through your website. Only thing you needed is an account on WAY2SMS . First create an account, then insert this code in your website and pass 4 argument to the function and just sit back and relax :), this code will do automatically everything for you..enjoy :)
You can download complete source in ZIP :http://andromeda.nitc.ac.in/~ritesh/SmsApi/SmsApi.zip
Some Points to Remember...
- Some lines are truncated in this webpage so keep track of double quote("") and new lines.
- You have to create a normal text file with the name cookie.txt and place it your local host or any folder and set absolute location of cookie file to $cookie_file_path_location variable. like this $cookie_file_path_location ="/var/www/sms/cookie.txt";find Absolute path using php function realpath("your_cookie_fine_name");
- Cookie file must have full READ and WRITE permission. Give 777 permission in Linux and full read write permission in windows.reference :http://en.wikipedia.org/wiki/Chmod
- Message length must be less than or equal to 140 character.
- By repeating Code for sending SMS in loop, you can send same message for many time without login and logout.
- Do not include '0' or '+91' before mobile number.
- Before using this code make sure you have installed PHP CURL libraries libcurl. It is necessary for executing this script.
For installation of Curl related help follow: http://ritesh-chandora.blogspot.in/2012/04/install-setup-php-curl-in-linux-and.html
//Setting up variables
$userID="9876543210"; //10 digit, way2sms id, from which admin will send SMS
$userPWD="123456"; // password for user id
$recerverNO="9876543210"; // recever's Number, who is going to receive sms
$message="Anything that you want to send but less than140 character"
******************** CODE START HERE ********************
function send_sms($userID,$userPWD,$recerverNO,$message)
{
if(strlen($message)>140) // check for message length
{echo "Error : Message length exceeds 140 characters" ; exit(); }
if (!function_exists('curl_init')) // check for curl library installation
{echo "Error : Curl library not installed"; exit(); }
$message_urlencode=rawurlencode($message);
// message converted into URL encoded form
$cookie_file_path ="/var/www/oose/cookie.txt";
// Cookie file location in your machine with full read and write permission
//START OF Code for getting sessionid
$url="http://site5.way2sms.com/content/index.html";
$header_array[0] = "GET /content/index.html HTTP/1.1";
$header_array[1]= "Host: site5.way2sms.com";
$header_array[2]= "User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1";
$header_array[3]= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$header_array[4]= "Accept-Language: en-us,en;q=0.5";
$header_array[5]= "Accept-Encoding: gzip,deflate";
$header_array[6]= "DNT: 1";
$header_array[7] = "Connection: keep-alive";
$ch = curl_init(); //initialise the curl variable
curl_setopt($ch, CURLOPT_URL,$url);
//set curl URL for crawling
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_array);
//set the header for http request to URL
curl_setopt($ch, CURLOPT_REFERER, $reffer);
//set reffer url means it shows from where the request is originated.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//it means after crawling data will return
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
// store the return cookie data in cookie file
$result = curl_exec ($ch); // Execute the curl function
curl_close ($ch);
//END OF Code for getting sessionid
//START OF Code for automatic login and storing cookies
$post_data = "username=".$userID."&password=".$userPWD."&button=Login";
$url = "http://site5.way2sms.com/Login1.action";
$header_array[0]="POST /Login1.action HTTP/1.1";
$header_array[1]="Host: site5.way2sms.com";
$header_array[2]="User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1";
$header_array[3]="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$header_array[4]="Accept-Language: en-us,en;q=0.5";
$header_array[5]="Accept-Encoding: gzip, deflate";
$header_array[6]="DNT: 1";
$header_array[7]="Connection: keep-alive";
$header_array[8]="Content-Type: application/x-www-form-urlencoded";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_array);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt($ch,CURLOPT_REFERER,"http://site5.way2sms.com/content/index.html");
$content = curl_exec( $ch );
$response = curl_getinfo( $ch );
curl_close ($ch);
//END OF Code for automatic login and storing cookies
// START OF Code is getting way2sms unique user ID
$url = "http://site5.way2sms.com/jsp/InstantSMS.jsp";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$content = curl_exec($ch);
curl_close ($ch);
$regex = '/input type="hidden" name="Action" id="Action" value="(.*)"/';
preg_match($regex,$content,$match);
$userID = $match[1];
// END OF Code for getting way2sms unique user ID
// START OF Code for sending SMS to Recever
$post_data = "HiddenAction=instantsms&catnamedis=Birthday&Action=".$userID."&chkall=on&MobNo=".$recerverNO."&textArea=".$message_urlencode;
$url = "http://site5.way2sms.com/quicksms.action";
$header_array[0]="POST /quicksms.action HTTP/1.1";
$header_array[1]="Host: site5.way2sms.com";
$header_array[2]="User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1";
$header_array[3]="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$header_array[4]="Accept-Language: en-us,en;q=0.5";
$header_array[5]="Accept-Encoding: gzip, deflate";
$header_array[6]="DNT: 1";
$header_array[7]="Connection: keep-alive";
$header_array[8]="Content-Type: application/x-www-form-urlencoded";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_array);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt($ch,CURLOPT_REFERER,"Referer: http://site5.way2sms.com/jsp/InstantSMS.jsp");
$content = curl_exec( $ch );
$response = curl_getinfo( $ch );
curl_close ($ch);
// END OF Code for sending SMS to Recever
//START OF Code for automatic logout
$url = "http://site5.way2sms.com/jsp/logout.jsp";
$header_array[0]="GET /jsp/logout.jsp HTTP/1.1";
$header_array[1]="Host: site5.way2sms.com";
$header_array[2]="User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:10.0.1) Gecko/20100101 Firefox/10.0.1";
$header_array[3]="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
$header_array[4]="Accept-Language: en-us,en;q=0.5";
$header_array[5]="Accept-Encoding: gzip, deflate";
$header_array[6]="DNT: 1";
$header_array[7]="Connection: keep-alive";
$cookie_file_path ="/var/www/oose/cookie.txt";
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt($ch, CURLOPT_HTTPHEADER, $header_array);
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file_path);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file_path);
curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_AUTOREFERER, true );
curl_setopt($ch,CURLOPT_REFERER,"Referer: http://site5.way2sms.com/jsp/InstantSMS.jsp");
$content = curl_exec( $ch );
$response = curl_getinfo( $ch );
curl_close ($ch);
//END OF Code for automatic logout
}// end function send_sms
******************** CODE END HERE ********************
This comment has been removed by a blog administrator.
ReplyDeleteIt's gr8 job man... It's working very nice. Thanks for your efforts.
ReplyDeleteis this legal to use this .... i mean way2sms won't have objection is using there service like this... I have to use this code in my wesite(organisation website).
ReplyDeleteso please tell me that can i use this code legaly...
please do reply
thanx a lot....:) i'm getting sms's...is there any idea to remove userid phone number displaying at the beginning of the text messages???
ReplyDeletei am getting an error-"Notice: Undefined variable: reffer"
ReplyDeleteand i am not getting sms all the time i send..plz help :(
I'm getting the same error :(
DeleteHI,Thanks for sharing code.
ReplyDeletebut iam getting errors like
Notice: Undefined variable: reffer in location : curl_setopt($ch, CURLOPT_REFERER, $reffer);
Notice: Undefined offset: 1 in location :
$userID = $match[1];
pls help me to solv this.
use $reffer="http://site5.way2sms.com/jsp/InstantSMS.jsp";
Deleteand i used the version downloaded in zip file so "Notice: Undefined offset: 1 in location : $userID = $match[1];" this error didn't came.....
Great work !! thank you for sharing code :)
ReplyDeletegreate Work..But On the live Server i did not get any msg is it Cause eroor on live server in my local host it working ?
ReplyDeletethis api works fine, THANKS A LOT..
ReplyDeletecan any one tel me the detail process of configuring this php.bcaz i've tried many times ,but my msgs are not delivered
ReplyDeleteI got error at this line
ReplyDeletecurl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
but your code really worked...Thanx mate
hi,
ReplyDeleteIts not working for me,
neither in localhost nor in live server,
Any suggestion from you will be helpful,
Thanks
Parse error: syntax error, unexpected T_FUNCTION in C:\wamp\www\makemyjainshaadi.com\sendsms.php on line 10
Deletethis the error in local
Hi,
ReplyDeleteCan any of you give me your proper code (whose application is working).
thanks
Hi, I modified the code to send messages to multiple contacts.
ReplyDeleteIt works fine for up to 10 contacts but beyond that I get the error "Fatal error: Maximum execution time of 30 seconds exceeded". Can you make suggestions on how I can rectify this, if possible. Thanks!
Hi Aldon,
DeleteCan you please help me I need this type of script which will send multiple contacts,I have tried but it's not working.
I am working for the noble cause i.e NGO website (http://humanrightsngo.com/).
Thanks
Pawan
Hi Aldon,
DeleteCan you please help me, I need this type of script which will send a SMS to atleast one contact,I have tried but it's not working...
I will use ur script in Engineering Final year project.
Please......
Thanks and Regards
Ramesh Sowpati
'Curl library not installed', this error is coming how can it be solved, pls anyone can reply.
ReplyDeleteThanks in advance
Can we run it on Localhost connected with internet
ReplyDeletecoz i m trying & nt working
plz help
I am not getting error after integrating the code,but i am not able send sms .in my cookiesfile.txt it logs this error.
ReplyDeletesite5.way2sms.com FALSE / FALSE 0 JSESSIONID A01~373E22D0B226307EA18D4FC3010D3B42.w801.
Please help me to resolve this issues.
Thnaks,
Rabindra
I am also getting same prb if solved means plz let me know!!!!!!!!
Deletehey.. i am getting error "Undefined offset: 1.." at line number 75 :p
ReplyDeleteanyone please tell me why i am seeing it??
grt code
ReplyDeleteNotice: Undefined offset: 1 in /opt/lampp/htdocs/send_sms.php
ReplyDeleteI didnt get sms and also any error msg can tell wat is the prb.......?
ReplyDeleteuse $reffer="http://site5.way2sms.com/jsp/InstantSMS.jsp";
ReplyDeleteand i used the version downloaded in zip file so "Notice: Undefined offset: 1 in location : $userID = $match[1];" this error didn't came.....
Can u pls put up the lines that contain variable $match in the zip file version?? give line numbers also.
DeleteNotice: Undefined offset: 1 in location :
ReplyDelete$userID = $match[1];
finding error ..
can any one tell me how to do variable $match in the zip file version
The zip file doesn't exist. can anyone re-upload or give the correct link for this file?
ReplyDeleteLooks like the site is changed, so it wont work anymore!
ReplyDeleteNotice: Undefined offset: 1 in location :
ReplyDelete$userID = $match[1];
finding error ..
can any one tell me how to do variable $match in the zip file version
http://site5.way2sms.com/jsp/InstantSMS.js Give a 404 page now ?
ReplyDeleteUndefined offset: 1 in location :
ReplyDelete$userID = $match[1];
finding error ..
can any one tell me how to do variable $match in the zip file version
there is no error but sms never to receive
ReplyDeleteUndefined offset: 1 in location :
ReplyDelete$userID = $match[1];
finding error ..
any one tell me how to do variable $match in the zip file version