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源代码分析之settings.php之一.htm` 和 `【转载】Wordpress源代码分析之settings.php之二.htm` 重点关注了WordPress的设置API。这个API允许开发者创建和管理后台设置页面,为用户提供自定义选项...
这个"wordpress系统源代码简约版"可能去除了不必要的组件或优化了性能,对于学习WordPress工作原理、理解其架构或者进行二次开发非常有帮助。通过深入研究源代码,你可以了解到WordPress如何处理HTTP请求,如何执行...
在WordPress的源代码中,`wp-settings.php`扮演着至关重要的角色,它负责初始化WordPress环境,处理各种配置,并确保在各种不同的服务器环境中都能正常运行。 首先,我们关注到`wp-settings.php`中的`wp_unregister...
《WordPress.v2.3.1.Simp.Chinese:中文版的博客系统与核心功能解析》 WordPress是一款全球广泛使用的开源博客平台,其v2.3.1版本的简体...而作为学习工具,WordPress的源代码也是理解Web开发和PHP编程的宝贵资源。
2. **JavaScript与jQuery**:JavaScript是网页动态交互的核心,而jQuery是一个JavaScript库,简化了DOM操作、事件处理和动画效果。在WordPress主题中,你可以利用这些技术来实现用户交互和动态效果。 3. **PHP基础...
【描述】中的信息简洁明了,表明这个压缩文件包含了用于实现这个特定小说主题的源代码。源码是程序的原始形式,程序员可以查看、编辑和修改这些代码,以适应他们的需求或进行自定义开发。 【标签】"PHP"强调了这个...
综合以上分析,这个“校园统一信息平台web版源代码”项目利用了ASP技术来创建一个集成了多种功能的系统,可能借鉴了WordPress的部分组件来增强其管理和用户交互能力。开发者还需要了解Apache服务器的配置、用户认证...
5. `wp-login.php`:WordPress的登录页面源代码,用户通过这个页面进行登录操作。 6. `wp-signup.php`:允许用户注册新账户的页面源代码。 7. `wp-settings.php`:控制WordPress核心设置的文件,包括站点URL、数据库...
2. `wp-login.php`:这是用户登录页面的源代码,用于验证用户身份并提供登录功能。 3. `wp-signup.php`:这个文件处理新用户的注册流程,允许访客创建账户并成为网站的成员。 4. `wp-settings.php`:设置核心配置的...
随书代码资源`9781788291187_Code.zip`包含书中所有示例插件的源代码,读者可以直接下载并运行,以便更好地理解书中的理论知识和实际应用。 通过学习《WordPress插件开发Cookbook》,无论是初学者还是有经验的...
标题中的“2022最新版去水印小程序源码.rar”表明这是一份包含了用于去除图片或视频水印的小程序的源代码。这个压缩包很可能是为开发者提供的,允许他们自定义或集成去水印功能到自己的应用程序中。源码通常包含编程...
"源代码"标签表明我们将深入到WordPress插件开发的层面,通过编写代码来实现这一功能。WordPress Plugin Boilerplate是一个常用的模板,用于快速搭建符合最佳实践的WordPress插件结构。这个模板包含了所有必要的文件...
这一描述揭示了这个压缩包包含的是能够在新浪云上运行的WordPress源代码,特别适合于创建个人博客。值得注意的是,它还集成了一款首页摘要显示的插件。这个插件可能允许用户在博客首页预览文章的部分内容,提高用户...
在这个解压后的文件“wordpress-master”中,我们可以看到WordPress的核心源代码结构,它是整个系统的基石。 WordPress的核心组成部分包括以下几个关键部分: 1. **wp-includes**:这个目录包含了WordPress的大...
在提供的"tutorial-wp-settings-api-master"压缩包中,你应该能看到插件的源代码,它展示了上述步骤的实际应用。通过研究这些文件,如`plugin.php`,你可以看到如何将这些理论概念转化为实际代码。 9. **学习资源*...
2. `src/` - 源代码目录,可能包含`main/java`子目录,存放Java类文件。 3. `pom.xml` - Maven项目对象模型文件,用于构建和管理项目依赖。 4. `build.gradle`或`settings.gradle` - 如果项目使用Gradle作为构建工具...
2. **后端逻辑**:这是处理用户请求、数据库操作和业务逻辑的地方,一般使用服务器端编程语言如Python(Django或Flask)、Java(Spring Boot)或PHP(WordPress)等实现。 3. **数据库**:用于存储博客文章、用户...
标题中的“ist的matlab代码-wp-video-embed-privacy”指的是一个基于MATLAB的...对于有兴趣深入了解或修改这个项目的开发者,他们可以研究源代码,学习如何与WordPress API交互,以及如何处理视频嵌入和隐私合规性。
1. 博客源代码:如果ys-blog是开源的博客模板或主题,压缩包内可能包含了HTML、CSS、JavaScript等文件,这些文件构成了博客的前端界面。用户可以下载后自定义或直接部署到自己的博客平台。 2. 博客文章内容:如果...
2. **数据库备份**:博客通常需要存储文章、评论等信息,这些数据可能以SQL文件的形式存在于压缩包内,用于恢复或迁移数据库。 3. **图片和其他媒体**:博客中的图片、音频或视频文件也可能被压缩在一起,用于展示...