最近在使用symfony 2开发,处于刚入门阶段。昨天完成了注册登陆模块,开发阶段一直没有问题,快完成时诡异的错误出现了:注册成功后,查询数据表,记录存在,但登陆始终报错。因为登陆是使用symfony2自带的安全框架,又不知道 symfony2有什么debug的好方法,因此只能检查代码,继续读symfony2文档,由于以前作过登陆注册模块,因此对配置什么的仍是蛮有信心,确信不会错,搞了半天不知道问题在哪。注册成功,登陆始终不成功。mysql
最后仍是同事过来,问我用什么加密,而后试图寻找登陆加密与注册加密的结果是否一致。不成功,由于login的过程彻底由symfony来完成的,查文档一时又找不到login具体的代码,最后,咱们找了一个在线加密网站,比对加密结果和注册加密结果是否一致,最后结果是一致。。。蛋疼!尼妈这错太诡异了!难道真要我这个刚入门的去看框架源码???算法
正当我垂头丧气心如死灰批头散发郁闷的要死的时候,忽然!眼前一亮!为何网站上加密结果的最后是两个等号而数据库里面的没有等号???!!!我擦,终于找到了!通过测试,发现快完成的时候改用了架构师设计的数据库,password字段长度只有50,而我以前设计的是255,且密码在采用sha512算法加密后长度大于50,致使写入数据库的只有前面的50个字符,因此我开始比对的时候居然没有发现这个问题。。。(我看开头几位都同样就没有关注后面的。。。)!!!而个人印象里,若是字符串大于数据库设计的长度应该是要报错的,因此要么是mysql截取了,要么是symfony截取了,具体缘由等下次再研究吧。。。sql
搞定以后,长舒一口气,这尼妈太诡异了!要接受教训,以此为记。数据库