专业3 登录(退出登录)功能的实现

复制代码
掌握为什么要实现用户登录

用户登录是一个后台系统的入口,是前台网站的用户识别的鉴权功能,登录有以下三个作用:

1.识别用户身份

2.确定使用权限

3.保证数据安全
掌握登录功能的实现步骤

第一步:创建一个登录的表单

<form class="form-horizontal" role="form" action="loginPro.php" method="post">
    <div class="form-group">
        <label for="firstname" class="col-sm-2 control-label">用户名:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="firstname" name="username">
        </div>
    </div>
    <div class="form-group">
        <label for="lastname" class="col-sm-2 control-label">密码:</label>
        <div class="col-sm-10">
            <input type="text" class="form-control" id="lastname" name="password">
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-offset-2 col-sm-10">
            <button type="submit" class="btn btn-default">登录</button>
        </div>
    </div>
</form>
第二步:接收表单提交的数据验证登录信息

<?php
// 接收用户名和密码
$name = $_POST['username'];
$pwd = md5($_POST['password']);
// 验证数据   略 (你写)
// 连接数据库
$link = mysqli_connect("127.0.0.1","root","root","1909A");
// 拼写SQL语句:select * from user where 用户名=接收的用户名 and 密码=接收的密码
$sql = "select * from user where name= '$name'";
// 判断结果:能查出数据表名用户名和存在,查不出数据表明用户名就不存在
$res = mysqli_query($link,$sql);
// 将结果集转换为一维数组
$data = mysqli_fetch_assoc($res);
// 判断用户名是否存在
if($data){
    // 进而比较密码
    if($data['password'] == $pwd){
        echo "<script>alert('登录成功');location.href='list.php'</script>";
    }else{
        echo "<script>alert('登录失败,请核对填写的密码');location.href='login.php'</script>";
    }
}else{
    echo "<script>alert('登录失败,请核对填写的用户名');location.href='login.php'</script>";
}
掌握使用会话控制拦截非法请求

第一步:登录成功后使用会话控制技术记录用户的信息

if($data['password'] == $pwd){
    // 将用户登录的信息记录在cookie中
    // setcookie("username",$data['name']);
    // 将用户登录的信息记录在session中
    session_start();
    $_SESSION['username'] = $data['name'];
    echo "<script>alert('登录成功');location.href='list.php'</script>";
}else{
    echo "<script>alert('登录失败,请核对填写的密码');location.href='login.php'</script>";
}
第二步:在列表页面、添加页面等需要登录后才能访问的页面验证是否登录

<?php
// 判断管理员是否登录
session_start();
if(empty($_SESSION['username'])){
    echo "<script>alert('请先登录后访问');location.href='login.html'</script>";
    die;
}
总结:

登录功能的完善必须借助session或cookie来记录用户信息,否则就失去了登录的意义,也不方便以后的功能操作
复制代码

退出登录

复制代码
掌握退出登录功能的开发

第一步:增加退出登录按钮

<a href="loginOut.php"><button type="button" class="btn btn-error">退出登录</button></a>
第二步:在loginOut.php页面书写退出登录代码

<?php
// 退出登录(删除session过程)
session_start();
// 删除session
unset($_SESSION['username']);
// 重新跳转至登录页
header("location:login.php");
总结:
退出登录就是销毁cookie或者session的过程,注意删除session使用unset()可以,但是删除cookie使用就是setcookie()让当前的数据过期即可
复制代码

 

posted @   王越666  阅读(562)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示