今天在用tp6的驗證碼時候,做登入驗證。驗證碼報錯,死活提示驗證碼失敗。
經過一些測試才知道,tp6的session是預設不開啟。需要手動取消註釋。
驗證碼和session的關係。
其實他是吧驗證碼的內容存到了session中,所以要是用驗證碼必須開啟session。
這是他的Captcha類別
可以看到他在建構子先註入了一個session類別創建一個session的物件保存起來,在以後的session操作就靠這個物件了。
在他的創建驗證碼的方法中可以看到,他透過session的物件存入了一個'captcha'的key.
在他對驗證碼進行驗證的時候:
先去取得啦一下session中儲存的驗證碼資訊。
這就是為什麼在使用tp6的驗證碼的時候必須開啟session,在tp6之前的時代,都是根據你php.ini中是否開啟啦session。在tp6他自己封裝了session的實現,所以需要你手動開啟session。切記! ! !