找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1365|回复: 0

[分享] 织梦验证码参数设置分析

[复制链接]
发表于 2018-3-22 09:25:56 | 显示全部楼层 |阅读模式 来自 中国–河南–新乡
所有的系统为了安全起见,都设置验证码或验证问题,这样不仅可以防止黑客攻击,更重要的是一个系统标准标志,实力的象征,这样说可能感觉有点夸张,但是不管怎么样验证问题,确实是一个系统所必须的。织梦里面的几乎所有用户提交的数据都有验证码或验证问答,这样可以对系统作一个安全处理,但是,有时候,我们自己学习用,并不需要这个验证问题。本教程主要讲解如何设置验证问题,以及验证的原理分析。

  第一个问题,如何去掉验证码?这个简单只要在后台:系统——>验证安全设置里面,取消复选框即可,在这里我们不仅发现,所有与验证有关的设置都在这里了,如下图所示。
1.webp

  织梦后台这个小功能,只是对验证进行配置,当我们选中或取消某个验证,例如,我们取消会员投稿这个验证,点击保存后,当注册会员,在发布内容后,点提交时,就不用填写验证码了,如果取消验证问答,那么,用户发有会员中心发布内容后,也不用去验证。

  原理分析:

  如上图所示,验证码参数设置里面所有东西,当我们点击确定后,就会被提交到后缀文件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时,表示,开启了会员在投稿时,需要验证,否则验证不显示。

  现在进入会员中心,当点击发布文章时,发现下面有了验证码,如下图所示。
2.webp

  我们进入文件article_add.htm里面,找到这段代码, if(preg_match("/3/",$safe_gdopen)),正是这段代码才使得会员投稿时,显示或不显示会员验证功能。当我们在“验证码参数设置” 里面,取消会员投稿后,我们会发现,前

台会员投稿消失。其它的验证原理都一样,这里不一一分析了。

  总结:当我们设计配置文件时,可以参照织梦这种方法,织梦后缀所有的配置方式都差不多,跟这个类似——设计配置模板,然后,写一个php文件处理这个配置模板里面接收到的参数,然后,把这些参数,通过系统函数fopen()打开配置文件,通过fwrite 写入这些配置参数,然后,关闭这个文件,这样,当我们在后台配置后,就可以实时通过这三个系统函数,进行动态写入操作,让这个文件与我们后台配置的参数保持一致,这样我们在前台或后台,或者其它地方,只要把配置文件引入,然后,判断一下我们在后台配置的值有没有,若有则需要验证,否则不验证。

  其实,织梦后台里面的所有,配置,例如,系统——>系统基本参数里面,所以的,都是以这种方式,来配置的,以后我们进行织梦二次开发,或自己进行系统框架开发都可以对这个小功能进行参考。

发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;

如何回报帮助你解决问题的坛友,好办法就是点击帖子下方的评分按钮给对方加【金币】不会扣除自己的积分,做一个热心并受欢迎的人!

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则 需要先绑定手机号

关闭

站长推荐上一条 /1 下一条

QQ|侵权投诉|广告报价|手机版|小黑屋|西部数码代理|飘仙建站论坛 ( 豫ICP备2022021143号-1 )

GMT+8, 2024-11-19 21:23 , Processed in 0.035194 second(s), 6 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表