如何运用tp框架编写网站的无刷新登入

为了方便,我们可以重新建立一个名为LoginController.class.php的控制器;其内容如下:

<?php
 namespace Admin\Controller;//设置命名空间
use Think\Controller;
class LoginController extends Controller{

public function index(){

//这是登入成功后跳转的界面,需要模板渲染,然后调用
$this->display();

//渲染模板

}
public function login(){
$this->display();

//登入界面的
}

public function logindo(){//这个是登陆界面ajax提交的处理方法,

$username=$_POST['username'];
$password=I('post.password','');
$verify=$_POST['verify'];
$verif = new \Think\Verify();

//实例化tp框架里面的关于验证码验证的方法,

$data=array();//初始化数组
if(empty($username)||empty($password)||empty($verify)){

//二验证次前台提交过来的数据,保证安全
$data=array(
'status'=>1,
'msg'=>"信息不全"
);

}else{

if($verif->check($verify)){

  //括号中是调用tp方法验证验证码是否正确,正确返回true,错误false,在正确是情况下才能进一步验证前台的用户名和密码是否正确

$inf=M("manager")->where(array('username'=>$username,'password'=>$password))->find();

    if(!$inf){
    $data['status']=2;
   $data["msg"]='用户名或密码错误';

  }else{

   $data['status']=3;
   $_SESSION["mamagername"]=$inf['username'];

   //设置session的值,为后台操作的前提,如果没有session,则先登入
  $_SESSION["id"]=$inf['uid'];
  $_SESSION['a_time'] = $inf['time'];
  M('manager')->where('uid=' . $inf['uid'])->save(array('time' => time()));

   //把这次登入的时间戳保存到数据库中
  }

}else{

$data["msg"]="验证码错误";
}
}
$this->ajaxReturn($data);
}

public function loginout(){

session_destroy();
$this->redirect('Login/login');

 

}

public function verify(){

//创建一个产生验证码的方法;
$config = array( 'fontSize' => 70,

// 验证码字体大小
'length' => 3,

// 验证码位数
'useNoise' => false,

// 关闭验证码杂点
);
$Verify = new \Think\Verify($config);
$Verify->entry();
}

 

}

?>

 

 

<!doctype html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">

<link rel="stylesheet" href="__PUBLIC__/Admin/css/login.css">
<script type="text/javascript" src="__PUBLIC__/Admin/js/jquery.js"></script>
<script>

$(function(){
$("#sub_btn").click(function(){
var username=$("#username").val();
var password=$("#password").val();
var verify=$("#verify").val();

if(username==''){

$("#error").html("用户名不能为空");
return false;
}
if(password==''){

$("#error").html("密码不能为空");
return false;
}
if(verify==''){

$("#error").html("验证码不能为空");
return false;
}


$.ajax({

url: '{:U("Login/logindo")}',
type: 'post',
data: {'username':username,'password':password,'verify':verify},
dataType: 'json',
// error:function(d){
// if(d.state==1){
// $("#error").html(d.msg);
// }
// }
error:function(){

},
success:function(d){
if(d.status==1){
$("#error").html(d.msg);
}else if(d.status==2){
$("#error").html(d.msg);
//$("#codeimg").attr('src','{U('Login/verify')}?m='+Math.random());
}else{

location.href="{:U('Login/index')}";
}

}
});

 

return false;


})

 

})

//后台登入的html页面
</script>
<title>后台登陆</title>

</head>
<body>
<div id="login_top">
<div id="welcome">
欢迎使用信息管理系统
</div>
<div id="back">
<a href="/">返回前端首页</a>

</div>
</div>
<div id="login_center">
<div id="login_area">
<div id="login_form">
<form action="" method="post">
<div id="login_tip">
用户登录&nbsp;&nbsp;UserLogin
</div>
<span id="error"></span>
<div><input type="text" class="username" name="username" id="username"></div>
<div><input type="text" class="pwd" name="password" id="password"></div>
<div id="btn_area">
<input type="submit" name="submit" id="sub_btn" value="登&nbsp;&nbsp;录" />&nbsp;&nbsp;
<input type="text" class="verify" name="verify" id="verify">
<img src="{:U('Login/verify')}" alt="验证码" width="80" height="40" onclick='this.src="{:U('Login/verify')}?m="+Math.random()' id="codeimg">

</div>
</form>
</div>
</div>
</div>
<div id="login_bottom">
版权所有
</div>
</body>
</html>

posted @ 2017-03-29 20:41  我是孙大圣  阅读(671)  评论(0编辑  收藏  举报