您的位置:首页 > 编程语言 > PHP开发

YII用户注册和用户登录(五)之进行session和cookie分析 ,并在前后区分session和cookie

2014-10-26 13:58 483 查看
5 进行session和cookie分析 ,并在前后区分session和cookie;

记住登录状态

这样下次再登录网站的时候,就不用重复输入用户名和密码。

是浏览器的cookie把状态给记住了。



制作表单:

<tr>
<td align="right">
<?php echo $form->checkBox($user_login, 'rememberMe'); ?>
</td>
<td>
<?php echo $form->labelEx($user_login, 'rememberMe'); ?>
</td>
</tr>
修改模型:







控制器部分:用户登录

/**
*用户登录
*/
function actionLogin(){
//创建登录模型对象
$user_login = new LoginForm;

if(isset($_POST['LoginForm'])){
//收集表单信息
$user_login->attributes = $_POST['LoginForm'];

//校验数据,走的是rules()方法,不只校验用户名和密码是否填写,还要校验真实性(在模型里边自定义方法校验真实性)
//用户信息进行session存储,调用模型里边的一个方法login(),就可以进行session存储
if($user_login->validate() && $user_login->login()){
$this ->redirect ('./index.php');
}
}

$this -> render('login',array('user_login'=>$user_login));
}


查看cookie和session信息结果:



主要用户退出:

/*
* 用户退出系统
*/
function actionLogout(){
//删除session信息
//Yii::app()->session->clear();  //删除内存里边sessiion变量信息
//Yii::app()->session->destroy(); //删除服务器的session文件

//session和cookie一并删除 不然无法退出
Yii::app()->user->logout();

$this->redirect('/');
}
此时会有一个问题,前后台session怎样区分,这样的:

在后台可以设置session前缀

{
public function init()
{
//自定义后台默认控制器
$this -> defaultController = "index";
// this method is called when the module is being created
// you may place code here to customize the module or the application

// import the module-level models and components
$this->setImport(array(
'houtai.models.*',
'houtai.components.*',
));

//为后台登录管理员设置session名字前缀信息
Yii::app()->setComponents(array(
'user'=>array(
'stateKeyPrefix' =>'houtai',
'loginUrl'=>'./index.php?r=houtai/manager/login',
)
));
}


图示:



stateKeyPrefix
参数怎样来的?

这样:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: