/** * Registers a new account. * If registration is successful, the browser will be redirected to the to the previous page. */ public function actionSignup() { if (!Yii::app()->user->isGuest) { $this->redirect(Yii::app()->homeUrl); } $model = new SignupForm(); $model->scenario = 'captchaRequired'; // if it is ajax validation request if (isset($_POST['ajax']) && $_POST['ajax'] === 'registration-form') { echo CActiveForm::validate($model); Yii::app()->end(); } if (isset($_POST['SignupForm'])) { $model->attributes = $_POST['SignupForm']; if ($model->validate()) { if ($model->email != '' && $model->password != '') { $user = User::model()->find("email = ?", array($model->email)); $usermodel = new User(); if (!$user) { $user_invitor = User::model()->find("email = ?", array(base64_decode($model->invitor))); $activeKey = $usermodel->randomPassword(32); $usermodel->password = $usermodel->getcryptedpassword($model->password); $usermodel->name = current(explode('@', $model->email)); $usermodel->email = $model->email; $usermodel->activationkey = $activeKey; $usermodel->joindate = time(); $usermodel->level = UserPolicy::Guest; $usermodel->auth = 0; if ($user_invitor) { $usermodel->invitor = $user_invitor->id; } $usermodel->save(false); $this->counter = 0; Yii::app()->session->add('captchaRequired', $this->counter); //sendmail active account $keya = User::generateKeyActive($activeKey); $keya = str_replace('=', '', $keya); $info = array("websiteName" => substr(Yii::app()->homeUrl, 0, -1), "userEmail" => $model->email, "userPass" => "******", "activeLink" => Yii::app()->homeUrl . 'active/' . $keya); $mail = $usermodel->sendMailTemplate($model->email, Yii::t("fshare", "Verification Account Fshare"), $info, "activateRegistered"); if (!$mail) { Yii::app()->user->setFlash('error', Yii::t("fshare", "Error while sending email")); } Yii::app()->user->setFlash('title', Yii::t("fshare", "Register success")); Yii::app()->user->setFlash('msg', Yii::t("fshare", "<p><b>Please go to your registered email to activate your account perform the path we've sent.</b> </p> <p> Thank you for using our services <br /> <small> Fshare.vn </ small><br /> <small> Return home 10 seconds</ small>")); $this->redirect(array('site/message')); } else { $this->counter = Yii::app()->session->itemAt('captchaRequired') + 1; Yii::app()->session->add('captchaRequired', $this->counter); } } } } $model->invitor = Yii::app()->getRequest()->getQuery('uid'); Yii::app()->session["invitor"] = $model->invitor; $this->render('signup', array('model' => $model)); }