基于session的简单登录逻辑
1 登录页 login.php
<?php session_start(); //判断一下是否有Session if (isset($_SESSION['user']) && $_SESSION['user']==='admin') { echo '您已经登录'; echo "<a href='logout.php'>注销登录</a>"; exit(); } //登录逻辑 if (isset($_POST['submit'])) { //判断用户名和密码是否正确 if ( isset($_POST['user']) && isset($_POST['pwd']) && $_POST['user']==='admin' && $_POST['pwd'] === 'admin') { //写入session if ($_SESSION['user'] = $_POST['user']) { //设置cookie成功 跳转到首页 header('Location:skip.php?url=index.php&info=登录成功'); } else { echo 'cookie设置失败'; } } else { header('Location:skip.php?url=index.php&info=登录失败'); } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>登录页面</title> </head> <body> <form method="post" action="login.php"> 姓名:<input type="text" name="user"/> 密码:<input type="password" name="pwd" /> <input type="submit" name="submit" value="登录"> </form> </body> </html>
2 首页文件
<?php session_start();//打开一个会话 if (isset($_SESSION['user']) && $_SESSION['user'] === 'admin') { echo "亲爱的{$_SESSION['user']}你好,欢迎回来"; echo "<br><a href='logout.php'>注销登录</a>"; } else { echo "<a href='login.php'>请登录</a>"; }
3 跳转页面 skip.php
<?php //跳转中转页 if (!isset($_GET['url']) || !isset($_GET['info'])) { exit('url 或 info 没有收到'); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>桥页</title> <meta http-equiv="refresh" content="3;url=<?php echo $_GET['url'] ?>"> //本节重点 跳转的使用 </head> <body> <div style="text-align:center;font-size:20px;"><?php echo $_GET['info'] ?>,3秒后自动跳转!</div> </body> </html>
4 退出登录 logout.php
<?php session_start();//先打开session //如果session有值 我们进行删除操作 if (isset($_SESSION['user']) && $_SESSION['user'] === 'admin') { session_unset();//删除session session_destroy();//删除服务端保存session的文件 setcookie(session_name(),'',time()-3600,'/');//删除客户端cookie中保存的session_id header('Location:login.php');//跳转到登录页 } else { echo '退出登录失败 请重试'; }