Php 在Yii应用程序中获取用户id时出现问题
我有一个在生产环境中运行的站点,它运行得很好,我对代码做了一些更改,所以我将它复制到localhost。该网站有一个用户管理系统,需要登录。用户登录后,将重定向到mysite.com/admin/index 用户验证正在进行,UserIdentity类中的authenticate类返回错误代码为0。然而,当用户转到WebUser类时,当我检查$this->id时,它返回一个空值。此外,Yi::app()->user->id不存在 以下是我的代码的相关部分: 在main.php中Php 在Yii应用程序中获取用户id时出现问题,php,yii,Php,Yii,我有一个在生产环境中运行的站点,它运行得很好,我对代码做了一些更改,所以我将它复制到localhost。该网站有一个用户管理系统,需要登录。用户登录后,将重定向到mysite.com/admin/index 用户验证正在进行,UserIdentity类中的authenticate类返回错误代码为0。然而,当用户转到WebUser类时,当我检查$this->id时,它返回一个空值。此外,Yi::app()->user->id不存在 以下是我的代码的相关部分: 在main.php中 'compone
'components'=>array(
'user'=>array(
// enable cookie-based authentication
// 'allowAutoLogin'=>true,
'class' => 'WebUser',
'loginUrl'=>array('site/login'),
),
// uncomment the following to enable URLs in path-format
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'rules'=>array(
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
),
),
在my SiteController.php中,当我在登录后检查userid时,它会返回正确的值,但在用户被重定向到admin/index并且我检查userid的值后,它不会显示任何值
有人能告诉我缺少什么吗?下面的代码保存url状态,
请求
admin/edit/3
->重定向到登录页面
->重定向到admin/edit/3
请求
登录页面
->重定向管理员/索引
$this->redirect(Yii::app()->getUser()->getReturnUrl('admin/index'));
如果只从代码中做出决定,而其他什么都不重要,那么它看起来像是验证
Yii::app()->user->returnUrl == '/index.php'
这总是错误的。您只需在调试器中的此品脱处停止代码,或简单地输入“dump'n'stop code”即可对此进行调试:
在这条线之前
$this->redirect(Yii::app()->user->returnUrl == '/index.php'? '/admin/index': Yii::app()->user->returnUrl);
我不明白你的意思。你停留在
site.com/admin/edit/3
上,并且你的会话已经过期,按f5
,成功登录后,你回到site.com/admin/edit/3
notadmin/index
现在,当我在site/login时,我看到登录表单,它会在验证时将我重定向到admin/index。继续点击site/admin/edit/3只会给我一个404。admin/edit/3
只是你的私人页面与admin/index
不同的一个例子,我还是不明白。
var_dump(
Yii::app()->user->returnUrl == '/index.php',
Yii::app()->user->returnUrl
);
die();
$this->redirect(Yii::app()->user->returnUrl == '/index.php'? '/admin/index': Yii::app()->user->returnUrl);