最有效解决dede后台登录验证码显示不正确的方法

admin 发表于 2015-11-6 11:42:10 | 栏目:站长教程 |分类:[织梦教程]
模板狗小编今天遇到一个棘手的问题,那就是dede后台登录验证码不显示的问题,这个问题之前也遇到过很多次,但是今天不管怎么折腾都没有折腾好。那么我就为大家总结下怎么快速有效的解决好这个问题。
) K- V% ^) {6 f; [1 U6 {) i- i/ C
# d* n) q3 N4 w# R我是通过以下方法解决的:4 q1 r9 H& q2 N0 X. U5 s& h: L% c9 ]$ g
打开data/safe/inc.safe.config.php& U: i0 p; S6 l* Q: E
/ ]6 x: u+ c% j+ N5 I
把代码$safe_gdopen = '1,2,3,4,5,6,7'; 中的6,删除即可======================我是直接通过这个方法解决的。
! s4 X( X5 I5 |$ b6 E% w: `2 Z' I9 g
Dede后台验证码不显示情况一分析' I% {4 h3 N7 L9 A8 C  b
' X$ L# J: I( [8 |" X
验证码需要GD库 请检查你的环境是否开启GD库 . r$ }) ?& D5 [& W- ]2 ~6 r
6 p" W0 `/ y$ ^/ {
Dede后台验证码不显示情况二分析. R! s  @. A) n
7 b6 N# u7 K# B  ?/ |# |
验证码只显示背景 不显示字母
; {% `, Y% @7 P: W7 f$ E+ E0 v! |/ k8 [1 f
打开验证码生成文件 Include/vdimgck.php
* [: v; s* }% X  e. j5 h* X7 B! |3 G( v7 D+ Q
找到9 ^, W9 a0 N1 f: k, J& b/ z1 w

) l$ R6 z6 Z7 g4 e, N7 }8 Y4 |3 i# Q    for($i=0;$i<$rndcodelen;$i++)+ e8 z/ [7 D! G& k+ t6 z+ G
* w4 U# Y7 g: u7 S
    {3 A1 L. `$ H' n! B
- l- i9 ?3 W) Q# p
        $bc = mt_rand(0, 1);
, P, Z; X/ C+ N/ D% _/ L5 J" e' w; k% m9 a
        $rndstring[$i] = strtoupper($rndstring[$i]);
$ U2 s9 ^$ B# l& N6 s1 D. Q+ X, U
% h8 r- ^8 w! u2 H3 J+ S/ Y9 |) g* e        $c_fontColor = $fontColor[mt_rand(0,4)];
9 {( u- {5 F; Z6 f  w0 k7 L# _' E7 s2 r
        $y_pos = $i==0 ? 4 : $i*($font_size+2);
& j' ~9 v( d  G7 }7 H) p
7 x# O/ M1 u4 C$ Q. r+ n' {7 Y        $c = mt_rand(0, 15);
- C" H) |- w. `# R3 J& [
' W* ]  w; |% E+ ?        @imagettftext($im, $font_size, $c, $y_pos, 19, $c_fontColor, $font_file, $rndstring[$i]);& `6 Z/ l4 O7 Y4 m0 |
# o: A- j: J" n; U
        $lastc = $rndstring[$i];
' F* w' A: w' b% j' c: k2 G
, ~, E0 H' W# I7 s% X; F) u8 K}
0 R! w1 j6 k( e
, w3 [/ d- j' T! g8 @. ZImagettftext()函数没有成功的执行导致了验证码只显示背景 不显示字母
! C5 b) K2 l4 A- R+ J+ N5 E. E. b
& g0 {) Q% G  e8 G' u3 p0 v) T* y# \具体原因为 字体文件路径不对.解决方法
" A- X! C, h  w# F1 [* R: F& J$ b  V
1确认include/data/fonts/ 里面存在字体文件  默认为ggbi.ttf  g1 \  f  ~$ O! b

# N  f% X8 N2 S, U2在for($i=0;$i<$rndcodelen;$i++) 上一行 加上如下代码:' M* }8 \( P: {* C4 J

( N. d5 V7 q: q4 O; I4 y            $font_file= str_replace("\\","/",$font_file);, I/ D$ N9 k) p. X* G/ }

2 E6 @. k  P; Z/ X9 A 即把字体文件路径中反斜杠替换成斜杠 因为我们知道反斜杠有转译字符的功能,
: g3 |2 m6 [- K3 Y1 Y
' `& L2 w& k! _9 \) F  I: ^3 N1 t$font_file 路经大体为 盘符:\appserv\www 系统错误的把反斜杠 当作转义用了 导致$font_file也就不是一个路径了 所以Imagettftext()函数总是返回错误" F/ |7 `! C0 M3 `3 b' i
' }( Q6 C! N1 A1 h
加上$font_file= str_replace("\\","/",$font_file);即可解决
9 [* g, n, a* |+ s7 d- g( o2 E) Y- E3 S/ U& _2 `' x
Dede后台验证码不显示情况三分析4 {  _3 b+ v( h7 u( }, T2 y6 w1 K
" E) P: b- {+ k$ o5 P4 L
Include/data/words/words.txt 文件不存在  
( r* Y$ [* i. q4 d3 i! y  G: G3 c! {! w4 l) R: s& ]
解决方案1 拷贝一个进去
7 s. c1 h2 y1 [3 |9 A9 j
4 Z7 }- H4 R$ [               2找到代码    'word_type'  => (int)$safe_codetype,   // 1:数字  2:英文   3:单词
/ b5 Y6 P2 f$ |2 U" z6 P) ^3 E: n1 e" }* n
                换成'word_type'  =>1  (或2) 既验证码为数字或英文
$ Y" d4 N: k# a& T* k
6 M! I: X: P% o4 g, e$ Q* {7 P% ^- j% y% s4 H  t$ ^
" Z, l; A" c. C) O8 j$ p+ |* w! F' T
Dede后台验证码不显示 全部情况解决
+ D; t) d3 [9 l! O  m7 G/ q' ?2 R! j
如果原来可以显示后来取消验证码后再设置就无法显示,可以通过覆盖data与include目录试试。% J4 b  E, W$ R: E
  o5 _, Q' u$ p  M9 p
通用解决方案---取消后台验证码功能  `8 {9 g4 e& A
, L. u* D1 R! r+ I* N
因为没有验证码 不能进后台 所以修改php文件源代码:+ N8 s; s$ N' t2 ~1 g# _: |9 L

/ j9 Q; t& j# u  E5 E方法二:3 T7 p( k" I9 c& L% C  e7 D; {/ Z- @
8 U5 C% y! i" ]( J) c& v: [
打开dede/login.php 找到如下代码
. O; }8 j; W: ]# i# P; _- i+ c+ G' I! M* A1 {* y/ C& l
    if(($validate=='' || $validate != $svali) && preg_match("/6/",$safe_gdopen)){2 d/ H& I8 n8 M4 `0 ?
0 O$ f0 ?1 _6 [) C* n, z& o
        ResetVdValue();0 ?' ?1 O) S9 f8 T; ?  q4 f3 [0 Q

* M% \! M, n7 x, X* w0 y        ShowMsg('验证码不正确!','login.php',0,1000);( {5 C2 g+ K# a; E$ J& g
9 @2 |5 N  P& b
        exit;' U6 B. }$ R+ v5 l

! V6 B( z/ O$ N# m}
3 P. i. g1 L' J7 O' z- @$ ]! v( j1 z! W: Z  R) V
第一行替换为   if(false){         
& c6 ]+ d5 ~! F" X5 a4 P! @& ^6 K1 U8 d$ s) y; X
好 问题解决 不输验证码后台直接进去* p# l/ b; x4 y9 y2 q. V
2 i8 x) W  S) e5 q5 K) Z
$ e6 f. n. A, O' {8 H1 Y

7 q7 Q, }, h, X. w! J$ v( ]9 g0 `6 Q/ F  D) |2 M. ~) S4 t
1 }0 Z0 u# {+ B7 n. _( @
*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

qq
收缩
快速回复 返回顶部 返回列表