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 ...
随机推荐
- pthread_detach(pthread_self())
pthread_detach(pthread_self()) 将状态改为unjoinable状态,确保资源的释放.其实简单的说就是在线程函数头加上 pthread_detach(pthread_sel ...
- VirtualBox开发环境的搭建详解
有关VirtualBox的介绍请参考:VirtualBox_百度百科 由于VirtualBox官网提供的搭建方法不够详细,而且本人在它指导下,从下载所需的开发包,到最后生成二进制文件,中间遇到了许多的 ...
- 分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件
原文:分享非常有用的Java程序 (关键代码) (三)---创建ZIP和JAR文件 import java.util.zip.*; import java.io.*; public class Zip ...
- mockito中两种部分mock的实现,spy、callRealMethod
什么是类的部分mock(partial mock)?A:部分mock是说一个类的方法有些是实际调用,有些是使用mockito的stubbing(桩实现). 为什么需要部分mock? A:当需要测试一个 ...
- 转:git windows中文 乱码问题解决汇总
it的Windows版本Msysgit对中文的支持不够好 .当使用时,会出现以下三种情况的中文乱码: 下面的几个文件都在git安装目录下文件夹etc内.1.ls不能显示中文目录 解决办法:在git/g ...
- haroxy hdr
ACL derivatives :ACL的衍生物 hdr([<name>[,<occ>]]) : exact string match 字符串精确匹配 hdr_beg([< ...
- python binary lib on win/各种python库的二进制包
虽然很不愿意在windows上折腾python,但有时linux不在身边的时候还得在windows上写代码.很久之前找到这个地址,后来忘了,今天搜了半天才把它找到,所以记录一下. http://www ...
- JDBC连接SQL server与ADO.NET连接Sql Server对比
JDBC连接SQL server与ADO.NET连接Sql Server对比 1.JDBC连接SQL server 1)java方面目前有很多驱动能够驱动连接SQL servernet. 主流的有 ...
- linux配置ssh+rsync
ssh 远程登录 sftp 文件共享 类似ftp ssh secure file transfer client scp 文件共享 类似cp ssh配置文件 /etc/ssh/s ...
- 互联网组织的未来:剖析GitHub员工的任性之源(转)
如果有这么家任性的公司,没有所谓“经理人”这一层,人都在做自己喜欢的事情,并且创造价值,而其他的事情,就顺其自然让他发生.这里能节省多少官僚主义带来的浪费?这样的公司得跑得有多快?得有多少无谓的冲突消 ...