Discuz!NT3.5.2验证码显示不了的原因

最近Down了Discuz3.5.2的源码玩玩,之前是图方便把验证码的功能拿掉了,这次拿出来之后发现验证码显示不出来,跟踪代码发现在获取验证码的类实例时抛异常,

找了半天也没找到这个异常原因,于是乎去discuz的官方论坛找,有人说可能是浏览器的缓存导致的,我清除缓存,换了几个浏览器还是不行;

还有人说是需要以下几种字体:"Times New Roman","Georgia","Arial","Comic Sans MS",觉得这个原因很奇怪,不过我还是尝试了下,

我用的是XP,windows文件夹下fonts里确实有两种字体没有,于是进虚拟机的win7下打开刚才的网页,验证码能够显示,我就郁闷了,

莫非真是这个原因,win7是IE9啊,也可能还是浏览器的原因呢,于是远程进了另一台XP环境的PC,用不同的浏览器打开网页也都能显示验证码,

咦,我去呢。去看下fonts里,这几个字体居然也真有,ok,直接把缺少的两种字体copy到我机器的fonts下,刷新,还是不显示,干脆重启下,

再打开页面,啊哦,显示正常。

虽然解决了,但这个验证码为什么要跟系统字体挂钩,我还是不太明白,所以烦请知晓者赐教,多谢!

原文地址:https://www.cnblogs.com/pfs1314/p/2022247.html