mtsms.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. header('content-type:text/html;charset=utf-8');
  3. session_start();
  4. $phone=$_POST["Tel"];
  5. if(!preg_match('/^[0-9]{11,13}$/',$phone))
  6. {
  7. print("error");
  8. exit();
  9. }
  10. $randCode = '';
  11. $chars = '123456789';
  12. for ( $i = 0; $i < 4; $i++ ){
  13. $randCode .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
  14. }
  15. $_SESSION['code'] = strtolower($randCode);
  16. $encode='UTF-8';
  17. $username='wztf'; //用户名
  18. $password_md5='dc483e80a7a0bd9ef71d8cf973673924'; //32位MD5密码加密,不区分大小写
  19. $apikey='1be22b8ac3aa6b1b8f63fff34075e736'; //apikey秘钥(请登录 http://m.5c.com.cn 短信平台-->账号管理-->我的信息 中复制apikey)
  20. $mobile= $phone; //手机号,只发一个号码:13800000001。发多个号码:13800000001,13800000002,...N 。使用半角逗号分隔。
  21. $content='您好,您的验证码是:'.$_SESSION['code'].'【易通付】'; //要发送的短信内容,特别注意:签名必须设置,网页验证码应用需要加添加【图形识别码】。
  22. //$content = iconv("GBK","UTF-8",$content);z
  23. $contentUrlEncode = urlencode($content);//执行URLencode编码 ,$content = urldecode($content);解码
  24. $result = sendSMS($username,$password_md5,$apikey,$mobile,$contentUrlEncode,$encode); //进行发送
  25. if(strpos($result,"success")>-1) {
  26. echo "短信发送成功";
  27. } else {
  28. echo "请求发送短信失败";
  29. }
  30. //echo $result; //输出result内容,查看返回值,成功为success,错误为error,(错误内容在上面有显示)
  31. //发送接口
  32. function sendSMS($username,$password_md5,$apikey,$mobile,$contentUrlEncode,$encode)
  33. {
  34. //发送链接(用户名,密码,apikey,手机号,内容)
  35. $url = "http://m.5c.com.cn/api/send/index.php?"; //如连接超时,可能是您服务器不支持域名解析,请将下面连接中的:【m.5c.com.cn】修改为IP:【115.28.23.78】
  36. $data=array
  37. (
  38. 'username'=>$username,
  39. 'password_md5'=>$password_md5,
  40. 'apikey'=>$apikey,
  41. 'mobile'=>$mobile,
  42. 'content'=>$contentUrlEncode,
  43. 'encode'=>$encode,
  44. );
  45. $result = curlSMS($url,$data);
  46. //print_r($data); //测试
  47. return $result;
  48. }
  49. function curlSMS($url,$post_fields=array())
  50. {
  51. $ch=curl_init();
  52. curl_setopt($ch,CURLOPT_URL,$url);//用PHP取回的URL地址(值将被作为字符串)
  53. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//使用curl_setopt获取页面内容或提交数据,有时候希望返回的内容作为变量存储,而不是直接输出,这时候希望返回的内容作为变量
  54. curl_setopt($ch,CURLOPT_TIMEOUT,30);//30秒超时限制
  55. curl_setopt($ch,CURLOPT_HEADER,1);//将文件头输出直接可见。
  56. curl_setopt($ch,CURLOPT_POST,1);//设置这个选项为一个零非值,这个post是普通的application/x-www-from-urlencoded类型,多数被HTTP表调用。
  57. curl_setopt($ch,CURLOPT_POSTFIELDS,$post_fields);//post操作的所有数据的字符串。
  58. $data = curl_exec($ch);//抓取URL并把他传递给浏览器
  59. curl_close($ch);//释放资源
  60. $res = explode("\r\n\r\n",$data);//explode把他打散成为数组
  61. return $res[2]; //然后在这里返回数组。
  62. }
  63. ?>