Отправка электронных писем о регистрации пользователя на почтовый ящик пользователя с использованием инфраструктуры YII - PullRequest
0 голосов
/ 22 декабря 2011

Я занимаюсь разработкой веб-приложения с использованием фреймворка Yii. В настоящее время я нахожусь в процессе внедрения входа в систему приложения. Я хочу отправить электронное письмо на адрес электронной почты Пользователя, содержащий ссылку для подтверждения регистрации по этой ссылке. Может ли кто-нибудь, кто сделал такую ​​реализацию до использования платформы Yii или ее расширения, поделиться со мной идеями. Заранее спасибо за любую помощь

Ответы [ 2 ]

2 голосов
/ 22 декабря 2011

Это очень просто, я предлагаю вам сделать это самостоятельно, я думаю, это сэкономит много времени, чем изучение того, как внедрить и использовать новое расширение.

Добавьте столбцы CHECK_SUM, STATUS в свою пользовательскую таблицу.CHECK_SUM используется для хранения зашифрованного значения или любых случайных значений, которые можно использовать для проверки пользователя, а в столбце STATUS по умолчанию установлено значение 0, когда проверяется адрес электронной почты, задайте для него значение 1, чтобы эта учетная запись могла войти в систему.

Когда пользователи отправляют свои регистрационные формы:

function encrypt($pswd)
{
   ....//make your own encrypt method to store uses' password
}
//suppose your user model is Users
$users->email=$_POST['email'];
$users->pswd=encrypt($_POST['pswd']);
...
//here comes the customized part
$users->check_sum=sha1($_POST['email'].time());//or other method to make a safe random string
if($users->save())
{
  $to=...;
  $subject=...;
  //suppose your reg page is in reg controller.
  $msg='please visit <a href="domain.com/reg/check?sum='.$users->check_sum.'">this url</a> to finish registration';
  mail($to,$subject,$msg,$header);
}

В своем контроллере reg добавьте:

    public function actionCheck()
    {
     if(isset($_GET['sum']))
     {
      $c=new CDbCriteria;
      $c->condition="check_sum=:i";
      $c->params=array($i=>$_GET['sum']);
      $user=Users::model()->find($c);
      if($user)
      {
       $user->status=1;
       $user->save();
       $this->redirect('http://...');
      }
     }
    }

Это мое решение.

0 голосов
/ 22 декабря 2011

На самом деле есть расширение для управления пользователями yii-user , это модуль со многими функциями, включая регистрацию.Вы всегда можете обратиться к исходному коду для разработки собственной системы регистрации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...