php session 管理
function do_login(){
//获取用户名和密码信息,和数据库中比对
echo 111111111;
dump($_POST);
dump($_SESSION);
echo 222222222;
$username=$_POST['username'];
$password=$_POST['password'];
$code=$_POST['code'];
#$this->display();
if($_SESSION['verify']!==md5($code)){
$this->error('验证码错误');
}
111111111
array (size=3)
'username' => string '3131' (length=4)
'password' => string '313' (length=3)
'code' => string '1936' (length=4)
array (size=3)
'verify' => string '11108a3dbfe4636cb40b84b803b2fff6' (length=32)
'username' => string 'admin' (length=5)
'authority' => string '1' (length=1)
222222222
1936 MD5 加密后的值为:
mysql> select md5(1936) from user limit 1;
+----------------------------------+
| md5(1936) |
+----------------------------------+
| 11108a3dbfe4636cb40b84b803b2fff6 |
+----------------------------------+
1 row in set (0.00 sec)
验证码判断:
if($_SESSION['verify']!==md5($code)){
$this->error('验证码错误');
}
验证码错误:
111111111
array (size=3)
'username' => string '3131' (length=4)
'password' => string '4124124' (length=7)
'code' => string '2059' (length=4)
array (size=3)
'verify' => string 'd3c95acb3f4a091abb1fdc056dc68c1c' (length=32)
'username' => string 'admin' (length=5)
'authority' => string '1' (length=1)
222222222
mysql> select md5(2059) from user limit 1;
+----------------------------------+
| md5(2059) |
+----------------------------------+
| 2eace51d8f796d04991c831a07059758 |
+----------------------------------+
1 row in set (0.00 sec)
111111111
array (size=3)
'username' => string '331342453' (length=9)
'password' => string '535353' (length=6)
'code' => string '434224' (length=6)
array (size=3)
'verify' => string '7cce53cf90577442771720a370c3c723' (length=32)
'username' => string 'admin' (length=5)
'authority' => string '1' (length=1)
222222222
mysql> select md5(434224) from user limit 1;
+----------------------------------+
| md5(434224) |
+----------------------------------+
| 80bf385de86b2e02292a10caceed2c4b |
+----------------------------------+
1 row in set (0.00 sec)
111111111
array (size=3)
'username' => string '3131' (length=4)
'password' => string '13131' (length=5)
'code' => string '9424124' (length=7)
array (size=1)
'verify' => string 'd04eb5de4d99080be674f159197a514a' (length=32)
222222222
之前session 一直有'username' => string 'admin' 和 'authority' => string '1'
因为session一直有效的原因
php session 管理的更多相关文章
- Nhibernate的Session管理
参考:http://www.cnblogs.com/renrenqq/archive/2006/08/04/467688.html 但这个方法还不能解决Session缓存问题,由于创建Session需 ...
- Openfire的启动过程与session管理
说明 本文源码基于Openfire4.0.2. Openfire的启动 Openfire的启动过程非常的简单,通过一个入口初始化lib目录下的openfire.jar包,并启动一个 ...
- ABP(现代ASP.NET样板开发框架)系列之7、ABP Session管理
点这里进入ABP系列文章总目录 基于DDD的现代ASP.NET开发框架--ABP系列之7.ABP Session管理 ABP是“ASP.NET Boilerplate Project (ASP.NET ...
- 2016-1-30 Servlet中Session管理(Sesssion追踪)
Session管理(Sesssion追踪)是Web应用程序开发中非常重要的一个主题.这是因为HTTP是无状态的,在默认情况下,Web服务器不知道一个HTTP请求是来自初次用户,还是来自之前已经访问过的 ...
- Redis3.2+Tomcat实现集群的Session管理 -- tomcat-redis-session-manager的编译和开发部署环境搭建
已经有不少文章介绍使用tomcat-redis-session-manager来实现Redis存储Tomcat的Session,实现分布式Session管理.但是现在官方编译的tomcat-redis ...
- tomcat架构分析 (Session管理)
Session管理是JavaEE容器比较重要的一部分,在app中也经常会用到.在开发app时,我们只是获取一个session,然后向session中存取数据,然后再销毁session.那么如何产生se ...
- Session管理解决方案笔记
大型网站Session管理解决方案: 1. web服务器之间的session复制. 优点:方案成熟 缺点:复制的性能开销大 2. 减少session使用,使用客户端存储cookie ...
- 使用Memcached Session Manager扩展Session管理
>>Tomcat的session管理 在请求过程中首先要解析请求中的sessionId信息,然后将sessionId存储到request的参数列表中. 然后再从request获取sessi ...
- Tomcat的Session管理机制
>>Session和Cookie请求的过程 Http连接本身是无状态的,即前一次发起的连接跟后一次没有任何关系,是属于两次独立的连接请求,但是互联网访问基本上都是需要有状态的,即服务器需要 ...
- How Tomcat works — 八、tomcat中的session管理
在使用shiro的session的时候感觉对于tomcat中session的管理还不是特别清楚,而且session管理作为tomcat中比较重要的一部分还是很有必要学习的. 目录 概述 session ...
随机推荐
- word2vec 中的数学原理具体解释(五)基于 Negative Sampling 的模型
word2vec 是 Google 于 2013 年开源推出的一个用于获取 word vector 的工具包,它简单.高效,因此引起了非常多人的关注. 因为 word2vec 的作者 Tomas ...
- 第一次PS练习
嘿嘿,自己第一次的PS,虽然把在大神眼里是小KS,但是了,对我来说值得劲纪念.加油,我会努力的.
- Python 数据分析(一) 本实验将学习 pandas 基础,数据加载、存储与文件格式,数据规整化,绘图和可视化的知识
第1节 pandas 回顾 第2节 读写文本格式的数据 第3节 使用 HTML 和 Web API 第4节 使用数据库 第5节 合并数据集 第6节 重塑和轴向旋转 第7节 数据转换 第8节 字符串操作 ...
- stm32智能小车之路之小车启动
首先.安装完小车后最激动的还是想让他跑动,那么就開始吧.写个简单的程序測试下电机是否正常.打开keil软件新建一个project,详细简历keilproject不会的请百度.或者call ...
- Java 获取到配置文件信息
Java程序将数据库或者服务器IP写入到代码中,难免缺少灵活性. 如果写入到配置文件,部署到不通服务器上,只需要修改配置文 件即可. Java怎么读取配置文件 /** * 获取到配置文件信息 * @p ...
- 使用BAT方法结束进程
@echo off taskkill /f /im GAM.exe taskkill /f /im GCL10.exe http://www.cnblogs.com/FKdelphi/p/501540 ...
- OCP-1Z0-042-V12.39-47题
47.Which two database operations can be performed at the mount stage of database startup? 题目解析: A和E在 ...
- qt之正则表达式
原地址:http://blog.csdn.net/phay/article/details/7304455 QRegExp是Qt的正则表达式类.Qt中有两个不同类的正则表达式.第一类为元字符.它表示一 ...
- Qt 智能指针学习
原地址:http://blog.csdn.net/dbzhang800/article/details/6403285 从内存泄露开始? 很简单的入门程序,应该比较熟悉吧 ^_^ #include & ...
- VS2008通过 map 和 cod 文件定位崩溃代码行
VS 2005/2008使用map文件查找程序崩溃原因 一般程序崩溃可以通过debug,找到程序在那一行代码崩溃了,最近编一个多线程的程序,都不知道在那发生错误,多线程并发,又不好单行调试,终于找到一 ...