我试图从 Angular 访问 PHP API URL 来发送短信。
如果消息中没有空格,则一切正常,但如果我添加空格,则不会收到任何消息。
下面是我的 PHP 代码:
<?php
header('Access-Control-Allow-Headers:Content-Type,x-prototype-version,x-requested-with');
header('Cache-Control:max-age=900');
include_once("conn.php");
$phno=$_POST['phno'];
$msg=$_POST['msg'];
$final = array();
$msg='Thank you.';
sms($phno,$msg);
$final['status']='success';
$final['message']="Success";
echo json_encode($final);
function sms($phonesms,$msg)
{
//echo 'hello';
$url = 'http://sms.domain.com/Api.aspx?usr=abcapi&pwd=pass123&smstype=TextSMS&to='.$phonesms.'&rout=Transactional&from=SMSACT&msg='.$msg;
echo $url;
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$err = curl_error($ch);
curl_close($ch);
}
?>
Run Code Online (Sandbox Code Playgroud)
所以如果$msg='Thank you.';短信不去,如果$msg='Thankyou.';短信去。
我确信我还需要在这里做一些事情 -$url = 'http://sms.domain.com/Api.aspx?usr=abcapi&pwd=pass123&smstype=TextSMS&to='.$phonesms.'&rout=Transactional&from=SMSACT&msg='.$msg;
字符串连接不是构建 URL 的理想方法。如果您这样做,请确保对所有参数应用正确的转义。
$url = 'http://sms.domain.com/Api.aspx?usr=abcapi&pwd=pass123&smstype=TextSMS&to='
. urlencode($phonesms)
. '&rout=Transactional&from=SMSACT&msg='
. urlencode($msg);
Run Code Online (Sandbox Code Playgroud)
注意:URL 中的许多字符不合法或具有特殊含义,例如空格;这会将您的空格转换为“+”字符,这是它们的“转义”版本。
请参阅https://www.php.net/manual/en/function.urlencode.php了解更多信息。
| 归档时间: |
|
| 查看次数: |
1206 次 |
| 最近记录: |