会话管理简介

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. MobileNet-SSD
  2. SOCKET,TCP/UDP,HTTP,FTP
  3. web service接口_win7 添加环回网卡+H3C 模拟器 防火墙开启Web功能
  4. UI设计师必知:link和@import引用css文件方法的区别
  5. Adobe Dreamweaver 添加库、标签和属性
  6. spring 2.0核心技术与最佳实践 pdf_推荐 Spring Boot 实践学习案例大全 数据缓存 和中间件 安全权限...
  7. 使用OpenCV在Python中进行人脸和眼睛检测
  8. MySQL ALTER TABLE报错Duplicate entry 'xxx' for key 'PRIMARY'解决方法
  9. bootstrap思想总结_bootstrap学习心得总结-css样式设计分享
  10. java websocket_教你用纯Java实现一个网页版的Xshell(附源码)
  11. 信息抽取 | 72篇论文梳理:涉及NER、复杂关系、小样本、文档级、多模态、开放域抽取...
  12. oracle11g-RHEL5.8-Kernel Parameters and Resource Limits
  13. android 指令脱壳,安卓脱壳之战-腾讯脱壳
  14. 安装爱剪辑计算机丢失,爱剪辑没保存的视频怎么恢复?
  15. hudi概念与设计介绍
  16. mc服务器违反协议,Mojang开始向违反EULA的服务器发出通告
  17. 【算法百题之四十】整数转罗马数字
  18. java数据类型_Java数据类型
  19. c语言字符nul,在C++中存储非nul终止的C字符串常量
  20. Android指南针之加速度传感器地磁传感器-android学习之旅(67)

热门文章

  1. 数据分析——DAU下降问题(转)
  2. PAT乙级1033 旧键盘打字
  3. 无刷直流电机最强科普(收藏版)
  4. 2026年预标准5G营收将达到2000亿美元
  5. Java throw和throws关键字的使用及区别
  6. html5:制作一份邀请函
  7. Roson的Qt之旅#97 Qt编译报错-Could not determine which “make“ command to run
  8. EmberZNet EFR32 OTA 注意点
  9. 关于Android开发中如何使用dp表示长宽
  10. DirectX11--实现一个3D魔方(3)