在制作项目时, 因为项目管理的需求, 用户登陆成为了我们项目中必不可少的一个操作,那么,用户登录的原理是什么呢?这个其实就类似我们生活中去坐火车,花了钱买了车票,然后就可以上车了,什么时候列车员要检查我们是否交钱了,只要看我们是否有票就可以了。 同样,项目系统检查我们是否登录,就看我们是否session设置值[就像火车票], 如果我们有session令牌,那么就认为我们已经登录,反之,如果没有session设置值, 就不让我们往下执行了
1. 登陆表单:
<form action="user_check.php" method="post"> <li>用户名: <input type="text" name="user_name"></li> <li>密 码: <input type="password" name="user_pwd"></li> <li> <input type="submit" value="登陆"> </li> </form>
2. 检查登陆用户 是否在 数据库中有
$db = conndb(); $user_name = $_POST["user_name"]; $user_pwd = $_POST["user_pwd"]; if($user_name == "" || $user_pwd==""){ echo "<script>alert('用户名或密码不能为空');history.back();</script>"; die(); // exit(); } $user_pwd = md5($user_pwd); $sql = "select * from users where user_name = '$user_name' and user_pwd='$user_pwd' "; $query = $db->query($sql); $result = $query->fetchall(); if($result){ //$result 为true, 表明这里有查询到值, 接下来需要发 门票,给令牌了 session_start(); $_SESSION['user_name'] = $user_name; //给了火车票 $_SESSION['userid'] = $result[0]["id"]; //记录每次用户登陆的时间 $time = time(); $sql = "insert into logins set user_name='$user_name', logintime='$time'"; $db->exec($sql); echo "<script>alert('登陆成功');location.href='main.php';</script>"; } else{ echo "<script>alert('用户名或密码不正确');history.back();</script>"; }
3. 在页面中判断有没有登录
session_start();if(!isset($_SESSION['user_name'])){ echo "<script>alert('请登陆');location.href='user_login.php';</script>";exit();}