一、前台登陆用的form
<form id='form_login' action="{:U('runLogin')}" method="post">
<div class="row">
<label class="field">登录名
</label>
<div class="item">
<input id="address" class="basic-input" name="uname" maxlength="70" size="46"/>
</div>
</div>
<div class="row">
<label class="field">密码
</label>
<div class="item">
<input id="pwd" class="basic-input" type="password" name="pwd" maxlength="70" size="46"/>
</div>
</div>
<div class="row">
<div class="item">
<input type="checkbox" name='auto' class='auto' id='auto' checked='1'/>
<label for="auto">记住我,下次自动登陆</label>
</div>
</div>
<hr class="hrline"/>
<div class="row footer">
<div class="item">
<input class="loc-btn" type="button" id="submit_form" value="提交"/>
<input class="lnk-flat" type="button" id="cancel_form" value="取消"/>
</div>
</div>
</form>
二、后台验证用户名密码,若是登陆成功则写入session和cookie,若是cookie不设置失效时间,默认是关闭所有浏览器时失效
public function runLogin(){
if(!$this->isPost()){
halt('页面不存在');
}
$uname=I('post.uname');
$pwd=I('post.pwd','','md5');
$auto=I('post.auto');
$condition = array(
'uname' => $uname,
'pwd'=> $pwd
);
$user=M('User')->where($condition)->find();
if($user){
$uid=$user[id];
if($user[nickname]){
$uname=$user[nickname];
}
session('uid',$user[id]);
session('uname',$uname);
if($auto=='on'){
cookie('uid',$uid,30*24*3600);
cookie('uname',$uname,30*24*3600);
}
header('Content-type:text/html;Charset=UTF-8');
redirect(__APP__);
}else{
header('Content-type:text/html;Charset=UTF-8');
redirect(U('login'),2,'用户名或密码错误,正在跳转回登录页...');
}
}
三、首页控制器判断session或者cookie是否存在
<?php
// 首页控制器
class IndexAction extends Action {
public function index(){
$data=session('uname');
if($data){
$this->data = $data;
}else if(cookie('uname')){
$this->data = cookie('uname');
}
$this->display();
}
}
四、首页页面模板中,使用标签判断用户信息,显示不一样的内容
<div id='login' class='right'>
<empty name="data">
<a href='{:U('Login/login')}'>登陆</a>
<a href='{:U('Login/register')}'>注册</a>
<else/>
<a href='#'>欢迎 {$data}</a>
<a href='{:U('Login/logout')}'>注销</a>
</empty>
</div>
五、注销登陆
public function logout(){
session('uid',null);
session('uname',null);
cookie('uid',null);
cookie('uname',null);
redirect(__APP__);
}