關於使用symfony2開發時遇到的一個詭異的bug

問題描述

最近在使用symfony 2開發,處於剛入門階段。昨天完成了註冊登陸模塊,開發階段一直沒有問題,快完成時詭異的錯誤出現了:註冊成功後,查詢數據表,記錄存在,但登陸始終報錯。因爲登陸是使用symfony2自帶的安全框架,又不知道 symfony2有什麼debug的好方法,因此只能檢查代碼,繼續讀symfony2文檔,由於以前作過登陸註冊模塊,因此對配置什麼的仍是蠻有信心,確信不會錯,搞了半天不知道問題在哪。註冊成功,登陸始終不成功。mysql

衣帶漸寬終不悔,爲 bug 消的人憔悴

最後仍是同事過來,問我用什麼加密,而後試圖尋找登陸加密與註冊加密的結果是否一致。不成功,由於login的過程徹底由symfony來完成的,查文檔一時又找不到login具體的代碼,最後,咱們找了一個在線加密網站,比對加密結果和註冊加密結果是否一致,最後結果是一致。。。蛋疼!尼媽這錯太詭異了!難道真要我這個剛入門的去看框架源碼???算法

衆裏尋bug千百度,驀然回首,bug 卻在燈火闌珊處

正當我垂頭喪氣心如死灰批頭散發鬱悶的要死的時候,忽然!眼前一亮!爲何網站上加密結果的最後是兩個等號而數據庫裏面的沒有等號???!!!我擦,終於找到了!通過測試,發現快完成的時候改用了架構師設計的數據庫,password字段長度只有50,而我以前設計的是255,且密碼在採用sha512算法加密後長度大於50,致使寫入數據庫的只有前面的50個字符,因此我開始比對的時候居然沒有發現這個問題。。。(我看開頭幾位都同樣就沒有關注後面的。。。)!!!而個人印象裏,若是字符串大於數據庫設計的長度應該是要報錯的,因此要麼是mysql截取了,要麼是symfony截取了,具體緣由等下次再研究吧。。。sql

獲獎感言

搞定以後,長舒一口氣,這尼媽太詭異了!要接受教訓,以此爲記。數據庫

相關文章
相關標籤/搜索