项目需求:网站是有一个留言表单,当有留言的时候,以前多数是以邮件的方式来通知自己,现在有需求是留言的时候,发送一条短信给自己手机。
网站前台留言,通过短信通知网站管理员。
这里我们以PB为例子,其他的程序如织梦,帝国,PHPCMS,大概都是差不多的。
弟一种解决方案:
我们使用AJQX无刷新发送表单。
我们以:haoservice.com的API为例子,例子中我加了两种,一种是短信的,一种是语音的,都可以使用。
<script>
//ajax提交留言
function submsg(obj){
var url='{pboot:msgaction}';
var contacts=$(obj).find("#contacts").val();
var mobile=$(obj).find("#mobile").val();
var content=$(obj).find("#content").val();
var checkcode=$(obj).find("#checkcode").val();
var reg = /^(1|0)[d-]+$/;
if (!reg.test(mobile)) {
alert('电话号码错误!');
return false;
}
$.ajax({
type: 'POST',
url: url,
dataType: 'json',
data: {
contacts: contacts,
mobile: mobile,
content: content,
checkcode: checkcode
},
success: function (response, status) {
if(response.code){
alert("谢谢您的反馈,我们会尽快联系您!");
//短信验证码接口
var settings = {
"async": true,
"crossDomain": true,
"url": "http://apis.haoservice.com/sms/sendv2?mobile=手机号&tpl_id=2&content=中间的省略掉,具体的官网会给出文档e4%bf%a1&key=your_AppKey",
"method": "GET",
"headers": {}
}
$.ajax(settings).done(function (response) { console.log(response);
});
//短信验证码接口
//语音验证码接口
var settings = {
"async": true,
"crossDomain": true,
"url": "这里是你的KEY ",
"method": "GET",
"headers": {}
}
$.ajax(settings).done(function (response) {
console.log(response);
});
//语音验证码接口
$(obj)[0].reset();
}else{
alert(response.data);
}
},
error:function(xhr,status,error){
alert('返回数据异常!');
}
});
return false;
}
</script>
第二种解决方案:
假如API接口不提供JS文档,那么我们可以使用相关的PHP文档。
找到文件:
/apps/home/controller/MessageController.php
在发送邮件的后面添加以下代码,这个是以短信宝为例子,其他的平台也差不多。
找到这一句,sendmail($this->config(), $this->config('message_send_to'), $mail_subject, $mail_body);在这个后面添加以下内容
// 短信开始
$statusStr = array(
"0" => "短信发送成功",
"-1" => "参数不全",
"-2" => "服务器空间不支持,请确认支持curl或者fsocket,联系您的空间商解决或者更换空间!",
"30" => "密码错误",
"40" => "账号不存在",
"41" => "余额不足",
"42" => "帐户已过期",
"43" => "IP地址限制",
"50" => "内容含有敏感词"
);
$smsapi = "http://api.smsbao.com/";
$user = "平台账号"; //短信平台帐号
$pass = md5("你的密码"); //短信平台密码
$content="你的网站收到一条咨询信息,请注意查收";//要发送的短信内容
$mail_bodys = ',来自网站 ' . get_http_url() . ' (' . date('Y-m-d H:i:s') . ')';
$phone = "15899750475";//要发送短信的手机号码
$sendurl = $smsapi."sms?u=".$user."&p=".$pass."&m=".$phone."&c=".urlencode($content).urlencode($mail_bodys);
$result =file_get_contents($sendurl) ;
echo $statusStr[$result];
// 短信结束
由此就可以实现当有人在网站上留言的时候,自动发送一条通知信息到手机上。