`
baiyuxiong
  • 浏览: 177961 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

【转载】Wordpress源代码分析之settings.php之二

阅读更多
http://hi.baidu.com/wordpressing/blog/item/cd56d8ddd92ce9a7cd1166fa.html

/**
* wp_unregister_GLOBALS() - Turn register globals off
*
* @access private
* @since 2.1.0
* @return null Will return null if register_globals PHP directive was disabled
*/
//这个函数的主要功能就是 在register_globals=On的环境下 必须像是在等于off的情况下存取变量才行 保证程序的安全性


function wp_unregister_GLOBALS() {
    if ( !ini_get('register_globals') )
        return;
/*
如果并没有开启全局变量设置 就直接跳出不执行这个函数!
解释:当register_globals=Off的时候,下一个程序接收的时候应该用$_GET['user_name']和$_GET['user_pass']来接受传递过来的值。(注:当<form>的method 属性为post的时候应该用$_POST['user_name']和$_POST['user_pass'])
*/
    if ( isset($_REQUEST['GLOBALS']) )
    //在on的情况下 所有的全局变量都是存放在$GLOBALS 如果发现有get或则post过来的
        die('GLOBALS overwrite attempt detected');//检测到尝试覆盖全局设置的操作
     //因为在on的情况下可以直接覆盖的 所以这属于异常 die掉
   
     // Variables that shouldn't be unset
    $noUnset = array('GLOBALS', '_GET', '_POST', '_COOKIE', '_REQUEST', '_SERVER', '_ENV', '_FILES', 'table_prefix');
    //设置不删除的变量
    $input = array_merge($_GET, $_POST, $_COOKIE, $_SERVER, $_ENV, $_FILES, isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array());
    foreach ( $input as $k => $v )
        if ( !in_array($k, $noUnset) && isset($GLOBALS[$k]) ) {
            $GLOBALS[$k] = NULL;
            unset($GLOBALS[$k]);
         }
}

wp_unregister_GLOBALS();

unset( $wp_filter, $cache_lastcommentmodified, $cache_lastpostdate );

引用一下:

register_globals使用详解

register_globals是php.ini里的一个配置,这个配置影响到php如何接收传递过来的参数,如果你的问题是:为什么我的表单无法传递数据?为什么我的程序无法得到传递过来的变量?等等,那么你需要仔细的阅读以下的内容。

register_globals的值可以设置为:On或者Off,我们举一段代码来分别描述它们的不同。

代码:

<form name="frmTest" id="frmTest" action="URL">
<input type="text" name="user_name" id="user_name">
<input type="password" name="user_pass" id="user_pass">
<input type="submit" value="login">
</form>

当register_globals=Off的时候,下一个程序接收的时候应该用$_GET['user_name']和$_GET['user_pass']来接受传递过来的值。(注:当<form>的method属性为post的时候应该用$_POST['user_name']和$_POST['user_pass'])

当register_globals=On的时候,下一个程序可以直接使用$user_name和$user_pass来接受值。

顾名思义,register_globals的意思就是注册为全局变量,所以当On的时候,传递过来的值会被直接的注册为全局变量直接使用,而Off的时候,我们需要到特定的数组里去得到它。所以,碰到上边那些无法得到值的问题的朋友应该首先检查一下你的register_globals的设置和你获取值的方法是否匹配。(查看可以用phpinfo()函数或者直接查看php.ini)
分享到:
评论

相关推荐

    wordpress 代码分析整理

    `【转载】Wordpress源代码分析之settings.php之一.htm` 和 `【转载】Wordpress源代码分析之settings.php之二.htm` 重点关注了WordPress的设置API。这个API允许开发者创建和管理后台设置页面,为用户提供自定义选项...

    wordpress系统源代码简约版

    这个"wordpress系统源代码简约版"可能去除了不必要的组件或优化了性能,对于学习WordPress工作原理、理解其架构或者进行二次开发非常有帮助。通过深入研究源代码,你可以了解到WordPress如何处理HTTP请求,如何执行...

    wordpress之wp-settings.php

    在WordPress的源代码中,`wp-settings.php`扮演着至关重要的角色,它负责初始化WordPress环境,处理各种配置,并确保在各种不同的服务器环境中都能正常运行。 首先,我们关注到`wp-settings.php`中的`wp_unregister...

    WordPress.v2.3.1.Simp.Chinese

    《WordPress.v2.3.1.Simp.Chinese:中文版的博客系统与核心功能解析》 WordPress是一款全球广泛使用的开源博客平台,其v2.3.1版本的简体...而作为学习工具,WordPress的源代码也是理解Web开发和PHP编程的宝贵资源。

    构建自己最出色的WordPress主题 源代码

    2. **JavaScript与jQuery**:JavaScript是网页动态交互的核心,而jQuery是一个JavaScript库,简化了DOM操作、事件处理和动画效果。在WordPress主题中,你可以利用这些技术来实现用户交互和动态效果。 3. **PHP基础...

    基于PHP的WordPress单本小说主题Danxsphp版源码.zip

    【描述】中的信息简洁明了,表明这个压缩文件包含了用于实现这个特定小说主题的源代码。源码是程序的原始形式,程序员可以查看、编辑和修改这些代码,以适应他们的需求或进行自定义开发。 【标签】"PHP"强调了这个...

    校园统一信息平台web版源代码

    综合以上分析,这个“校园统一信息平台web版源代码”项目利用了ASP技术来创建一个集成了多种功能的系统,可能借鉴了WordPress的部分组件来增强其管理和用户交互能力。开发者还需要了解Apache服务器的配置、用户认证...

    wordpress 3.7 for BAE

    5. `wp-login.php`:WordPress的登录页面源代码,用户通过这个页面进行登录操作。 6. `wp-signup.php`:允许用户注册新账户的页面源代码。 7. `wp-settings.php`:控制WordPress核心设置的文件,包括站点URL、数据库...

    wordpress3.7.1

    2. `wp-login.php`:这是用户登录页面的源代码,用于验证用户身份并提供登录功能。 3. `wp-signup.php`:这个文件处理新用户的注册流程,允许访客创建账户并成为网站的成员。 4. `wp-settings.php`:设置核心配置的...

    wordpress 插件开发cookbook原书高清pdf及随书代码

    随书代码资源`9781788291187_Code.zip`包含书中所有示例插件的源代码,读者可以直接下载并运行,以便更好地理解书中的理论知识和实际应用。 通过学习《WordPress插件开发Cookbook》,无论是初学者还是有经验的...

    2022最新版去水印小程序源码.rar

    标题中的“2022最新版去水印小程序源码.rar”表明这是一份包含了用于去除图片或视频水印的小程序的源代码。这个压缩包很可能是为开发者提供的,允许他们自定义或集成去水印功能到自己的应用程序中。源码通常包含编程...

    WordPress 的评论黑名单

    "源代码"标签表明我们将深入到WordPress插件开发的层面,通过编写代码来实现这一功能。WordPress Plugin Boilerplate是一个常用的模板,用于快速搭建符合最佳实践的WordPress插件结构。这个模板包含了所有必要的文件...

    sae版本的workpress

    这一描述揭示了这个压缩包包含的是能够在新浪云上运行的WordPress源代码,特别适合于创建个人博客。值得注意的是,它还集成了一款首页摘要显示的插件。这个插件可能允许用户在博客首页预览文章的部分内容,提高用户...

    wordpress:wordpress原始码

    在这个解压后的文件“wordpress-master”中,我们可以看到WordPress的核心源代码结构,它是整个系统的基石。 WordPress的核心组成部分包括以下几个关键部分: 1. **wp-includes**:这个目录包含了WordPress的大...

    tutorial-wp-settings-api:一个基本的WP插件,用于设置和获取通过WordPress设置API保存的设置

    在提供的"tutorial-wp-settings-api-master"压缩包中,你应该能看到插件的源代码,它展示了上述步骤的实际应用。通过研究这些文件,如`plugin.php`,你可以看到如何将这些理论概念转化为实际代码。 9. **学习资源*...

    wordpress-java:Java库使用Wordpress的xml-rpc功能

    2. `src/` - 源代码目录,可能包含`main/java`子目录,存放Java类文件。 3. `pom.xml` - Maven项目对象模型文件,用于构建和管理项目依赖。 4. `build.gradle`或`settings.gradle` - 如果项目使用Gradle作为构建工具...

    blog-sharon-master.zip

    2. **后端逻辑**:这是处理用户请求、数据库操作和业务逻辑的地方,一般使用服务器端编程语言如Python(Django或Flask)、Java(Spring Boot)或PHP(WordPress)等实现。 3. **数据库**:用于存储博客文章、用户...

    ist的matlab代码-wp-video-embed-privacy:Wordpress插件,用于使嵌入视频符合GDPR

    标题中的“ist的matlab代码-wp-video-embed-privacy”指的是一个基于MATLAB的...对于有兴趣深入了解或修改这个项目的开发者,他们可以研究源代码,学习如何与WordPress API交互,以及如何处理视频嵌入和隐私合规性。

    blog免费下载,欢迎前来下载

    1. 博客源代码:如果ys-blog是开源的博客模板或主题,压缩包内可能包含了HTML、CSS、JavaScript等文件,这些文件构成了博客的前端界面。用户可以下载后自定义或直接部署到自己的博客平台。 2. 博客文章内容:如果...

    20140402myBlog

    2. **数据库备份**:博客通常需要存储文章、评论等信息,这些数据可能以SQL文件的形式存在于压缩包内,用于恢复或迁移数据库。 3. **图片和其他媒体**:博客中的图片、音频或视频文件也可能被压缩在一起,用于展示...

Global site tag (gtag.js) - Google Analytics