关于使用 Symfony2 开发时遇到的一个诡异的 bug

问题描述 最近在使用symfony 2开发,处于刚入门阶段。昨天完成了注册登录模块,开发阶段一直没有问题,快完成时诡异的错误出现了:注册成功后,查询数据表,记录存在,但登录始终报错。 由于登录是使用symfony2自带的安全框架,又不知道 symfony2有什么debug的好方法,所以只能检查代码,继续读symfony2文档,因为之前做过登录注册模块,所以对配置什么的还是蛮有信心,确信不会错,搞了半天不知道问题在哪。注册成功,登录始终不成功。 衣带渐宽终不悔,为 bug 消的人憔悴 最后还是同事过来,问我用什么加密,然后试图寻找登录加密与注册加密的结果是否一致。不成功,因为login的过程完全由symfony来完成的,查文档一时又找不到login具体的代码,最后,我们找了一个在线加密网站,比对加密结果和注册加密结果是否一致,最后结果是一致。。。 蛋疼!泥马这错太诡异了!难道真要我这个刚入门的去看框架源码??? 众里寻bug千百度,蓦然回首,bug 却在灯火阑珊处 正当我垂头丧气心如死灰批头散发郁闷的要死的时候,突然!眼前一亮!为什么网站上加密结果的最后是两个等号而数据库里面的没有等号???!!! 我擦,终于找到了!经过测试,发现快完成的时候改用了架构师设计的数据库,password字段长度只有50,而我之前设计的是255,且密码在采用sha512算法加密后长度大于50,导致写入数据库的只有前面的50个字符,所以我开始比对的时候竟然没有发现这个问题。。。 我看开头几位都一样就没有关注后面的。。。!!! 而我的印象里,如果字符串大于数据库设计的长度应该是要报错的,所以要么是mysql截取了,要么是symfony截取了,具体原因等下次再研究吧。。。

October 18, 2013

一次愉快的 bug 修复经历

使用 jQuery 插件 Jcrop 裁剪图片时,发现一个问题,如图: 不知道这里的 radio 哪里来的,很郁闷,因为以前用过一次,没遇到这个问题。到 stackoverflow 上查了也没有类似的问题。 没办法,只好上官网留言问作者。 英语不太好,只能勉强描述问题: <input type="radio" class="jcrop-keymgr" style="position: fixed; left: -120px; width: 12px; display: inline-block;"> There is a strange radio input in my page, I don’t know where it comes from, I think you can help me. If you can give me your email address, I will send the pictue to you. 几个小时候,收到了作者的回复: Hi… I think the option to turn that off is keySupport: false… ...

October 11, 2013