В yii я создаю функцию забывания пароля. Для этого пользователя вводится идентификатор электронной почты. Если этот идентификатор электронной почты верен, я хочу получить идентификатор securityQuestion из базы данных и отобразить этот вопрос пользователю. Если его ответ правильный, то ссылка для сброса пароля будет отправлена на адрес электронной почты пользователя. В контроллере я сделал действие как
public function ActionForget{if(isset($_POST['email']))
{ $record=User::model()->find(array(
'select'=>'primaryEmail',
'condition'=>'PrimaryEmail=:email',
'params'=>array(':email'=>$_POST['email']))
); if($record===null) {
$error = 'Email invalid';
} else {
$mailer = Yii::createComponent('application.extensions.mailer.EMailer');
$mailer->IsSMTP();
$mailer->IsHTML(true);
$mailer->SMTPAuth = true;
$mailer->SMTPSecure = "ssl";
$mailer->Host = "smtp.gmail.com";
$mailer->Port = 465;
$mailer->CharSet = 'UTF-8';
$mailer->Username = "[email protected]";
$mailer->Password = "abc";
$mailer->From = "[email protected]";
$mailer->FromName = "Balaee.com";
$mailer->AddAddress($record);
$mailer->Subject = "welcome to Balaee";
$mailer->IsHTML(true);
$mailer->Body = "<h1>Thanks to showing interest </h1><br>click on link for other detail ".$url="http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
if($mailer->Send()) {echo "Please check mail";}
else {echo "Fail to send your message!"; }}}
else{ $this->render('emailForm'); //show the view with the password field}}
У меня есть password.php в качестве файла просмотра для ввода основного идентификатора электронной почты и кнопки отправки.
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'email-form',
'enableClientValidation'=>true,
));
echo CHtml::textField('email');
echo CHtml::submitButton('Send');
$this->endWidget();
Но после отправки пользователем основного идентификатора электронной почты никаких действий не происходит. Так может кто-нибудь сказать мне, какие изменения мне нужно сделать