Php 在Yii应用程序中获取用户id时出现问题

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

我有一个在生产环境中运行的站点,它运行得很好,我对代码做了一些更改,所以我将它复制到localhost。该网站有一个用户管理系统,需要登录。用户登录后,将重定向到mysite.com/admin/index

用户验证正在进行,UserIdentity类中的authenticate类返回错误代码为0。然而,当用户转到WebUser类时,当我检查$this->id时,它返回一个空值。此外,Yi::app()->user->id不存在

以下是我的代码的相关部分:

在main.php中

'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
not
admin/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);