Esempio n. 1
0
 /**
  * @brief 发送短信
  * @param string $mobile 手机号
  * @param string $content 短信内容
  * @param int $delay 延迟设置
  * @return success or fail
  */
 public static function send($mobile, $content, $delay = 1)
 {
     if (self::$smsInstance == null) {
         $platform = self::getPlatForm();
         switch ($platform) {
             case "zhutong":
                 $classFile = IWeb::$app->getBasePath() . 'plugins/hsms/zhutong.php';
                 require $classFile;
                 self::$smsInstance = new zhutong();
                 break;
             default:
                 $classFile = IWeb::$app->getBasePath() . 'plugins/hsms/haiyan.php';
                 require $classFile;
                 self::$smsInstance = new haiyan();
         }
     }
     if (IValidate::mobi($mobile) && $content) {
         $ip = IClient::getIp();
         if ($ip) {
             if ($delay == 1) {
                 $mobileKey = md5($ip);
                 $sendTime = ISession::get($mobileKey);
                 if ($sendTime && time() - $sendTime < 60) {
                     return false;
                 }
                 ISession::set($mobileKey, time());
             }
             return self::$smsInstance->send($mobile, $content);
         }
     }
     return false;
 }
Esempio n. 2
0
 function send_message_mobile()
 {
     $username = IFilter::act(IReq::get('username'));
     $mobile = IFilter::act(IReq::get('mobile'));
     if ($username === null || !Util::is_username($username)) {
         die("请输入正确的用户名");
     }
     if ($mobile === null || !IValidate::mobi($mobile)) {
         die("请输入正确的手机号码");
     }
     $userDB = new IModel('user as u , member as m');
     $userRow = $userDB->getObj('u.username = "******" and m.mobile = "' . $mobile . '" and u.id = m.user_id');
     if ($userRow) {
         $findPasswordDB = new IModel('find_password');
         $dataRow = $findPasswordDB->query('user_id = ' . $userRow['user_id'], '*', 'addtime', 'desc');
         $dataRow = current($dataRow);
         //120秒是短信发送的间隔
         if (isset($dataRow['addtime']) && time() - $dataRow['addtime'] <= 120) {
             die("申请验证码的时间间隔过短,请稍候再试");
         }
         $mobile_code = rand(10000, 99999);
         $findPasswordDB->setData(array('user_id' => $userRow['user_id'], 'hash' => $mobile_code, 'addtime' => time()));
         if ($findPasswordDB->add()) {
             $content = smsTemplate::findPassword(array('{mobile_code}' => $mobile_code));
             $result = Hsms::send($mobile, $content);
             if ($result == 'success') {
                 die('success');
             }
             die('短信发送失败');
         }
     } else {
         die('手机号码与用户名不符合');
     }
 }