Class not returning value
Class not returning value
am 25.11.2009 09:52:09 von Pieter du Toit
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:
/**
*
* @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
";
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 . "
";
} 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=x xxx&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;
}
}
?>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Re: Class not returning value
am 25.11.2009 10:43:54 von Peter Ford
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:
>
>
> /**
> *
> * @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
";
> 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 . "
";
> } 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=x xxx&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
Re: Class not returning value
am 25.11.2009 11:07:56 von Pieter du Toit
Sorry i found the problem, need to do this:
public function getResult()
{
$this->processRequest();
return $this->responseArray;
}
""Pieter du Toit"" wrote in message
news:57.90.33335.88FEC0B4@pb1.pair.com...
> 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:
>
>
> /**
> *
> * @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
";
> 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 . "
";
> } 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=x xxx&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;
> }
> }
>
> ?>
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
Re: Class not returning value
am 25.11.2009 11:25:29 von Pieter du Toit
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" wrote in message
news:CF.A1.33335.D5CFC0B4@pb1.pair.com...
> 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:
>>
>>
>> /**
>> *
>> * @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
";
>> 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 . "
";
>> } 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=x xxx&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