Thanks for th reply Peter
i call this method on success
$this->sendSMS();
But i sorted the problem with this:
public function getResult()
{
$this->processRequest();
return $this->responseArray;
}
"Peter Ford" <[email protected]> wrote in message
news:[email protected]...
> Pieter du Toit wrote:
>> Hi
>>
>> This is my first class and it does not work, i do a return
>> $this->responseArray; with the public function getResult() method, but
>> get
>> nothing. Can someone please help me.
>>
>> Thsi is how i create the object
>> $number = new Smsgate($cell_numbers, $message, "27823361602", "27");
>> $result = $number->getResult();
>>
>> Here is the code:
>> <?php
>>
>> /**
>> *
>> * @version 1.0
>> * @copyright 2009
>> */
>>
>> /**
>> */
>> class Smsgate {
>>
>> protected $number;
>> protected $message;
>> protected $sender_id;
>> protected $tofind;
>> private $result;
>> /**
>> * Constructor
>> */
>> function __construct($number = "", $message = "", $sender_id = "",
>> $tofind = "")
>> {
>>
>> $this->message = $message;
>> $this->number = $number;
>> $this->sender_id = $sender_id;
>> $this->tofind = $tofind;
>> }
>>
>> protected function display ($result)
>> {
>> return $result;
>> }
>>
>> public function getResult()
>> {
>> return $this->processRequest();
>>
>> }
>> public function numberErrors()
>> {
>> return $this->errorResult;
>> }
>>
>> /**
>> * Smsgate::checknumbers()
>> *
>> * @return array of correct and incorrect formatted numbers
>> */
>> private function processRequest()
>> {
>> echo "nou by numers";
>> print_r($this->number);
>> // check if the property is an array and add to new array for
>> sending
>> if (is_array($this->number)) {
>> // check for starting digits
>> $this->result = "";
>> // loop through numbers and check for errors
>> foreach ($this->number as $this->val) {
>>
>> $this->position = strpos($this->val , $this->tofind);
>>
>> // number correct
>> if ($this->position === 0) {
>> echo "is integer <br/>";
>> if ($this->result != "") {
>> $this->result .= ",";
>> }
>> // create comma seperated numbers to send as bulk in
>> sendSMS method
>> $this->result .= $this->val; //infobip multiple
>> recipients must be seperated by comma
>> // create an array to use with responseStringExplode
>> in
>> sendSMS method
>> $this->cellarray[] = $this->val;
>> echo "Result is " . $this->result . "<br>";
>> } else {
>> // numbers not in correct format
>> $this->errorResult[] = $this->val;
>> }
>>
>> } //end foreach
>> $this->sendSMS();
>>
>> } else {
>> $this->result = "Not ok";
>> return $this->result;
>> }
>>
>> }
>>
>> private function sendSMS()
>> {
>>
>> $this->smsUrl =
>> 'http://www.infobip.com/Addon/SMSService/SendSMS.aspx?user=xxxx&password=xxxx';
>> $this->post_data = '&sender=' . $this->sender_id . '&SMSText=' .
>> urlencode($this->message) . '&IsFlash=0&GSM=' . $this->result;
>> $this->sendData = $this->sendWithCurl($this->smsUrl,
>> $this->post_data);
>> $this->responseStringExplode = explode("\n", $this->sendData);
>>
>> $count=0;
>> foreach ($this->responseStringExplode as $this->rvalue) {
>> $this->responseArray[$this->rvalue] =
>> ($this->cellarray[$count]);
>> $count = ++$count;
>> }
>> return $this->responseArray;
>> }
>> private function sendWithCurl($url, $postData) {
>> if (!is_resource($this->connection_handle)) {
>> // Try to create one
>> if (!$this->connection_handle = curl_init()) {
>> trigger_error('Could not start new CURL instance');
>> $this->error = true;
>> return;
>> }
>> }
>> curl_setopt($this->connection_handle, CURLOPT_URL, $url);
>> curl_setopt ($this->connection_handle, CURLOPT_POST, 1);
>> $post_fields = $postData;
>> curl_setopt ($this->connection_handle, CURLOPT_POSTFIELDS,
>> $post_fields);
>> curl_setopt($this->connection_handle, CURLOPT_RETURNTRANSFER, 1);
>> $this->response_string = curl_exec($this->connection_handle);
>> curl_close($this->connection_handle);
>> return $this->response_string;
>> }
>> }
>>
>> ?>
>>
>>
>
>
> Based on a first scan of your code, it looks like the only return in
> processRequest() is inside the else block, so nothing is returned unless
> the
> processing fails.
>
> --
> Peter Ford phone: 01580 893333
> Developer fax: 01580 893399
> Justcroft International Ltd., Staplehurst, Kent
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php