您现在的位置是:首页 > cms教程 > Discuz教程Discuz教程
Discuz包含目录和变量
涵雁2025-07-13Discuz教程已有人查阅
导读1.目录的包含:2.$_COOKIE,$_POST,$_GET数组变量一起取得补充:还是服务器字符过滤等方法//销毁以下变量
1.目录的包含:
.表示当前目录
..表示上级目录
用常量DISCUZ_ROOT确定根目录
.表示当前目录
..表示上级目录
用常量DISCUZ_ROOT确定根目录
define('DISCUZ_ROOT', substr(dirname(__FILE__), 0, -7));
DISCUZ_ROOT.'./include/forum.func.php'; //取到文件绝对路径来require_once();
2.$_COOKIE,$_POST,$_GET数组变量一起取得
/*
确定$_GET方式接纳链接传递的值
foreach($_GET as $_key=>$_value)
{
$$_key=$_value; //相当于$action赋值,因为$_key为action,$$_key即$action,$_value为action的传入值如s1,s2...
}
*/
foreach(array('_COOKIE', '_POST', '_GET') as $_request) {
foreach($$_request as $_key => $_value) {
$_key{0} != '_' && $$_key = daddslashes($_value); //daddslashes()过滤掉',防止注入
}
}
function daddslashes($string, $force = 0) {
!defined('MAGIC_QUOTES_GPC') && define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
if(!MAGIC_QUOTES_GPC || $force) {
if(is_array($string)) {
foreach($string as $key => $val) {
$string[$key] = daddslashes($val, $force);
}
} else {
$string = addslashes($string);
}
}
return $string;
}
========补充:还是服务器字符过滤等方法======
<?php
//销毁以下变量
unset($_ENV,$HTTP_ENV_VARS,$_REQUEST,$HTTP_POST_VARS,$HTTP_GET_VARS,$HTTP_POST_FILES,$HTTP_COOKIE_VARS);
$Is_Gmqgg=get_magic_quotes_gpc();
if(!$Is_Gmqgg)
{
//$_POST 经由 HTTP POST 方法提交至脚本的变量。
Add_S($_POST);
//$_GET 经由 URL 请求提交至脚本的变量。
Add_S($_GET);
//$_FILES 通过 HTTP POST 方法传递的已上传文件项目组成的数组。
Add_S($_FILES);
//$_COOKIE 经由 HTTP Cookies 方法提交至脚本的变量。
Add_S($_COOKIE);}
if(!ini_get('register_globals') || !$Is_Gmqgg)
{
@extract($_POST,EXTR_SKIP);
@extract($_GET,EXTR_SKIP);
@extract($_COOKIE,EXTR_SKIP);
@extract($_FILES,EXTR_SKIP);
}
//检查$_POST和$_GET数组,如果其key值不是_开头且$$key变量没被设置过,设置相应$$_key值为$_POST[$_key]
foreach($_POST as $_key=>$_value){
!ereg("^_",$_key) && !isset($$_key) && $$_key=$_POST[$_key];
}
foreach($_GET as $_key=>$_value){
!ereg("^_",$_key) && !isset($$_key) && $$_key=$_GET[$_key];
}
//递归执行,使得每个数组中的字符串都是为了数据库查询语句等的需要在某些特殊字符前加上了反斜线的字符串
function Add_S(&$array){
foreach($array as $key=>$value){
if(!is_array($value)){
//addslashes -- 使用反斜线引用字符串,返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加
//上了反斜线。这些字符是单引号(')、双引号(")、反斜线()与 NUL(NULL 字符)。 一个使用
//addslashes() 的例子是当你要往数据库中输入数据时。例如,将名字 O'reilly 插入到数据库中,这就需要对
//其进行转义。大多数据库使用作为转义符:O'reilly。这样可以将数据放入数据库中,而不会插入额外的 。
//当 PHP 指令 magic_quotes_sybase 被设置成 on 时,意味着插入 ' 时将使用 ' 进行转义。默认情况下,
//PHP 指令 magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行
//addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致
//双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
$array[$key]=addslashes($value);
}else{
Add_S($array[$key]);
}
}
}
?>
本文标签:
很赞哦! ()
下一篇:Discuz的缓存体系
相关教程
图文教程
Discuz微信小程序界面与交互效果设计
设计discuz!的微信小程序界面与交互效果的关键步骤包括:1) 利用自定义组件构建简洁直观的界面,如可折叠的帖子列表;2) 通过触摸事件和动画api实现流畅的交互,如滑动删除功能;
Discuz!NT安装报错的解决方法
好久没有回来了。现在开始学习Discuz!NT。先来记录一下网站的发布。首先澄清一下,XP系统是无法发布的,即便是专业版。我用了半天时间,才发现权限问题通不过。
Discuz代码研究编码规范介绍
Discuz中的编码规范很值得PHP开发人员借鉴。里面既介绍了编码时代码标记,注释,书写规则,命名原则等方面基础的内容,对代码的安全性,性能,兼容性,代码重用,数据库设计,数据库性能及优
wordpress、Discuz产品部署示例
Wordpress、Discuz产品部署三个产品提供挂载的目录信息创建一个博客,用wordpress数据库的设置把nginx和php加入开机自启动:首先,在数据库创建一个wordpress的数据库
相关源码
-
(自适应)包装机贴标机设备网站源码免费下载基于PbootCMS内核开发的响应式企业模板,为包装机械、贴标设备等工业领域打造,通过数字化展示提升企业专业形象。查看源码 -
帝国CMS7.2互联网自媒体门户整站带数据源码免费下载分享一款高仿极客网门户模板,帝国cms7.2版本,非常适合互联网、自媒体、文章门户网站使用。测法发现备份数据恢复报错,找了几个版本的都是一样的,有能力的自行修复查看源码 -
帝国cms7.5品牌连锁店招商加盟商机网站模版源码本模板为招商加盟、创业投资、品牌连锁等商业领域设计,采用帝国CMS7.5内核构建,整体风格简洁大气,突出商业信任感与专业度,适合各类招商加盟项目展示、品牌连锁店宣传等商业应用场景。查看源码 -
(PC+WAP)绿色日志美文文学说说博客网站pbootcms模板除日志博客类网站外,通过替换图文内容可快速适配:心情日记分享平台、文学创作社区、朋友圈内容聚合站、美文鉴赏网站、读书笔记平台等应用场景。查看源码 -
(自适应响应式)高端网站建设设计公司互联网营销网站pbootcms模板本模板基于PbootCMS内核开发,为网站建设公司和互联网营销企业量身打造。采用响应式设计,适配各种移动设备,提供统一的后台管理体验查看源码 -
pbootcms模板PC+WAP娱乐新闻资讯类博客网站源码该模板基于PbootCMS内核开发,专为娱乐新闻、健康生活类资讯网站设计,同时支持快速适配其他行业(如企业官网、博客门户等),仅需替换图文内容即可完成转型。查看源码
| 分享笔记 (共有 篇笔记) |
