藏宝游网单论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 236|回复: 2

[其它工具] Discuz的一些参数解析

[复制链接]
  • TA的每日心情
    无聊
    2020-5-29 08:01
  • 签到天数: 2 天

    [LV.1]初来乍到

    3999

    主题

    4002

    帖子

    17万

    积分

    超级版主

    Rank: 8Rank: 8

    积分
    172386
    发表于 2020-3-25 10:53:38 | 显示全部楼层 |阅读模式
    1.定义PHP环境

    error_reporting:设定错误讯息回报的等级。

    error_reporting(0):表示屏蔽一些错误,但是PHP 核心造成的错误,是无法屏蔽的,因为PHP 核心造成的错误会直接导至PHP文件编译失败。

    其中还有一下等级:

    1         E_ERROR
    2         E_WARNING
    4         E_PARSE
    8          E_NOTICE
    16        E_CORE_ERROR
    32      E_CORE_WARNING
    64        E_COMPILE_ERROR
    128     E_COMPILE_WARNING
    256     E_USER_ERROR
    512     E_USER_WARNING
    1024   E_USER_NOTICE
    2047   E_ALL
    2048   E_STRICT
    E_NOTICE 表示一般情形不记录,只有程式有错误情形时才用到,例如企图存取一个不存在的变数,或是呼叫 stat() 函式检视不存在的档案。


    E_WARNING 通常都会显示出来,但不会中断程式的执行。这对除错很有效。例如:用有问题的常规表示法呼叫 ereg()。
    E_ERROR 通常会显示出来,亦会中断程式执行。意即用这个遮罩无法追查到记忆体配置或其它的错误。
    E_PARSE 从语法中剖析错误。
    E_CORE_ERROR 类似 E_ERROR,但不包括 PHP 核心造成的错误。
    E_CORE_WARNING 类似 E_WARNING,但不包括 PHP 核心错误警告。

    2.

    set_magic_quotes_runtime(0)  关掉自动转义功能

    set_magic_quotes_runtime(1)  打开自动转义功能

    程序中检测状态用get_magic_quotes_runtime,返回 0 表示关闭本功能;返回 1 表示本功能打开。若 magic_quotes_runtime 打开时,所有外部引入的数据库资料或者文件等等都会自动转为含有反斜线溢出字符的资料。

    例如:

    当你的数据中有一些
    /
    "
    '
    这样的字符要写入到数据库里面,又想不被过滤掉的时候,它就很有用,会在这些字符前加上/

    中国/地大物博"哈哈"

    中国//地大物博/"哈哈/"



    3.  设置discuz的开始时间
    $mtime = explode(' ', microtime());
    $discuz_starttime = $mtime[1] + $mtime[0];
       定一个开始的时间,这样我们在论坛底部看到的Process Time就是通过这个开始的时间和一个结束的时间的差来计算的。4.通用性
    if(PHP_VERSION < '4.1.0') {



            $_GET = &$HTTP_GET_VARS;



            $_POST = &$HTTP_POST_VARS;



            $_COOKIE = &$HTTP_COOKIE_VARS;


            $_SERVER = &$HTTP_SERVER_VARS;


            $_ENV = &$HTTP_ENV_VARS;


            $_FILES = &$HTTP_POST_FILES;
    }



    PHP以4.1为一个分界线,在4.1以下以$HTTP_GET_VARS[‘xx’]这样的方式来得到get过来的值,而以后用$_GET来得到get过来的值,这样做的目的是为了无论是什么样的PHP版本,都能用$_GET这样的方式得到,有通用性~!





    5.查看浏览者是否机器人

    define('ISROBOT', getrobot());
    if(defined('NOROBOT') && ISROBOT) {
            exit(header("HTTP/1.1 403 Forbidden"));
    }



    其中getrobot()在include/global.inc.php目录下,这个文件是Discuz的核心函数文件,包含了Discuz用到的很多通用的函数,可以说它就是一个大的通用函数库。

    其中getrobot()函数的代码为:

    function getrobot() {
            if(!defined('IS_ROBOT')) {
                    $kw_spiders = 'Bot|Crawl|Spider|slurp|sohu-search|lycos|robozilla';
                    $kw_browsers = 'MSIE|Netscape|Opera|Konqueror|Mozilla';
                    if(preg_match("/($kw_browsers)/", $_SERVER['HTTP_USER_AGENT'])) {
                            define('IS_ROBOT', FALSE);
                    } elseif(preg_match("/($kw_spiders)/", $_SERVER['HTTP_USER_AGENT'])) {
                            define('IS_ROBOT', TRUE);
                    } else {
                            define('IS_ROBOT', FALSE);
                    }
            }
            return IS_ROBOT;
    }



    6.过滤提交的变量用的,提高安全性

    define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
    isset($_REQUEST['GLOBALS']) && exit('Access Error'); //判断表单中是否有global变量,以防覆盖系统的global变量
    foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
            foreach(
    _request as $_key => $_value) {                 $_key{0} != '_' &&
    _request as $_key => $_value) {                 $_key{0} != '_' &&
    _key = daddslashes($_value);
            }
    }
    (!MAGIC_QUOTES_GPC) && $_FILES = daddslashes($_FILES);

    daddslashes函数防止SQL注入的!
    ————————————————
    版权声明:本文为CSDN博主「jiangfeng08」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/jiangfeng08/article/details/3882355

    回复

    使用道具 举报

  • TA的每日心情
    开心
    2020-8-31 10:19
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    0

    主题

    256

    帖子

    257

    积分

    中级会员

    Rank: 3Rank: 3

    积分
    257
    发表于 2020-8-30 22:44:33 | 显示全部楼层
    膜拜神贴,后面的请保持队形~www.cbvy.com
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    难过
    7 天前
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    0

    主题

    176

    帖子

    179

    积分

    注册会员

    Rank: 2

    积分
    179
    发表于 7 天前 | 显示全部楼层
    不管你信不信,反正我是信了。www.cbvy.com
    回复 支持 反对

    使用道具 举报

    QQ|Archiver|手机版|小黑屋|藏宝游

    GMT+8, 2020-9-24 22:02 , Processed in 0.059403 second(s), 24 queries .

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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