php和session实现简单的登录记忆

要求:登陆框能实现登录状态的记忆。

上代码:

<?php 
    session_start();
    if (isset($_SESSION['login_user'])) //判断是否登录
    {
	$link = 'logout.php';
	echo "<a href='{$link}' title=''>点我清除登录信息<br></a>";
        die('已登录!当前登录用户为:' . $_SESSION['login_user']);
    }
    if ($_SERVER['REQUEST_METHOD'] === 'POST') //判断是否为POST请求
    {
        if (!isset($_POST['username']) || empty($_POST['username'])) //检查是否输入用户名
        {
            die('请输入用户名!');
        }
        if (!isset($_POST['password']) || empty($_POST['password'])) //检查是否输入密码
        {
            die('请输入密码!');
        }
        $data = ['username' => 'user01', 'password' => md5('123456')]; //模拟数据
        if ($_POST['username'] === $data['username']) //检查用户名是否正确
        {
            if (md5($_POST['password']) === $data['password']) //检查密码是否正确
            {
                //保存登录状态
                $_SESSION['login_user'] = $_POST['username'];
		$link = 'logout.php';
		echo "<a href='{$link}' title=''>点我清除登录信息<br></a>";
                die('恭喜你登录成功!');
            }
        }
        die('用户名或密码不正确!');//用户名或密码不正确
    }
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="gb2312">
    <title>登录测试</title>
</head>
<body>
    <!-- action=""是表示在当前页运行 -->
    <form action="" method="post">   
        <input type="text" name="username" placeholder="请输入用户名!">
        <input type="password" name="password" placeholder="请输入密码!">
        <button type="submit">登录</button>
    </form>
</body>
</html>

将上述代码保存为index.php。在继续写清除session页面:

<?php
session_start();
session_unset();
$link = 'index.php';
echo "登录信息已清除<br>";
echo "<a href='{$link}' title=''>点我返回登录界面</a>";

?>

将上述代码保存为logout.php。两个文件都部署在wampserver2上,测试运行:

打开localhost可以显示:

输入预设的用户名user01 密码123456 可以显示:

 

关闭页面,重新打开localhost:

如果不想保持登录状态,则点击清除:

点击返回,则进入登录界面,实现对session的清除。

有问题可以站内联系我。

源码下载:

php和session实现简单的登录记忆-Web服务器文档类资源-CSDN下载

改进版:

1)将data变量拆分成2个独立变量

2)将die函数改为return 避免if条件判断后还不跳出 继续执行下面的语句。

3)设计跳回登录界面的语句。

新的源码下载:

php和session实现简单的登录记忆--改进版-Web服务器文档类资源-CSDN下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Intimes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值