frontend\models\PasswordResetMobileRequestForm::sendMsg PHP Метод

sendMsg() публичный Метод

public sendMsg ( )
    public function sendMsg()
    {
        $session = Yii::$app->session;
        $session->open();
        $verifyCode = (string) mt_rand(100000, 999999);
        $sent = Yii::$app->smser->send($this->mobile, "亲爱的用户,您的验证码为{$verifyCode},该验证码仅作为找回密码使用。");
        if ($sent) {
            $session['passwordResetSendNext'] = time() + 60;
            $session['passwordResetVerifyCode'] = $verifyCode;
        }
        return $sent;
    }

Usage Example

Пример #1
0
 public function actionRequestPasswordReset($type = 'sms', $step = '1')
 {
     if ($type === 'sms') {
         $session = Yii::$app->session;
         $session->open();
         if ($step !== '2') {
             $model = new PasswordResetMobileRequestForm();
             if ($model->load(Yii::$app->request->post()) && $model->validate()) {
                 if ($model->sendMsg()) {
                     $session['passwordResetTimeout'] = time() + 900;
                     // 15 minutes
                     $session['passwordResetMobile'] = $model->mobile;
                     return $this->redirect(['request-password-reset', 'type' => $type, 'step' => '2']);
                 } else {
                     $session->setFlash('smsFailure', '对不起,验证码发送失败。');
                 }
             }
         } elseif (isset($session['passwordResetTimeout']) && $session['passwordResetTimeout'] >= time()) {
             $model = new PasswordResetVerifyForm();
             $model->load(Yii::$app->request->post());
             if (Yii::$app->request->isAjax) {
                 Yii::$app->response->format = Response::FORMAT_JSON;
                 return ActiveForm::validate($model);
             }
             if (Yii::$app->request->isPost && $model->validate()) {
                 if ($model->generateToken()) {
                     $model->clearSession();
                     return $this->redirect(['reset-password', 'token' => $model->user->password_reset_token]);
                 } else {
                     $session->setFlash('resetErr', '操作失败,请稍后再试!');
                 }
             }
         } else {
             $session->setFlash('resetAgain', '对不起,请您重新开始一次。');
             return $this->redirect(['request-password-reset', 'type' => $type]);
         }
     } elseif ($type === 'email') {
         $model = new PasswordResetRequestForm();
         if ($model->load(Yii::$app->request->post()) && $model->validate()) {
             if ($model->sendEmail()) {
                 Yii::$app->getSession()->setFlash('emailSent', '我们已经为您发送了一条链接,请进入邮箱查看。');
                 return $this->refresh();
             } else {
                 Yii::$app->getSession()->setFlash('emailFailure', '对不起,我们无法对您的账户进行重置密码操作。');
             }
         }
     } else {
         throw new BadRequestHttpException('参数错误!');
     }
     return $this->render('requestPasswordResetToken', ['model' => $model, 'type' => $type, 'step' => $step]);
 }
PasswordResetMobileRequestForm