魔扣论坛

魔扣源码论坛业务
查看: 27|回复: 1

[织梦教程] 织梦dedecms验证码参数设置分析

[复制链接]
  • TA的每日心情
    无聊
    11 小时前
  • 签到天数: 1443 天

    [LV.10]论坛老兵

    7463

    主题

    7680

    帖子

    5万

    积分

    管理员

    Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30Rank: 30

    魔扣币
    227666
    贡献
    24832
    威望
    19068

    最佳新人活跃会员热心会员推广达人宣传达人突出贡献优秀版主荣誉管理论坛元老

    发表于 2019-12-25 23:45:19 | 显示全部楼层 |阅读模式
    魔扣币兑换比例:【 50以下 : ¥1 = 10 魔扣币 】丨【 50 - 100 :¥1 = 20 魔扣币】丨【 100以上:¥1 = 30 魔扣币 】
    淘宝、天猫优惠券

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    所有的织梦dedecms 为了安全起见,都设置验证码或验证问题,这样不仅可以防止黑客攻击,更重要的是一个系统标准标志,实力的象征,这样说可能感觉有点夸张,但是不管怎么样验证问题,确实是一个系统所必须的。织梦里面的几乎所有用户提交的数据都有验证码或验证问答,这样可以对系统作一个安全处理,但是,有时候,我们自己学习用,并不需要这个验证问题。本教程主要讲解如何设置验证问题,以及验证的原理分析。

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



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

      原理分析:

      如上图所示,验证码参数设置里面所有东西,当我们点击确定后,就会被提交到后缀文件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 写入这些配置参数,然后,关闭这个文件,这样,当我们在后台配置后,就可以实时通过这三个系统函数,进行动态写入操作,让这个文件与我们后台配置的参数保持一致,这样我们在前台或后台,或者其它地方,只要把配置文件引入,然后,判断一下我们在后台配置的值有没有,若有则需要验证,否则不验证。

      其实,织梦dedecms后台里面的所有,配置,例如,系统——>系统基本参数里面,所以的,都是以这种方式,来配置的,以后我们进行织梦二次开发,或自己进行系统框架开发都可以对这个小功能进行参考。
    会员购买:>> 点击购买 << | 魔扣币购买:>> 点击购买 <<
    承接业务:服务器代维丨网站托管丨SEO
    联系客服:微信:morko-net | QQ:1367681973

    该用户从未签到

    2

    主题

    197

    帖子

    393

    积分

    中级魔扣

    Rank: 3Rank: 3

    魔扣币
    195
    贡献
    195
    威望
    1
    发表于 2019-12-26 09:31:44 来自手机 | 显示全部楼层
    当一个人最看重的东西是面子,那他为此失去的一定很多。',
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    • 联系我们
    • 新浪微博 :
    • 在线客服 :魔扣科技 
    • 源码QQ群 :魔扣源码论坛官方总群
    • 联系邮箱 :charlin#morko.net
    • 微信扫一扫
    快速回复 返回顶部 返回列表