其實很久之前剛學習tp5框架的時候就遇到了這個問題,解決完后一直沒再出過問題,今天用以前的框架做新項目時又碰到了這個問題,這里記錄一下
問題原因:
1、TP5本就存在這個bug
2、數據庫連接不正常(項目連接數據庫不正常時驗證碼也會不顯示)
解決方法:
1、TP5自身bug,在TP5官網論壇是給了對應方法解決的、在獲取驗證碼前清除一下緩存就行了
/* * 獲取驗證碼 * */ public function getVerify() { $config = [ 'fontSize' => 28, 'length' => 4, 'useCurve' => false, ]; ob_clean(); //每次獲取驗證碼前都清除下緩存 $captcha = new Captcha($config); return $captcha->entry(); }
2、數據庫連接不正常導致,檢查下自己的數據庫配置文件是否有問題,tp5數據庫配置文件dababase.php
return [ // 數據庫類型 'type' => 'mysql', // 服務器地址 'hostname' => '', // 數據庫名 'database' => '', // 用戶名 'username' => root, // 密碼 'password' => '', // 端口 'hostport' => '3306', // 連接dsn 'dsn' => '', // 數據庫連接參數 'params' => [], // 數據庫編碼默認采用utf8 'charset' => 'utf8', // 數據庫表前綴 'prefix' => 'ww_', // 數據庫調試模式 'debug' => true, // 數據庫部署方式:0 集中式(單一服務器),1 分布式(主從服務器) 'deploy' => 0, // 數據庫讀寫是否分離 主從式有效 'rw_separate' => false, // 讀寫分離后 主服務器數量 'master_num' => 1, // 指定從服務器序號 'slave_no' => '', // 是否嚴格檢查字段是否存在 'fields_strict' => true, // 數據集返回類型 'resultset_type' => 'array', // 自動寫入時間戳字段 'auto_timestamp' => true, // 時間字段取出后的默認時間格式 'datetime_format' => 'Y-m-d H:i:s', // 是否需要進行SQL性能分析 'sql_explain' => false, ];
