会话管理简介

Cookie:

  • cookie常用于识别用户。
  • cookie 是服务器留在用户计算机中的小文件,每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。
  • 通过PHP能够创建并取回cookie的值。
  • cookie只能读取所在域,单一域不能超过20个cookie,每个cookie文件长度上限位4k字节,浏览器最多储存300个cookie。

Session:

  • PHP中的session变量用于存储有关用户会话的信息,或更改用户会话的设置。
  • Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。
  • Session 的工作机制是:为每个访问者创建一个唯一的 id (UID),并基于这个 UID 来存储变量。UID 存储在 cookie 中,亦或通过 URL 进行传导。

结合Cookie和Session

  • 使用Cookie和附加URL参数都可以将上一次请求的状态信息传递到下一次请求中,但是如果传递的状态信息较多,将极大降低网络传输效率和增大服务器端程序处理的难度。
  • Session技术是一种将会话状态保存在服务器端的技术 ,它可以比喻成是医院发放给病人的病历卡和医院为每个病人保留的病历档案的结合方式 。
  • 客户端需要接收、记忆和回送 Session的会话标识号,Session可以且通常是借助Cookie来传递会话标识号。

会话管理实践

本部分代码已经上传到了git中,点我进入

1.建立一个利用cookie统计登录次数的页面session.html进行简单的测试:

2.实现会话管理部分的核心代码

  • 在logIn.php中
if(!isset($_COOKIE['userid']))//判断用户是否已经设置cookie,如果未设置$_COOKIE['userid']执行if下的代码。
{ }
else//如果用户已经登录,则执行else下的代码。
{ }
  • 在logOut.php中
<?php
if(isset($_COOKIE['userid'])){
//将各个cookie的到期时间设为过去的某个时间,使它们由系统删除,时间以秒为单位
setcookie('userid','',time()-3600);
setcookie('username','',time()-3600);
}
//location首部使浏览器重定向到另一个页面
$home_url = 'logIn.php';
header('Location:'.$home_url);
?> 

3.通过使用cookie保存信息,实现登录页面不需再次登陆的功能,涉及到的代码已经上传git,点我进入

4.这个时候关闭浏览器,再次进入的时候也会出现已经登陆成功的界面,如果想要退出登录,点击log out即可。

登陆发帖功能

本部分代码已经上传到了git中,点我进入

1.这一部分采用了写入文件和读取文件从而实现发帖的方式,核心代码有
(1)将输入的帖子标题和内容写入文件保存
file_put_contents('data.txt',"title:".$title.",content:".$content."\n", FILE_APPEND);

(2)将文件中的数据进行读取,并将/n替换为换行符<br>

$content = file_get_contents("data.txt");
echo str_replace("\n", "<br>", $content);

(3)在loged.php界面添加一个超链接到test.html界面,即可将之前的登录、会话管理和发帖功能连接起来
echo '<a href="test.html">start a new post!</a>';

2.实现的效果如下

  • 登录成功

  • 点击start a new post发帖,进入如下界面

  • 提交之后跳转到如下界面,可以选择查看发过的帖子、继续发帖、返回或者退出登录

转载于:https://www.cnblogs.com/alovera/p/6786772.html

20145212 罗天晨 WEB登陆发贴及会话管理功能的实现相关推荐

  1. 20145212罗天晨 WEB基础实践

    实验问题回答 1.什么是表单 表单在网页中主要负责数据采集功能 一个表单有三个基本组成部分: 表单标签 表单域:包含了文本框.密码框.隐藏域.多行文本框.复选框.单选框.下拉选择框和文件上传框等 表单 ...

  2. 20145212罗天晨 恶意代码分析

    20145212罗天晨 恶意代码分析 一.实验问题 1.如果在工作中怀疑一台主机上有恶意代码,但只是猜想,所有想监控下系统一天天的到底在干些什么.请设计下你想监控的操作有哪些,用什么方法来监控. (1 ...

  3. 20145212罗天晨 后门原理与实践

    20145212罗天晨 后门原理与实践 基础问题回答 (1)例举你能想到的一个后门进入到你系统中的可能方式? 我们在安装常用应用软件时,安装过程中附带的可能就有后门程序. (2)例举你知道的后门如何启 ...

  4. 20145212 罗天晨 免杀原理与实践

    20145212 罗天晨 免杀原理与实践 一.基础问题回答 1.杀软是如何检测出恶意代码的? (1)恶意代码有其特有的特征码,杀软将特征码加入检测库中,当检测到一段代码中具有这样的特征码时就可以判断为 ...

  5. 20145212罗天晨 逆向及Bof基础实践

    20145212罗天晨<网络对抗>第1周学习总结--逆向及Bof基础实践 逆向及Bof基础实践 一.实践目标 1.运行原本不可访问的代码片段 2.强行修改程序执行流 3.以及注入运行任意代 ...

  6. 20145212 罗天晨 网络欺诈技术防范

    一.实验问题 1.通常在什么场景下容易受到DNS spoof攻击 随便连接没有设置密码的wifi的情况下比较容易受攻击,因为这样就会连入局域网和该局域网中的各个主机都处于同一网段下了. 2.在日常生活 ...

  7. 20145212 罗天晨 MSF基础应用

    一.对exploit,payload,encode的理解 exploit是利用系统漏洞,相当于一个动态的过程. payload是攻击载荷,用于实现对漏洞的攻击,是实现漏洞攻击最核心的代码. encod ...

  8. 20145212 罗天晨 信息搜集与漏洞扫描

    一.实验问题 1.哪些组织负责DNS,IP的管理 互联网名称与数字地址分配机构,简称ICANN机构,决定了域名和IP地址的分配,ICANN是为承担域名系统管理,IP地址分配,协议参数配置,以及主服务器 ...

  9. 20145212罗天晨 注入shellcode实验及Retuen-to-libc实验

    注入shellcode实验 实验步骤 一.准备一段shellcode 二.设置环境 Bof攻击防御技术 1.从防止注入的角度来看:在编译时,编译器在每次函数调用前后都加入一定的代码,用来设置和检测堆栈 ...

最新文章

  1. python中的成员运算符用于判断什么_Python之运算符
  2. 【采用】如何搭建反欺诈策略与模型
  3. 联通研究院处长王志军:Hadoop在电信业大数据的应用
  4. 对话框 函数_通过函数式编程实现动态对话框处理程序
  5. 机器学习实战学习笔记 一 k-近邻算法
  6. 谷歌浏览器如何设置flash访问权限
  7. poj 1094 Sorting It All Out(拓扑排序)
  8. VisualSVN-Server 安装以及使用教程
  9. 最大矩形面积(C++实现)
  10. 扇贝有道180911每日一句
  11. 20幻读是什么,幻读有什么问题
  12. IP 地址 与硬件地址
  13. 347. Top K Frequent Elements
  14. CentOS7 安装学之思开源考试系统Mysql版
  15. Photoshop CS6 序列号完美激活教程
  16. 微信能上网但是浏览器无法上网,原因在于上次关机时加速器忘记关闭,解决办法如下
  17. 亚马逊多店铺统一管理还不会关联?原来是靠它
  18. 暗月渗透实战靶场-项目六(上)
  19. 【色彩管理】YIQ色彩模式详解
  20. 计算机幻灯片制作培训方案,教师ppt课件制作活动培训方案..doc

热门文章

  1. 鸿蒙系统第一批升级名单,鸿蒙系统首批升级名单详细介绍
  2. [转]实现键值对存储(长文)
  3. 实验3 微程序控制器实验
  4. Mybatis学习【2】
  5. iOS科普一下根View及其子View中心点含义的坑
  6. 2 snippets vue 修改配置_vue-snippets: 支持 Vue 3 的语法高亮,代码格式化和代码提示的 Visual Studio Code 插件。...
  7. Model Inversion Attacks that Exploit Confidence Informati on and Basic Countermeasures 阅读心得
  8. 【博主推荐】html好看的邀请函(附源码)
  9. 保姆级教程:群晖nas内网穿透之ipv6/ipv4 ddns+frp双管齐下!
  10. 决策树之C4.5实现(离散属性与连续,属性并存)