Curl выводит имя переменной вместо ее содержимого - PullRequest
0 голосов
/ 16 мая 2011

Ниже мой код, после поиска и работы всю ночь, я наконец понял, как заставить его отправлять смс.Проблема в том, что я не могу оставить пробелы в теле сообщения, и оно не отображает значение $smsmessage.

extract($_POST);

$smsmessage1 = "This is the sms that will be sent";
$smsmessage = urlencode($smsmessage1);

//set POST variables
$url = 'http://www.mysmsgateway.com/bulksms/bulksms.php?username=myemail@domain.com&password=123456789&message=$smsmessage&mobile=2348035081907&sender=Boss';
$fields = array();

//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string,'&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch); 

Приведенные выше коды отправляют сообщение, но выводят $smsmessage вместо извлечениязначение $smsmessage сверху.

Ответы [ 3 ]

6 голосов
/ 16 мая 2011

Вы используете одинарные кавычки для указания $url, что означает, что $smsmessage не будет интерпретироваться.

Вместо этого вам нужно использовать двойные кавычки:

$url = "http://www.mysmsgateway.com/bulksms/bulksms.php?username=myemail@domain.com&password=123456789&message=$smsmessage&mobile=2348035081907&sender=Boss";

Подробнее о разнице между ними см. PHP: Строки в руководстве по PHP.

0 голосов
/ 16 мая 2011

Вы используете одинарные кавычки вместо двойных.Только двойные кавычки будут анализировать переменные для вас.Поэтому вместо ввода:

$url = 'http://www.mysmsgateway.com/bulksms/bulksms.php?username=myemail@domain.com&password=123456789&message=$smsmessage&mobile=2348035081907&sender=Boss';

Попробуйте использовать двойные кавычки и введите:

$url = "http://www.mysmsgateway.com/bulksms/bulksms.php?username=myemail@domain.com&password=123456789&message=$smsmessage&mobile=2348035081907&sender=Boss";
0 голосов
/ 16 мая 2011

Переменные, помещенные в одинарные кавычки, не оцениваются в php, помещайте их в двойные кавычки.как

//set POST variables 
$url = "http://www.mysmsgateway.com/bulksms/bulksms.php?username=myemail@domain.com&password=123456789&message=$smsmessage&mobile=2348035081907&sender=Boss"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...