Yii:有什么办法可以在注销后保持会话不清晰
Yii: Does any way to keep the session unclear after logout
我使用会话值来检查当前语言,但我们注销后,所有会话值都被清除并且语言更改为默认语言。以任何方式在注销后保持会话不清晰。
我认为这不太确定。
使用 Yii::app()->user->logout(false)
。它只会从会话中删除与身份验证相关的信息,并保持其他数据完整无缺。
使用会话来存储语言不是一个好的选择(真相是最糟糕的)。
那用什么?
您应该要么使用 cookies,因为语言不重要或机密数据(我认为如此)。即使用户不知何故丢失了他 select 所使用的语言,他也可以 select 再次使用它,并且所有这些都将存储在 cookie 中,只要你愿意。要了解有关 Yii 中 cookie 的更多信息,请单击 here
但是如果
你出于某种原因讨厌饼干(虽然我只会推荐饼干)
第二个选项是 在每个请求中附加语言 url,例如 ?lang=en
。这可能是一个棘手的问题,因为您必须在每个请求和 url.
中处理此参数
如何在用户注销后保持当前语言?
您可以使用 setComponent() 方法动态设置应用程序组件。
尝试创建一个方法,比如:
public function setLanguage(){
// When User log in is success, raise a flag, and set in by:
// Or more specifically, donot copy and paste it, at least give some research and do it something like this.
Yii::app()->setComponent('language','en');
}
并使用它,通过 Yii::app()->language
;
因此,您可以在此处动态设置和重置您的语言组件。
正如Let me see所说,对语言使用会话不是一个好的选择。
我使用会话值来检查当前语言,但我们注销后,所有会话值都被清除并且语言更改为默认语言。以任何方式在注销后保持会话不清晰。
我认为这不太确定。
使用 Yii::app()->user->logout(false)
。它只会从会话中删除与身份验证相关的信息,并保持其他数据完整无缺。
使用会话来存储语言不是一个好的选择(真相是最糟糕的)。
那用什么?
您应该要么使用 cookies,因为语言不重要或机密数据(我认为如此)。即使用户不知何故丢失了他 select 所使用的语言,他也可以 select 再次使用它,并且所有这些都将存储在 cookie 中,只要你愿意。要了解有关 Yii 中 cookie 的更多信息,请单击 here
但是如果
你出于某种原因讨厌饼干(虽然我只会推荐饼干)
第二个选项是 在每个请求中附加语言 url,例如 ?lang=en
。这可能是一个棘手的问题,因为您必须在每个请求和 url.
如何在用户注销后保持当前语言?
您可以使用 setComponent() 方法动态设置应用程序组件。 尝试创建一个方法,比如:
public function setLanguage(){
// When User log in is success, raise a flag, and set in by:
// Or more specifically, donot copy and paste it, at least give some research and do it something like this.
Yii::app()->setComponent('language','en');
}
并使用它,通过 Yii::app()->language
;
因此,您可以在此处动态设置和重置您的语言组件。 正如Let me see所说,对语言使用会话不是一个好的选择。