20145212 罗天晨 WEB登陆发贴及会话管理功能的实现
会话管理简介
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发帖,进入如下界面

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


20145212 罗天晨 WEB登陆发贴及会话管理功能的实现的更多相关文章
- 20145212罗天晨 WEB基础实践
实验问题回答 1.什么是表单 表单在网页中主要负责数据采集功能 一个表单有三个基本组成部分: 表单标签 表单域:包含了文本框.密码框.隐藏域.多行文本框.复选框.单选框.下拉选择框和文件上传框等 表单 ...
- 20145212 罗天晨 Web安全基础实践
一.实验后回答问题 (1)SQL注入攻击原理,如何防御 原理:SQL注入攻击是攻击者在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,把SQL语句当做用户名等输入正常网页中以获取数据 ...
- 20145212罗天晨 逆向及Bof基础实践
20145212罗天晨<网络对抗>第1周学习总结--逆向及Bof基础实践 逆向及Bof基础实践 一.实践目标 1.运行原本不可访问的代码片段 2.强行修改程序执行流 3.以及注入运行任意代 ...
- java web Servlet 学习笔记 -3 会话管理技术
Cookie和HttpSession 什么是会话: 用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 每个用户在使用浏览器与服务器进行会话的过 ...
- 在web中使用shiro(会话管理,登出,shiro标签库的使用)
在shiro的主配置文件中配置,登出的请求经过的过滤器就可以了,在shiro的过滤器中有一个名称为logout的过滤 器专门为我们处理登出请求: 一.shiro会话管理器 shiro中也提供了类似于w ...
- 20145212 罗天晨 MSF基础应用
一.对exploit,payload,encode的理解 exploit是利用系统漏洞,相当于一个动态的过程. payload是攻击载荷,用于实现对漏洞的攻击,是实现漏洞攻击最核心的代码. encod ...
- 20145212 罗天晨 《网络对抗》Exp3 Advanced 恶意代码伪装技术实践
恶意代码伪装技术实践 木马化正常软件. 啊哈--原本以为很复杂--然后我看了一下蔡野同学的博客,发现原理竟然如此简单-- 对原先生成病毒的代码稍作修改: 于是--把生成的后门软件改成骗人的名字:这里改 ...
- 20145212罗天晨 注入shellcode实验及Retuen-to-libc实验
注入shellcode实验 实验步骤 一.准备一段shellcode 二.设置环境 Bof攻击防御技术 1.从防止注入的角度来看:在编译时,编译器在每次函数调用前后都加入一定的代码,用来设置和检测堆栈 ...
- 我的第一个python web开发框架(38)——管理员管理功能
后台管理员的管理功能,它主要用来管理后台的登录账号,绑定权限,当然如果想将后台管理扩展成企业相关管理系统,比如用于公司人事管理,在这个基础上进行适当扩展就可以了. 我们先看看界面效果(也可以看着数据字 ...
随机推荐
- js判断手机是安卓还是ios
//点击下载按钮判断appDown() { var u = navigator.userAgent; var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac O ...
- EL语言表达式 (三)【EL中的算术运算以及判断EL对象是否为空】
一.EL中的算术运算 EL和其他语言一样,同样也提供了基本的算术运算(加.减.乘.除和取余),如下图. 运算符 功能 示例 结果 + 加 ${19+1} 20 - 减 ${66-30} 36 * 乘 ...
- Ajax三级联动
全国省市县查询 html代码 <!doctype html> <html> <head> <meta charset="utf-8"> ...
- Oracle与MySQL的比较[内容来自网络]
支持的特性方面的比较: https://www.quora.com/Whats-the-difference-between-Oracle-and-MySQL oracle和mysql在 安全,数据类 ...
- Unity shader学习之Alpha Blend
通过 ShaderLab 的 AlphaBlend 能够实现真正的半透明效果. 使用 AlphaBlend 时,需要关闭深度写入 ZWrite Off,但得非常小心物体的渲染顺序, RenderQue ...
- ODBC数据库
ODBC数据源全称是开放数据库互连(Open Database Connectivity),在微软公司开放的数据库结构中的一部分,其实是一个应用程序的接口,主要用于提供数据库的编写应用程序的能力.
- 在Eclipse下配置算法(第四版)运行环境
第一步:配置Eclipse运行环境 Eclipse运行环境配置过程是很简单的,用过Eclipse进行java开发或学习的同学应该都很熟悉这个过程了. 配置过程: (1)系统环境:Windows7 64 ...
- JAVA 中的 Collection 和 Map 以及相关派生类的概念
JAVA中Collection接口和Map接口的主要实现类 Collection接口 Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的 ...
- c# ListBox控件
ListBox控件可以一次呈现多个项,并且语序对控件中的选项进行选择操作,ListBox类公开Items属性,它是一个集合,类型为ListBox.ObjectCollection,是ListBox的一 ...
- 20165215 2017-2018-2 《Java程序设计》第7周学习总结
20165215 2017-2018-2 <Java程序设计>第七周学习总结 教材学习内容总结 chapter11 下载安装MySQL服务器 启动MySQL数据库服务器 在bin子目录中, ...