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 ...
随机推荐
- MySQL - 主从复制及读写分离原理
1.MySQL主从复制与读写分离原理 首先,我们看一个图: 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中. 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL ...
- BZOJ 3315: [Usaco2013 Nov]Pogo-Cow( dp )
我真想吐槽USACO的数据弱..= = O(n^3)都能A....上面一个是O(n²), 一个是O(n^3) O(n^3)做法, 先排序, dp(i, j) = max{ dp(j, p) } + w ...
- java--继承的一些笔记
public class Person { public void display(){ System.out.println("Play Person..."); } stati ...
- Oracle百问百答(二)
Oracle百问百答(二) 11. nvl函数有什么用? NVL( string1, replace_with) 功能:如果string1为NULL,则NVL函数返回replace_with的值,否则 ...
- 初探 插头DP
因为这题,气得我火冒三丈! 这数据是不是有问题啊!我用cin代替scanf后居然就AC了(本来一直卡在Test 18)!导致我调(对)试(排)了一个小时!! UPD:后来细细想想,会不会是因为scan ...
- 从 Racket 入门函数式编程
一直想学学LISP,今天总算开了个头.如今学习LISP不是为了立就可以以用于实际项目的应用,而是为了学习一下函数式的思维方式,可以更加深入的了解计算的本质,可以更好的用C++, Java, Pytho ...
- Swift - 表格图片加载优化(拖动表格时不加载,停止时只加载当前页图片)
列表的单元格中包含有图片在开发中很常见.通常我们可以直接在tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIn ...
- poj1573&&hdu1035 Robot Motion(模拟)
转载请注明出处:http://blog.csdn.net/u012860063? viewmode=contents 题目链接: HDU:pid=1035">http://acm.hd ...
- 集合简单总结 ArrayList、List、Hashtable、Dictionary
============================ 集合综述 ============================== 1.什么是泛型: 泛型就是限制了操作类型,意思如下: ...
- Linux系统中如何添加自己的库文件路径
库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的.一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用 ...