/** * Logs in the user using the given username and password in the model. * @return boolean whether login is successful */ public function save() { $user = new Users(); $user->setAttributes($this->attributes); $user->setAttribute("password", BaseTool::ENPWD($this->password)); if ($user->validate() && $user->save()) { $accountarray = array('user_id' => Yii::app()->db->getLastInsertID(), 'total' => 0, 'use_money' => 0, 'no_use_money' => 0, 'newworth' => 0); $newAccount = new Account(); $newAccount->setAttributes($accountarray); $newAccount->save(); //发送邮件 $activecode = BaseTool::getActiveMailCode($this->username); $message = MailTemplet::getActiveEmail($this->username, $activecode); $mail = Yii::app()->Smtpmail; $mail->SetFrom(Yii::app()->params['adminEmail']); $mail->Subject = "好帮贷测试邮件"; $mail->MsgHTML($message); $mail->AddAddress($this->email); if ($mail->Send()) { $user->updateAll(array("regtaken" => $activecode, "regativetime" => time() + 60 * 60), "username=:username", array(":username" => $this->username)); } Yii::import("application.models.form.LoginForm", true); $loginform = new LoginForm(); $loginarray = array('rememberMe' => false, 'username' => $this->username, 'password' => $this->password); $loginform->setAttributes($loginarray); if ($loginform->validate() && $loginform->login()) { } return true; } else { $usererror = $user->errors; $this->addError("username", current(current($usererror))); return false; } }
/** * 根据不同的条件验证不同的用户 */ public function checkUser($data = array()) { if (isset($data['phoneyezheng'])) { //手机认证 //判断手机跟验证码是否正确 ###########待完成############## //验证密码是否正确 if ($this->validatePassword($data['password'], $this->password)) { return array("phone" => $data['phone'], "phone_status" => 1); } else { $this->addError("password", "密码不正确!"); } } elseif (isset($data['email'])) { //邮箱的认证 //验证邮箱 if (!filter_var($data['email'], FILTER_VALIDATE_EMAIL)) { $this->addError("email", "邮箱格式不正确!"); return $data; } //登录密码不正确 if (!$this->validatePassword($data['password'], $this->password)) { $this->addError("email", "密码不正确!"); return $data; } //验证邮箱重复 if (Users::model()->count("email=:email AND email_status=1", array(":email" => $data['email'])) > 0) { $this->addError("email", "邮箱已经被占用!"); return $data; } //发送激活邮件 //发送邮件 $activecode = BaseTool::getActiveMailCode($this->username); $message = MailTemplet::getActiveEmail($this->username, $activecode); $mail = Yii::app()->Smtpmail; $mail->SetFrom(Yii::app()->params['adminEmail']); $mail->Subject = "好帮贷测试邮件"; $mail->MsgHTML($message); $mail->AddAddress($this->email); if ($mail->Send()) { $this->updateAll(array("regtaken" => $activecode, "regativetime" => time() + 60 * 60), "username=:username", array(":username" => $this->username)); Yii::app()->user->setFlash('success', "恭喜,邮件激活成功!,请尽快激活您的邮箱"); Yii::app()->user->setFlash('reurl', Yii::app()->request->urlReferrer); Yii::app()->request->redirect("/notice/success.html"); } else { $this->addError("email", "激活邮箱发送失败,请重试!"); return $data; } } elseif (isset($data['oldanswer'])) { if (empty($this->answer) && $data['answer'] != $data['oldanswer']) { $this->addError("password", "初始设置密保时,新答案应跟旧答案一样!"); return $data; } if (!empty($this->answer) && $this->answer != $data['oldanswer']) { $this->addError("password", "旧答案错误!"); return $data; } return array("answer" => $data['answer'], "question" => $data['question']); } elseif (isset($data['oldpassword'])) { if (!$this->validatePassword($data['oldpassword'], $this->password)) { $this->addError("password", "旧密码输入不正确!"); return $data; } if ($data['password'] != $data['repassword']) { $this->addError("password", "两次密码不一致!"); return $data; } if (strlen(trim($data['password'])) < 8) { $this->addError("password", "新密码最少要8位!"); return $data; } return array("password" => BaseTool::ENPWD($data['password'])); } elseif (isset($data['oldpaypassword'])) { if (empty($this->paypassword) && !$this->validatePassword($data['oldpaypassword'], $this->password)) { $this->addError("paypassword", "原始交易密码不正确!"); return $data; } if (!empty($this->paypassword) && !$this->validatePassword($data['oldpaypassword'], $this->paypassword)) { $this->addError("paypassword", "原始交易密码不正确!"); return $data; } if ($data['paypassword'] != $data['repaypassword']) { $this->addError("paypassword", "两次密码不一致!"); return $data; } if (strlen(trim($data['paypassword'])) < 8) { $this->addError("paypassword", "新密码最少要8位!"); return $data; } return array("paypassword" => BaseTool::ENPWD($data['paypassword'])); } else { return $data; } }