您好,登錄后才能下訂單哦!
本篇內容介紹了“如何處理dedecms后臺登錄驗證碼不正常顯示的問題”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
前言:
在登錄dedecms后臺時,經常遇到如下三種問題:
1、后臺驗證碼不顯示
2、后臺驗證碼不正常顯示
3、后臺驗證碼不正常顯示
解決方法:
1、取消后臺驗證碼功能
因為沒有驗證碼 不能進后臺 所以修改php文件源代碼:
方法一:
打開dede/login.php 找到如下代碼
if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)){ ResetVdValue(); ShowMsg('驗證碼不正確!','login.php',0,1000); exit; }
第一行替換為 if(false){
好 問題解決 不輸驗證碼后臺直接進去
(學習視頻分享:php視頻教程)
方法二:
打開data/safe/inc.safe.config.php
把代碼$safe_gdopen = '1,2,3,4,5,6,7'; 中的6,刪除即可
Dede后臺驗證碼不顯示情況一分析:
驗證碼需要GD庫 請檢查你的環境是否開啟GD庫
Dede后臺驗證碼不顯示情況二分析:
驗證碼只顯示背景 不顯示字母
打開驗證碼生成文件 Include/vdimgck.php
找到
for($i=0;$i<$rndcodelen;$i++) { $bc = mt_rand(0, 1); $rndstring[$i] = strtoupper($rndstring[$i]); $c_fontColor = $fontColor[mt_rand(0,4)]; $y_pos = $i==0 ? 4 : $i*($font_size+2); $c = mt_rand(0, 15); @imagettftext($im, $font_size, $c, $y_pos, 19, $c_fontColor, $font_file, $rndstring[$i]); $lastc = $rndstring[$i]; }
Imagettftext()函數沒有成功的執行導致了驗證碼只顯示背景,不顯示字母
具體原因為 字體文件路徑不對.解決方法
1、確認include/data/fonts/ 里面存在字體文件 默認為ggbi.ttf
2、在for($i=0;$i<$rndcodelen;$i++) 上一行 加上如下代碼:
$font_file= str_replace("\\","/",$font_file);
即把字體文件路徑中反斜杠替換成斜杠 因為我們知道反斜杠有轉譯字符的功能,
$font_file 路經大體為 盤符:\appserv\www 系統錯誤的把反斜杠 當作轉義用了 導致$font_file也就不是一個路徑了 所以Imagettftext()函數總是返回錯誤
加上$font_file= str_replace("\\","/",$font_file);即可解決
Dede后臺驗證碼不顯示情況三分析:
Include/data/words/words.txt 文件不存在
解決方案:
(1)拷貝一個進去
(2)找到代碼 'word_type' => (int)$safe_codetype, // 1:數字 2:英文 3:單詞
(3)換成'word_type' =>1 (或2) 既驗證碼為數字或英文
Dede后臺驗證碼不顯示 全部情況解決
如果原來可以顯示后來取消驗證碼后再設置就無法顯示,可以通過覆蓋data與include目錄試試。
“如何處理dedecms后臺登錄驗證碼不正常顯示的問題”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。