[size="7"][/size]Hi All,
I am facing problem to activate an user by click on activation link that sent by email.
Here is my code-
UserController.php:
public function actionCreate()
{
$model=new User;
// Uncomment the following line if AJAX validation is needed
$this->performAjaxValidation($model);
if(isset($_POST['User']))
{
$model->attributes=$_POST['User'];
$model->createtime=date('Y-m-d H:i:s');
$model->activationcode = sha1(mt_rand(10000, 99999).time().$model->email);
if($model->save())
{
$to = $model->email;
$subject = "Welcome To My Site!"
$message2 = "<html>
<body>Please click this below to activate your membership<br />".
Yii::app()->createAbsoluteUrl('user/check', array('activationcode' => $model->activationcode))."
Thanks you
</body>
</html>";
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: My Site < admin@mysite.com>' . "\r\n";
mail($to,$subject,$message2,$headers);
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create', array('model'=>$model));
}
UserController.php:
public function actionCheck()
{
$activationcode = Yii::app()->request->getQuery('activationcode');
// collect user input data
if(isset($activationcode))
{
$model = User::model()->find('activationcode=:activationcode', array(':activationcode'=>$activationcode));
if($activationcode == $model->activationcode)
{
$model->status=1;
//$model->validate();
$model->save();
Yii::app()->user->setFlash('check','Thank you for register with us');
$this->refresh();
}
}
// display the login form
$this->render('check',array('model'=>$model));
}
View file check.php:
<?php if(Yii::app()->user->hasFlash('check')): ?>
<div class="flash-success">
<?php echo Yii::app()->user->getFlash('check'); ?>
</div>
<?php endif; ?>
After click on activation link then status is not changed to 1. I need quick help.
With thanks,
MRS