[
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['login','index','apply','error','init','wechat','verify','verifytel','captcha','forget','newpassword'],
'allow' => true,
],
[
'actions' => ['logout','index','home'],
'allow' => true,
'roles' => ['@'],
],
],
],
'verbs' => [
'class' => VerbFilter::className(),
'actions' => [
'logout' => ['post'],
],
],
];
}
/**
* @inheritdoc
*/
public function actions()
{
return [
// 'error' => [
// 'class' => 'yii\web\ErrorAction',
// ],
'captcha' => [
'class' => 'yii\captcha\CaptchaAction',
// 'fixedVerifyCode' => YII_ENV_TEST ? 'test' : null,
'maxLength' => 4,
'minLength' => 4,
],
// 'captcha' => [
// 'class' => 'yii\captcha\CaptchaAction',
// 'fixedVerifyCode' => YII_ENV_TEST ? 'testme' : null,
// 'backColor'=>0x000000,//背景颜色
// 'maxLength' => 6, //最大显示个数
// 'minLength' => 5,//最少显示个数
// 'padding' => 5,//间距
// 'height'=>40,//高度
// 'width' => 130, //宽度
// 'foreColor'=>0xffffff, //字体颜色
// 'offset'=>4, //设置字符偏移量 有效果
//// 'controller'=>'login', //拥有这个动作的controller
// ],
];
}
public function actionWechat(){
$wechat = new WeChat();
echo $wechat->checkToken();
}
/**
* Displays homepage.
*
* @return mixed
*/
public function actionIndex()
{
if (Yii::$app->user->isGuest) {
return $this->redirect(['site/login']);
//return $this->goHome();
}
return $this->render('index');
}
public function actionHome()
{
// $this->layout= 'iframe';
return $this->render('home');
}
/**
* Logs in a user.
*
* @return mixed
*/
public function actionLogin()
{
if (!Yii::$app->user->isGuest) {
return $this->redirect(['site/index']);
//return $this->goHome();
}
$model = new LoginForm();
$cookies=Yii::$app->response->cookies;
if(Yii::$app->request->isPost){
if ($model->load(Yii::$app->request->post()) && $model->login()) {
$rememberMe=(Yii::$app->request->post('rememberMe'))?1:0;
if($rememberMe==1){
$cookietime = time()+60*60*24*30*3;
$cookies->add(new\yii\web\Cookie([
'name'=>'username',
'value'=>Yii::$app->request->post('LoginForm')['username'],
'expire'=>$cookietime
]));
$cookies->add(new\yii\web\Cookie([
'name'=>'password',
'value'=>Yii::$app->request->post('LoginForm')['password'],
'expire'=>$cookietime
]));
$cookies->add(new\yii\web\Cookie([
'name'=>'rememberme',
'value'=>$rememberMe,
'expire'=>$cookietime
]));
}
return $this->redirect(['site/index']);
} else {
$this->admin_alert("账号密码错误,请重新输入!","");
// Yii::$app->getSession()->setFlash('error', '账号密码错误,请重新输入!');
}
}else{
if(!empty($cookies['username'])&&!empty($cookies['password'])){
$model->username = $cookies->getValue('username');
$model->password = $cookies->getValue('password');
if( $model->login()){
return $this->redirect(['site/index']);
}else{
$cookies = Yii::$app->response->cookies;
$cookietime = time();
$cookies->add(new\yii\web\Cookie([
'name'=>'username',
'value'=>$cookies->getValue('username'),
'expire'=>$cookietime
]));
$cookies->add(new\yii\web\Cookie([
'name'=>'password',
'value'=>$cookies->getValue('password'),
'expire'=>$cookietime
]));
$cookies->remove('username');
$cookies->remove('password');
$this->admin_alert("密码错误,请重新输入!","");
// Yii::$app->getSession()->setFlash('error', '密码错误,请重新输入!');
// return $this->redirect(['site/login']);
}
}
}
return $this->render('login', [
'model' => $model,
]);
// $checkCode = new CheckVerifCode();
// return $this->render('login', []);
// $wechat = new WeChat();
// $isWecha = $wechat->isWecha();//判断是否微信登陆
// if ($isWecha) {
// $code = Yii::$app->request->get('code');
// if (!empty($code)) {
// $info = $wechat->getAccess_token($code);
// if ($info == false) {
// echo "授权失败";
// exit;
// }
// $results = $wechat->getUserInfo($info);
// $cookies = Yii::$app->response->cookies;
// $cookies->add(new Cookie(['name'=>'headimgurl','value'=>$results->headimgurl]));
// $wechatdata = UserCompany::find()->where('openid=:openid', [':openid' => $info->openid])->one();
// if ($wechatdata && Yii::$app->user->login(User::findOne($wechatdata['uid'])))//存在设为登陆状态
// {
// return $this->redirect(['/wechat/site/index']);
// }else{
// if(!Yii::$app->user->isGuest){
// return $this->redirect(['/wechat/site/index']);
// }
// $model = new LoginForm();
// $headimgurl = Yii::$app->request->cookies->getValue('headimgurl');
// if ($model->load(Yii::$app->request->post()) && $model->login()) {
// return $this->redirect(['/wechat/site/index'])/*$this->goBack()*/;
// } else {
// return $this->render('login', [
// 'model' => $model,
// 'headimgurl'=>$headimgurl
// ]);
// }
// }
// } else {
// $backurl = Yii::$app->request->getHostInfo() . Yii::$app->request->url;//完整地址
// return $this->redirect($wechat->markUrl($backurl));
// }
// }
// if (!Yii::$app->user->isGuest) {
// return $this->goHome();
// }
//
// $model = new LoginForm();
// if ($model->load(Yii::$app->request->post()) && $model->login()) {
// return $this->redirect(['site/index'])/*$this->goBack()*/;
// } else {
// return $this->render('login', [
// 'model' => $model,
// ]);
// }
// return $this->render('login',['model'=>new LoginForm(),'headimgurl'=>'']);
}
/**
* Logs out the current user.
*
* @return mixed
*/
public function actionLogout()
{
Yii::$app->user->logout();
return $this->redirect(['site/login']);
}
/**
* Displays contact page.
*
* @return mixed
*/
public function actionContact()
{
$model = new ContactForm();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
if ($model->sendEmail(Yii::$app->params['adminEmail'])) {
Yii::$app->session->setFlash('success', 'Thank you for contacting us. We will respond to you as soon as possible.');
} else {
Yii::$app->session->setFlash('error', 'There was an error sending your message.');
}
return $this->refresh();
} else {
return $this->render('contact', [
'model' => $model,
]);
}
}
/**
* Displays about page.
*
* @return mixed
*/
public function actionAbout()
{
return $this->render('about');
}
/**
* Signs user up.
*
* @return mixed
*/
public function actionSignup()
{
$this->layout= 'iframe';
$model = new SignupForm();
if ($model->load(Yii::$app->request->post())) {
if ($user = $model->signup()) {
if (Yii::$app->getUser()->login($user)) {
return $this->goHome();
}
}
}
return $this->render('signup', [
'model' => $model,
]);
}
/**
* Requests password reset.
*
* @return mixed
*/
public function actionRequestPasswordReset()
{
$model = new PasswordResetRequestForm();
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
if ($model->sendEmail()) {
Yii::$app->session->setFlash('success', 'Check your email for further instructions.');
return $this->goHome();
} else {
Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for the provided email address.');
}
}
return $this->render('requestPasswordResetToken', [
'model' => $model,
]);
}
/**
* Resets password.
*
* @param string $token
* @return mixed
* @throws BadRequestHttpException
*/
public function actionResetPassword($token)
{
try {
$model = new ResetPasswordForm($token);
} catch (InvalidParamException $e) {
throw new BadRequestHttpException($e->getMessage());
}
if ($model->load(Yii::$app->request->post()) && $model->validate() && $model->resetPassword()) {
Yii::$app->session->setFlash('success', 'New password saved.');
return $this->goHome();
}
return $this->render('resetPassword', [
'model' => $model,
]);
}
//验证绑定图片验证码、发送图片
public function actionVerify(){
if(!session_id()) session_start();
$code = Yii::$app->request->post('code');
$tel = Yii::$app->request->post('tel');
$code1 =$_SESSION['code'] /*Yii::$app->session['code']*/;
// $result=['sign'=>4000,'msg'=>$code1];
// return json_encode($result);
if($code==$code1){
$model = SortMessage::find()->where('tel=:tell and created_at >= :time',[':tell'=>$tel,':time'=>(time()-120)])->orderBy('created_at DESC')->one();
$result=['sign'=>1,'msg'=>"已发送"];
if(preg_match("/^1[34578]\d{9}$/", $tel)){
$user_tel = UserCompany::find()->where('tel=:tel',[':tel'=>$tel])->one();
if(!empty($user_tel)){
$miodel_code = rand(100000,999999);
$model = new SortMessage();
$model->tel = $tel;
$model->code = "".$miodel_code;
$model->created_at = time();
if($model->validate()&&$model->save()){
// .Yii::$app->params["sitetitile"].
LMMessage::SendMessage($tel,'【'.Yii::$app->params['sitetitle'].'】验证码:'.$miodel_code);
$result=['sign'=>1,'msg'=>"发送成功"];
}else{
$result=['sign'=>4000,'msg'=>"短信发送失败"];
}
}else{
$result=['sign'=>4000,'msg'=>"请填写正确的手机号"];
}
}else{
$result=['sign'=>4000,'msg'=>"手机格式错误"];
}
}else{
$result=['sign'=>4000,'msg'=>'验证码不一致'];
}
return json_encode($result);
}
public function actionVerifytel(){
$code = Yii::$app->request->post('code');
$tel = Yii::$app->request->post('tel');
$result=['sign'=>1,'msg'=>"已发送"];
$model = SortMessage::find()->where('tel=:tell and created_at >= :time',[':tell'=>$tel,':time'=>(time()-1800)])->orderBy('created_at DESC')->one();
if(!empty($model)&&$code==$model->code){
$result=['sign'=>1,'msg'=>"验证成功"];
// $user = UserCompany::find()->where('tel=:tel',[':tel'=>$tel])->one();
// $user->openid = Yii::$app->request->cookies->getValue("acc_openid");
// $user->updated_at = time();
// if($user->validate()&&$user->save()){
// if( Yii::$app->user->login(User::findOne($user->uid))){
// $result=['sign'=>1,'msg'=>"登录成功"];
// }else{
// $result=['sign'=>1,'msg'=>"登录失败"];
// }
// }else{
// $result=['sign'=>4000,'msg'=>"绑定失败"];
// }
}else{
$result=['sign'=>4000,'msg'=>"验证码错误"];
}
return json_encode($result);
}
//弹窗提示
function admin_alert($alert,$href=''){
if(empty($href)){
exit("");
}else{
exit("");
}
}
//找回密码
public function actionForget(){
return $this->render('forget');
}
//新密码
public function actionNewpassword(){
$password1 = Yii::$app->request->post('password1');
$password2 = Yii::$app->request->post('password2');
$tel = Yii::$app->request->post('tel');
$result=['sign'=>4000,'msg'=>$password1."、".$password2."、".$tel];
if($password1 == $password2){
$user = UserCompany::find()->where('tel=:tel',[':tel'=>$tel])->one();
if(!empty($user)){
$model = User::find()->where('id=:id',[':id'=>$user->uid])->one();
$possword = Yii::$app->security->generatePasswordHash($password1);
$model->password_hash = $possword;
$model->updated_at = time();
if($model->validate() && $model->save()){
$result=['sign'=>1,'msg'=>"修改成功"];
}else{
$result=['sign'=>4000,'msg'=>"修改失败"];;
}
}else{
$result=['sign'=>4000,'msg'=>"用户不存在"];
}
}else{
$result=['sign'=>4000,'msg'=>"两次密码不一致"];
}
return json_encode($result);
}
/**
* 申请装修公司
*/
public function actionApply()
{
if(Yii::$app->request->isPost)
{
$model = new CompanyApply();
if($model->load(Yii::$app->request->post()))
{
if($model->validate()&&$model->save())
{
Yii::$app->getSession()->setFlash('success', '申请成功');
}else{
Yii::$app->getSession()->setFlash('error', '申请失败');
}
}
return $this->redirect(Yii::$app->request->referrer);
}
return $this->render('apply');
}
}