電子メールがDBに存在するかどうか、および存在するかどうかを確認し、ハッシュコードYii2Basicでパスワードをリセットするための電子メールを送信します

RosS

私のログインはユーザー名ではなくメールのみで行われ、パスワードを忘れた場合は「リンク」をクリックしてメールアドレスを入力し、そのメールアドレスがDBに存在するかどうか、存在する場合はそのメールアドレスにメールを送信します。忘れてしまった形を作っていますが、Yii2 Basicは少し新しいので、残りの作り方がわかりません。

私のDBには、フィールドid(AI)、email、password、firstname、secondnameがあります(誰かがこれを必要とする場合)

RosS

働いた人にメールを送るために:SiteControllerで

public function actionForgot() {
    $model = new ForgotForm();
    if ($model->load(Yii::$app->request->post()) && $model->validate()) {
        if ($model->sendEmail($model->email)) {
            Yii::$app->session->setFlash('success', 'Check your email for further instructions');
            return $this->goHome();
        } else {
            Yii::$app->session->setFlash('error', 'Sorry,we are unable to reset your password for email provided');
        }
    }
    return $this->render('forgot', ['model' => $model]);
}

そしてForgotFormで:

public function sendEmail() {
    $token = substr(base64_encode(sha1(mt_rand())), 0, 64);

    $model = LoginUser::find()->where(['email' => $this->email])->one();

    $model->setAttributes([
        'token' => $token
    ]);
    if ($model->save()) {
        $mail = Yii::$app->mailer->compose('redirect')
                ->setFrom('[email protected]')
                ->setTo($model->email)
                ->setSubject('Message subject');

    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ