先放一张效果图:
1. 用户登录界面代码
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>Login</title>
<link rel="stylesheet" href="Public/css/style.css" />
<link href='http://fonts.googleapis.com/css?family=Oleo+Script' rel='stylesheet' type='text/css'>
<script type="text/javascript" src="Public/js/jquery-1.7.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("#login").click(function(){
var action = $("#lg-form").attr('action');
var form_data = {
username: $("#username").val(),
password: $("#password").val(),
is_ajax: 1
};
$.ajax({
type: "POST",
url: action,
data: form_data,
success: function(response)
{
if(response == "success")
$("#lg-form").slideUp('slow', function(){
//document.location = 'http://www.baidu.com';
$("#message").html('<p class="success">You have logged in successfully!</p><p>Redirecting....</p>');
window.setTimeout("window.location='Home/Index'",2000);
});
else
$("#message").html('<p class="error">ERROR: Invalid username and/or password.</p>');
}
});
return false;
});
});
</script>
</head>
<body>
<div class="lg-container">
<h1>大数据登陆</h1>
<form action="Home/Login/DoLogin" id="lg-form" name="lg-form" method="post">
<div>
<label for="username">Username:</label>
<input type="text" name="username" id="username" placeholder="username"/>
</div>
<div>
<label for="password">Password:</label>
<input type="password" name="password" id="password" placeholder="password" />
</div>
<div>
<button type="submit" id="login">Login</button>
</div>
</form>
<div id="message"></div>
</div>
</body>
</html>
这个html界面不是重点,里面一些css样式博主就不贴出来了。其实网上有很多这种登陆界面的分享。
2. 用户数据校验
1,用户数据库建立
建立用户数据库,将我们的用户信息放在数据库中。
2,PHP检验密码
使用username查询,然后循环判断密码,再将我们的用户信息存储到session中,返回成功信号。
public function DoLogin()
{
$is_ajax = $_REQUEST['is_ajax'];
if(isset($is_ajax) && $is_ajax)
{
$username = $_REQUEST['username'];
$password = $_REQUEST['password'];
$user=M();
$where['user_name']=$username;
$result = $user->db(3,"DB_CONFIG_Login")->table('login_data.login_users')->where($where)->select();
$i=0;
foreach ($result as $k=>$v){
$i++;
if ($result && $v['password'] == $password){
session('username',$v['user_name']);
session('id',$v['id']);
echo "success";
}
}
}
}
3. 用户状态检测
我们现在已经基本完成了登陆,但我们还需要使用session做一些登陆验证,让我们使用绝对路径访问不到我们的信息(如果没有登录)
public function LoginTest(){
if(!isset($_SESSION['id']) && !isset($_SESSION['username'])){
redirect(U('/../index'));
}
}
然后在每个控制之前,调用test函数。
//进入网页前的登陆验证
$test=A("Login");
$test->LoginTest();
4. 用户登出
杀死session
public function outLogin(){
@setcookie('auto','',time()-1,'/');
session_unset();
session_destroy();
redirect(U('/../index'));
}