public
function
actionLogin()
{
if
(!Yii::
$app
->admin->isGuest) {
return
$this
->redirect([
'index'
]);
}
$checklogins
= Checklogin::findAll([
'ip'
=>
$_SERVER
[
'REMOTE_ADDR'
],
'del'
=>1]);
if
(
$checklogins
){
$when
= [];
foreach
(
$checklogins
as
$checklogin
){
$when
[]=
intval
(
$checklogin
[
'when'
]);
}
if
(time() <= max(
$when
)){
throw
new
yiiwebHttpException(404,
'شما سه بار نام کاربری یا رمز عبور را اشتباه وارد کرده اید و برای یک ساعت مجاز به دیدن صفحه ورود نیستید.'
);
}
}
$this
->view->title =
'ورود'
;
$this
->view->params[
'breadcrumbs'
][] =
$this
->view->title;
$model
=
new
LoginForm();
if
(
$model
->load(Yii::
$app
->request->post()) &&
$model
->login()) {
$ip
=
$_SERVER
[
'REMOTE_ADDR'
];
Checklogin::deleteAll([
'ip'
=>
$ip
]);
return
$this
->redirect([
'index'
]);
}
else
{
$ip
=
$_SERVER
[
'REMOTE_ADDR'
];
Checklogin::deleteAll([
'ip'
=>
$ip
,
'del'
=>1]);
$checklogin
=
new
Checklogin();
$checklogin
->ip =
$ip
;
$checklogin
->when =
strval
(time()+Yii::
$app
->params[
'check_login_time'
]);
$checklogin
->del = 0;
$checklogin
->save();
$faild
= Checklogin::find()->where([
'ip'
=>
$ip
])->
count
();
if
(
$faild
== 3 ){
Yii::
$app
->session->setFlash(
'warning'
,
'لطفا دقت کنید. در صورت اشتباه وارد کردن تا یک ساعت این صفحه برایتان مسدود میشود.'
);
}
if
(
$faild
== 4 ){
Checklogin::updateAll([
'del'
=>1],
'del=0'
);
throw
new
yiiwebHttpException(404,
'شما سه بار نام کاربری یا رمز عبور را اشتباه وارد کرده اید و برای یک ساعت مجاز به دیدن صفحه ورود نیستید.'
);
}
}
return
$this
->render(
'login'
, compact(
'model'
));