[php]Session和Cookie的在网站中应用原理方面的分析及实现(3)
2、完成Session验证是否已登录的功能
①第一个场景:
输入用户名和密码-->提交-->验证成功-->进入管理页面
Login.php(登录页面)--->loginProcess.php(处理登录逻辑页面)--->admin.php(管理页面)
登录验证成功:loginProcess.php 会将用户名保存在session中,并且会向客户端设置Cookie:
服务器端也会报错一个session文件,内容是admin:
在跳转到admin.php的时候,sessionid会带进Cookie中发送给服务器:
②第二个场景:
用户直接访问admin.php管理页面-->直接跳转到登录页面(因为这是非法的,必须登录成功之后才能访问)
当直接访问admin.php页面时,会跳转的登录login.php这样就控制了,只有登录成功的用户才能访问该页面
③代码如下:
Login.php(登录页面)--->loginProcess.php(处理登录逻辑页面)--->admin.php(管理页面)
login.php(登录页面):
- <?php
- /**
- * Created by PhpStorm.
- * User: LSH
- * Date: 2016/11/25
- * Time: 14:35
- */
- ?>
- <html>
- <head>
- <meta charset="utf-8">
- <title>保存用户名</title>
- </head>
- <body>
- <h1>登录页面</h1>
- <form action="loginProcess.php" method="post">
- <table>
- <tr><td>用户名</td><td><input type="text" name="userName"></td></tr>
- <tr><td>密 码</td><td><input type="password" name="password"></td></tr>
- <tr><td colspan="2"><input type="submit" name="submit" value="提交"></td></tr>
- </table>
- </form>
- </body>
- </html>
loginProcess.php(判断用户名是否正确,设置session)
- <?php
- /**
- * Created by PhpStorm.
- * User: LSH
- * Date: 2016/11/25
- * Time: 14:41
- */
- # 获取post提交的信息
- // 获取用户名
- if (!empty($_POST['userName'])){
- $userName = $_POST['userName'];
- }
- // 获取密码
- if (!empty($_POST['password'])){
- $password = $_POST['password'];
- }
- if ($userName == 'admin' && $password == '123456'){
- // 用户名为: admin;密码为: 123456
- // 登录成功,跳转到管理页面:admin.php
- header("Location: admin.php");
- // 设置session
- session_start();
- $_SESSION['userName'] = $userName;
- }else{
- // 用户名和密码错误时,返回登录页面
- header("Location: login.php");
- }
admin.php(根据session来验证用户是否登录,未登录跳转到登录页面,进行登录)
- <?php
- /**
- * Created by PhpStorm.
- * User: LSH
- * Date: 2016/11/25
- * Time: 14:37
- */
- // 获取Session 中的userName
- session_start();
- if (!empty($_SESSION['userName'])){
- // 当userName 有值的时候,就打印欢迎,既然管理页面
- echo $_SESSION['userName'].",welcome to my system!";
- echo "<h1>管理页面</h1>";
- }else{
- // 当$_SESSION['userName'] 为空的时候,说明用户非法访问管理页面
- // 跳转到登录页面
- header("Location: login.php");
- }
热门文章推荐
- [php]优酷真实视频地址解析算法
- [Dz]discuz手机版支持视频播放的方法
- [PHP]php加密js解密的方法实例
- [php]用PHP打印出前一天的时间格式
- [PHP]mpeg,mp3,avi的ffmpeg的php转换类
- [php]php中3DES加密一个非常有用的3des加密
- [PHP]php.ini修改上传文件的大小限制处理方法
- [php]用过的最好用的php分页类源代码