所有的系统为了安全起见,都设置验证码或验证问题,这样不仅可以防止黑客攻击,更重要的是一个系统标准标志,实力的象征,这样说可能感觉有点夸张,但是不管怎么样验证问题,确实是一个系统所必须的。织梦里面的几乎所有用户提交的数据都有验证码或验证问答,这样可以对系统作一个安全处理,但是,有时候,我们自己学习用,并不需要这个验证问题。本教程主要讲解如何设置验证问题,以及验证的原理分析。
第一个问题,如何去掉验证码?这个简单只要在后台:系统——>验证安全设置里面,取消复选框即可,在这里我们不仅发现,所有与验证有关的设置都在这里了,如下图所示。
织梦后台这个小功能,只是对验证进行配置,当我们选中或取消某个验证,例如,我们取消会员投稿这个验证,点击保存后,当注册会员,在发布内容后,点提交时,就不用填写验证码了,如果取消验证问答,那么,用户发有会员中心发布内容后,也不用去验证。
原理分析:
如上图所示,验证码参数设置里面所有东西,当我们点击确定后,就会被提交到后缀文件dede/sys_safe.php 里面,在这个文件里面,最核心的就是里面的这三行代码:
$fp = fopen($safeconfigfile, "w") or die("写入文件 $safeconfigfile 失败,请检查权限!");
fwrite($fp, $configstr);
fclose($fp);
这三行代码上面的,全是对于提交过来的内容进行处理后,放入变量$configstr里面了,当执行到这三行代码时,首先打开文件 $safeconfigfile = data/safe/inc_safe_config.php,然后,把我们在“验证码参数设置”所有配置内容,都写入到文件inc_safe_config.php这里面。这样当我们在前台或后台或者其它地方,用是不是需要验证码问题时,我们只需要,判断一下在inc_safe_config.php这个文件里面,是否有配置选择,如果有,则显示验证信息,这个判断一般用正则匹配系统函数preg_match(正则,字符串)来进行的。
我们举一例子来模似这一过程,然后,再做总结。
例如,我们以会员投稿是否开启为例,当我们选中会员投稿,即开启会员在投稿时的验证,然后,点确实,这时我们打开配置后的文件inc_safe_config.php,发现第一行$safe_gdopen = '1,2,3,4,5,7';这个里面中的数字3,就是会
员投稿,这个与后台的“验证码参数设置”,一一对应,当safe_gdopen=3时,表示,开启了会员在投稿时,需要验证,否则验证不显示。
现在进入会员中心,当点击发布文章时,发现下面有了验证码,如下图所示。
我们进入文件article_add.htm里面,找到这段代码, if(preg_match("/3/",$safe_gdopen)),正是这段代码才使得会员投稿时,显示或不显示会员验证功能。当我们在“验证码参数设置” 里面,取消会员投稿后,我们会发现,前
台会员投稿消失。其它的验证原理都一样,这里不一一分析了。
总结:当我们设计配置文件时,可以参照织梦这种方法,织梦后缀所有的配置方式都差不多,跟这个类似——设计配置模板,然后,写一个php文件处理这个配置模板里面接收到的参数,然后,把这些参数,通过系统函数fopen()打开配置文件,通过fwrite 写入这些配置参数,然后,关闭这个文件,这样,当我们在后台配置后,就可以实时通过这三个系统函数,进行动态写入操作,让这个文件与我们后台配置的参数保持一致,这样我们在前台或后台,或者其它地方,只要把配置文件引入,然后,判断一下我们在后台配置的值有没有,若有则需要验证,否则不验证。
其实,织梦后台里面的所有,配置,例如,系统——>系统基本参数里面,所以的,都是以这种方式,来配置的,以后我们进行织梦二次开发,或自己进行系统框架开发都可以对这个小功能进行参考。