项目需求:网站是有一个留言表单,当有留言的时候,以前多数是以邮件的方式来通知自己,现在有需求是留言的时候,发送一条短信给自己手机。
网站前台留言,通过短信通知网站管理员。
这里我们以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]; // 短信结束
由此就可以实现当有人在网站上留言的时候,自动发送一条通知信息到手机上。