ورود

View Full Version : مشکل با سیستم لاگین yii



hooman.pro
یک شنبه 02 شهریور 1393, 09:17 صبح
سلام یک یوزر در yii لاگین شده. حالا رکورد یوزر از جدول پاک میشود. اما همچنان سشن یا کوکی معتبر است و یوزر را لاگین شده نشان میدهد
چی کار کنم که هر بار چک کند و اگر id در database موجود نیست کوکی و یا شسن را نا معتبر کند؟

rezaonline.net
دوشنبه 03 شهریور 1393, 20:37 عصر
$user = User::model()->findByPk(Yii::app()->user->id);
if(empty($user))
{
Yii::app()->user->logout();
$this->redirect(Yii::app()->homeUrl);
}

hooman.pro
دوشنبه 03 شهریور 1393, 21:02 عصر
ممنون آقا رضا
اما من این کد رو دقیقا کجا بزارم که کاربر وارد هر صفحه ای شد حتما اعمال بشه؟!

SlowCode
دوشنبه 03 شهریور 1393, 23:42 عصر
تو فایل Controller.php در پوشه protected/components این کد رو اضافه کن:


public function init()
{
parent::init();
if(!Yii::app()->user->isGuest())
{
$user = User::model()->findByPk(Yii::app()->user->id);
if(empty($user))
{
Yii::app()->user->logout();
$this->redirect(Yii::app()->homeUrl);
}
}
}

البته تست نکردم ولی فکر کنم کار کنه:چشمک:

MMSHFE
چهارشنبه 05 شهریور 1393, 10:13 صبح
راه خلاصه تر:

public function init()
{
parent::init();
if(!Yii::app()->user->isGuest && !User::model()->exists('id=:id',array(':id'=>Yii::app()->user->id))) {
Yii::app()->user->logout();
$this->redirect(Yii::app()->homeUrl);
}
}

hooman.pro
سه شنبه 11 شهریور 1393, 14:36 عصر
اساتید محترم کلا این کار بیس برنامه رو به هم میزنه و نمیزاره ک یوزر لاگین بشه خودتون تست بفرمایید...

MMSHFE
سه شنبه 11 شهریور 1393, 14:40 عصر
یه ! قبل شرط دوم جا افتاده بود. الان درست شد.

hooman.pro
چهارشنبه 12 شهریور 1393, 10:57 صبح
خیر کار نمیکنه اولا که isGuest() نباید پرانتز باز و بسته داشته باشه ارور میگیره
دوما با ! هم کار نمیکنه اگر خودتون یکبار تست کنید بد نیست ممنون

MMSHFE
چهارشنبه 12 شهریور 1393, 11:35 صبح
پرانتزها رو برداشتم ولی دیگه مشکلی نداشت و کد بدون مشکل کار میکرد.

hooman.pro
چهارشنبه 12 شهریور 1393, 12:48 عصر
رو یک پروژه دیگه تست کردم درست بود ممنون نمیدونم مشکل از کجای پروژه من بود که وقتی میزارم دیگه لاگین صورت نمیگیره